コード例 #1
0
        private void _Leave(Chatter chatter)
        {
            var whispeableChatter = _Chatters.Items.FirstOrDefault(i => i.Name == chatter.Messager.Name);

            if (whispeableChatter != null)
            {
                _Chatters.Items.Remove(whispeableChatter);
            }
        }
コード例 #2
0
        void IBootable.Launch()
        {
            _This    = _Binder.Bind <IPlayer>(this);
            _Chatter = _Room.RegistChatter(this);
            _Chatters.Items.Clear();

            _Room.Chatters.Supply   += _Add;
            _Room.Chatters.Unsupply += _Leave;
        }
コード例 #3
0
ファイル: Room.cs プロジェクト: jiowchern/Regulus.Samples
        internal Chatter RegistChatter(IMessageable messageable)
        {
            var chatter = new Chatter(messageable, (msg) => _Broadcast(msg, messageable));

            lock (_Chatters)
            {
                _Chatters.Add(chatter);
            }

            return(chatter);
        }
コード例 #4
0
        private void _Add(Chatter chatter)
        {
            var whispeableChatter = new WhispeableChatter(_Chatter, chatter);

            _Chatters.Items.Add(whispeableChatter);
        }
コード例 #5
0
ファイル: Room.cs プロジェクト: jiowchern/Regulus.Samples
 internal void UnregistChatter(Chatter chatter)
 {
     lock (_Chatters)
         _Chatters.Remove(chatter);
 }
コード例 #6
0
 public WhispeableChatter(Chatter sender, Chatter chatter)
 {
     this._Sender   = sender;
     this._Receiver = chatter;
 }