Ejemplo n.º 1
0
Archivo: Session.cs Proyecto: twd2/chat
 private void HandleListBuddy(ListBuddyResponse r)
 {
     Debug.Print("handling list buddy");
     readyEvent.WaitOne();
     if (onListBuddyResponse != null)
     {
         onListBuddyResponse(r);
     }
 }
Ejemplo n.º 2
0
 private void OnListBuddyResponse(ListBuddyResponse r)
 {
     Invoke(new Action(() =>
     {
         lstBuddies.Items.Clear();
         foreach (ListBuddyResponse.Types.User u in r.Users)
         {
             Program.usernameMap[u.Uid] = u.Username;
             if (Program.chatFormMap.ContainsKey(u.Uid))
             {
                 Program.chatFormMap[u.Uid].UpdateUsername();
             }
             lstBuddies.Items.Add(new UserWrapper(u));
             Debug.Print(u.Username);
         }
     }));
 }
Ejemplo n.º 3
0
Archivo: Session.cs Proyecto: twd2/chat
        private void Handle()
        {
            while (connected)
            {
                byte   type;
                byte[] buffer = Packet.Read(stream, out type);

                if (buffer == null)
                {
                    Debug.Print("broken");
                    break;
                }

                Debug.Print("Type: {0}", type);

                lastReset = null;

                // dispatch
                switch (type)
                {
                case Packet.PACKET_LOGIN:
                {
                    LoginResponse r = LoginResponse.Parser.ParseFrom(buffer);
                    HandleLogin(r);
                    break;
                }

                case Packet.PACKET_REGISTER:
                {
                    RegisterResponse r = RegisterResponse.Parser.ParseFrom(buffer);
                    HandleRegister(r);
                    break;
                }

                case Packet.PACKET_LIST_USER:
                {
                    ListUserResponse r = ListUserResponse.Parser.ParseFrom(buffer);
                    HandleListUser(r);
                    break;
                }

                case Packet.PACKET_LIST_BUDDY:
                {
                    ListBuddyResponse r = ListBuddyResponse.Parser.ParseFrom(buffer);
                    HandleListBuddy(r);
                    break;
                }

                case Packet.PACKET_ADD_BUDDY:
                {
                    AddBuddyResponse r = AddBuddyResponse.Parser.ParseFrom(buffer);
                    HandleAddBuddy(r);
                    break;
                }

                case Packet.PACKET_REMOVE_BUDDY:
                {
                    RemoveBuddyResponse r = RemoveBuddyResponse.Parser.ParseFrom(buffer);
                    HandleRemoveBuddy(r);
                    break;
                }

                case Packet.PACKET_MESSAGE:
                {
                    Message r = Message.Parser.ParseFrom(buffer);
                    HandleMessage(r);
                    break;
                }

                case Packet.PACKET_RESET:
                {
                    Reset r = Reset.Parser.ParseFrom(buffer);
                    HandleReset(r);
                    break;
                }

                case Packet.PACKET_RAW:
                {
                    Debug.Print(Encoding.UTF8.GetString(buffer));
                    break;
                }

                default:
                {
                    LoginResponse r = LoginResponse.Parser.ParseFrom(buffer);
                    break;
                }
                }
            }
            Close();
        }