private void HandleListBuddy(ListBuddyResponse r) { Debug.Print("handling list buddy"); readyEvent.WaitOne(); if (onListBuddyResponse != null) { onListBuddyResponse(r); } }
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); } })); }
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(); }