void Jabber::Roster(RosterList * roster){ // Fix me! (Roster message can arrive at different times) BMessage serverBased(IM::SERVER_BASED_CONTACT_LIST); serverBased.AddString("protocol", kProtocolName); JabberContact* contact; int size = roster->CountItems(); for(int i=0; i < size; i++) { contact = reinterpret_cast<JabberContact*>(roster->ItemAt(i)); serverBased.AddString("id", contact->GetJid()); } fServerMsgr.SendMessage(&serverBased); //fRostered=true; if(!fRostered){ //here the case when more than one roster message has arrived! fPerc +=0.3333; fRostered = true; Progress("Jabber Login", "Jabber: Roster", fPerc); } LOG(kProtocolName, liDebug, "Jabber:Login %f - Rostered",fPerc) ; CheckLoginStatus(); }
status_t AIMProtocol::SSIBuddies(list<BString> buddies) { list <BString>::iterator i; BMessage serverBased(IM::SERVER_BASED_CONTACT_LIST); serverBased.AddString("protocol", fManager->Protocol()); for (i = buddies.begin(); i != buddies.end(); i++) { LOG(fManager->Protocol(), liLow, "Got server side buddy %s", NormalizeNick(i->String()).String()); serverBased.AddString("id", NormalizeNick(i->String())); }; fMsgr.SendMessage(&serverBased); };
void MSNP::connectionReady(MSN::Connection * conn) { fLogged = true; BMessage msg(IM_MESSAGE); msg.AddInt32("im_what", IM_OWN_STATUS_SET); msg.AddString("protocol", kProtocolSignature); msg.AddInt32("status", CAYA_ONLINE); fServerMsgr->SendMessage(&msg); BMessage serverBased(IM_MESSAGE); serverBased.AddInt32("im_what", IM_CONTACT_LIST); serverBased.AddString("protocol", kProtocolSignature); int end = fBuddyList.CountItems(); int x; for (x=0; x != end; x++) { MSN::Buddy contact = fBuddyList.ItemAt(x); if (contact.lists & MSN::LST_AL) { serverBased.AddString("id", contact.userName.c_str()); } } fServerMsgr->SendMessage(&serverBased); for (x=0; x != end; x++) { MSN::Buddy contact = fBuddyList.ItemAt(x); if (contact.lists & MSN::LST_AL) { SendContactInfo(contact); } } BString content(fUsername.c_str()); content << " has logged in!"; _Notify(B_INFORMATION_NOTIFICATION, "Connected", content.String()); fMainConnection->setState(MSN::STATUS_AVAILABLE, fClientID); }