void XMPPconnection::printRoster() { stringstream s; if (client->authed()) { RosterManager* rm = client->rosterManager(); Roster* r = rm->roster(); for(Roster::iterator i = r->begin(); i != r->end(); i++) { pair<string, RosterItem* > item = *i; string first = item.first; s << first; MessageWindow::getInstance().printWin(s, Log); s.str(""); s.flush(); } s << "Lista kontaktów:"; MessageWindow::getInstance().printWin(s, Log); s.str(""); s.flush(); } else { s << "Użytkownik nie jest zalogowany do serwra!"; MessageWindow::getInstance().printWin(s, Log); } }
virtual void handleMessage( const Message & msg, MessageSession * session) { m_messageEventFilter->raiseMessageEvent( MessageEventDisplayed ); m_messageEventFilter->raiseMessageEvent( MessageEventComposing ); m_chatStateFilter->setChatState( ChatStateComposing ); //这里的消息命令。都是自己定义的,用来测试的 //我在这里使用消息进行触发操作,并不代表这种操作就只能在消息中进行, //可以定义在任何的场景中 //因为是消息机制,所以,用消息代表一个命令,发过来触发流程操作 if( msg.body() == "test-buddylist" ) //遍历本地联系人列表 { Roster * roster = j->rosterManager()->roster(); Roster::const_iterator it = roster->begin(); for( ; it != roster->end(); ++it ) { printf( "jid: %s, name: %s, subscription: %d\n", (*it).second->jidJID().full().c_str(), (*it).second->name().c_str(), (*it).second->subscription() ); StringList g = (*it).second->groups(); StringList::const_iterator it_g = g.begin(); for( ; it_g != g.end(); ++it_g ) { printf( "\tgroup: %s\n", (*it_g).c_str() ); } RosterItem::ResourceMap::const_iterator rit = (*it).second->resources().begin(); for( ; rit != (*it).second->resources().end(); ++rit ) { printf( "resource: %s\n", (*rit).first.c_str() ); } } } }
virtual void roster( const Roster& roster ) { printf( "roster arriving\nitems:\n" ); RosterListener::Roster::const_iterator it = roster.begin(); for( ; it != roster.end(); ++it ) { printf( "jid: %s, name: %s, subscription: %d\n", (*it).second->jid().c_str(), (*it).second->name().c_str(), (*it).second->subscription() ); StringList g = (*it).second->groups(); StringList::const_iterator it_g = g.begin(); for( ; it_g != g.end(); ++it_g ) printf( "\tgroup: %s\n", (*it_g).c_str() ); } }
virtual void handleRoster( const Roster& roster ) { printf( "roster arriving\nitems:\n" ); Roster::const_iterator it = roster.begin(); for( ; it != roster.end(); ++it ) { printf( "jid: %s, name: %s, subscription: %d\n", (*it).second->jidJID().full().c_str(), (*it).second->name().c_str(), (*it).second->subscription() ); StringList g = (*it).second->groups(); StringList::const_iterator it_g = g.begin(); for( ; it_g != g.end(); ++it_g ) printf( "\tgroup: %s\n", (*it_g).c_str() ); RosterItem::ResourceMap::const_iterator rit = (*it).second->resources().begin(); for( ; rit != (*it).second->resources().end(); ++rit ) printf( "resource: %s\n", (*rit).first.c_str() ); } }
void ADXmppProxy::handleRoster( const Roster& roster ) { //printf( "roster arriving\nitems:\n" ); Roster::const_iterator it = roster.begin(); for( ; it != roster.end(); ++it ) { /*printf( "jid: %s, name: %s, subscription: %d\n", (*it).second->jidJID().full().c_str(), (*it).second->name().c_str(), (*it).second->subscription() ); StringList g = (*it).second->groups(); StringList::const_iterator it_g = g.begin(); for( ; it_g != g.end(); ++it_g ) printf( "\tgroup: %s\n", (*it_g).c_str() ); RosterItem::ResourceMap::const_iterator rit = (*it).second->resources().begin(); for( ; rit != (*it).second->resources().end(); ++rit ) printf( "resource: %s\n", (*rit).first.c_str() );*/ BuddyList.push_back((*it).second->jidJID().full()); if(DebugLog) cout<<"ADXmppProxy::handleRoster:"<<(*it).second->jidJID().full()<<endl; } }
void Client::importRoster(const Roster &r) { for(Roster::ConstIterator it = r.begin(); it != r.end(); ++it) { importRosterItem(*it); } }