本文整理汇总了C++中IQ::error方法的典型用法代码示例。如果您正苦于以下问题:C++ IQ::error方法的具体用法?C++ IQ::error怎么用?C++ IQ::error使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IQ
的用法示例。
在下文中一共展示了IQ::error方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: handleIqID
void FlexibleOffline::handleIqID( const IQ& iq, int context )
{
if( !m_flexibleOfflineHandler )
return;
switch( context )
{
case FORequestMsgs:
switch( iq.subtype() )
{
case IQ::Result:
m_flexibleOfflineHandler->handleFlexibleOfflineResult( FomrRequestSuccess );
break;
case IQ::Error:
switch( iq.error()->error() )
{
case StanzaErrorForbidden:
m_flexibleOfflineHandler->handleFlexibleOfflineResult( FomrForbidden );
break;
case StanzaErrorItemNotFound:
m_flexibleOfflineHandler->handleFlexibleOfflineResult( FomrItemNotFound );
break;
default:
m_flexibleOfflineHandler->handleFlexibleOfflineResult( FomrUnknownError );
break;
}
break;
default:
break;
}
break;
case FORemoveMsgs:
switch( iq.subtype() )
{
case IQ::Result:
m_flexibleOfflineHandler->handleFlexibleOfflineResult( FomrRemoveSuccess );
break;
case IQ::Error:
switch( iq.error()->error() )
{
case StanzaErrorForbidden:
m_flexibleOfflineHandler->handleFlexibleOfflineResult( FomrForbidden );
break;
case StanzaErrorItemNotFound:
m_flexibleOfflineHandler->handleFlexibleOfflineResult( FomrItemNotFound );
break;
default:
m_flexibleOfflineHandler->handleFlexibleOfflineResult( FomrUnknownError );
break;
}
break;
default:
break;
}
break;
}
}
示例2: handleIqID
void LastActivity::handleIqID( const IQ& iq, int /*context*/ )
{
if( !m_lastActivityHandler )
return;
if( iq.subtype() == IQ::Result )
{
const Query* q = iq.findExtension<Query>( ExtLastActivity );
if( !q || q->seconds() < 0 )
return;
m_lastActivityHandler->handleLastActivityResult( iq.from(), q->seconds(), q->status() );
}
else if( iq.subtype() == IQ::Error && iq.error() )
m_lastActivityHandler->handleLastActivityError( iq.from(), iq.error()->error() );
}
示例3: handleIqID
void Adhoc::handleIqID( const IQ& iq, int context )
{
if( context != ExecuteAdhocCommand )
return;
m_adhocTrackMapMutex.lock();
AdhocTrackMap::iterator it = m_adhocTrackMap.find( iq.id() );
bool haveIdHandler = ( it != m_adhocTrackMap.end() );
m_adhocTrackMapMutex.unlock();
if( !haveIdHandler || (*it).second.context != context
|| (*it).second.remote != iq.from() )
return;
switch( iq.subtype() )
{
case IQ::Error:
(*it).second.ah->handleAdhocError( iq.from(), iq.error(), (*it).second.handlerContext );
break;
case IQ::Result:
{
const Adhoc::Command* ac = iq.findExtension<Adhoc::Command>( ExtAdhocCommand );
if( ac )
(*it).second.ah->handleAdhocExecutionResult( iq.from(), *ac, (*it).second.handlerContext );
break;
}
default:
break;
}
m_adhocTrackMapMutex.lock();
m_adhocTrackMap.erase( it );
m_adhocTrackMapMutex.unlock();
}
示例4: processResourceBind
void Client::processResourceBind( const IQ& iq )
{
switch( iq.subtype() )
{
case IQ::Result:
{
const ResourceBind* rb = iq.findExtension<ResourceBind>( ExtResourceBind );
if( !rb || !rb->jid() )
{
notifyOnResourceBindError( 0 );
break;
}
m_jid = rb->jid();
m_resourceBound = true;
m_selectedResource = m_jid.resource();
notifyOnResourceBind( m_jid.resource() );
if( m_streamFeatures & StreamFeatureSession )
createSession();
else
connected();
break;
}
case IQ::Error:
{
notifyOnResourceBindError( iq.error() );
break;
}
default:
break;
}
}
示例5: handleIqID
void GroupsAdminManageMemberHandler::handleIqID( const IQ& iq, int context )
{
json::jobject jobj;
if (iq.m_subtype != gloox::IQ::Result)
{
const Error* e = iq.error();
if (!e)
{
callback_(true,XL("biz.GroupsAdminManageMember.fail"));
return;
}
if ( e->error() == StanzaErrorBadRequest)
{
ELOG("app")->error(WCOOL(L"管理员审批成员加入时,请求协议错误!。"));
callback_(true,XL("biz.crwod.iq_error.bad-request"));
}
else if (e->error() == StanzaErrorInternalServerError)
{
ELOG("app")->error(WCOOL(L"管理员审批成员加入时,处理错误(服务器处理错误)。"));
callback_(true,XL("biz.crwod.iq_error.internal-server-error"));
}
else if (e->error() == StanzaErrorGone)
{
universal_resource err;
err.res_key="biz.crwod.iq_error.answer_apply_gone";
ELOG("app")->error(WCOOL(L"管理员审批成员加入时,消息已过期!"));
callback_(false,err);
}
else if (e->error() == StanzaErrorForbidden)
{
ELOG("app")->error(WCOOL(L"管理员审批成员加入时,自己不是管理员"));
callback_(true,XL("biz.crwod.iq_error.admin_forbidden"));
}
else if (e->error() == StanzaErrorResourceConstraint)
{
ELOG("app")->error(WCOOL(L"管理员审批成员加入时,群成员已经满"));
callback_(true,XL("biz.crwod.iq_error.admin_resource-constraint"));
}
else if (e->error() == StanzaErrorConflict)
{
universal_resource err;
err.res_key="biz.crwod.iq_error.admin_Conflict";
ELOG("app")->error(WCOOL(L"管理员审批成员加入时,该成员已加入群"));
callback_(false,err);
}
else if (e->error() == StanzaErrorItemNotFound)
{
ELOG("app")->error(WCOOL(L"管理员审批成员加入时,找不到此群。"));
callback_(true,XL("biz.crwod.iq_error.item-not-found"));
}else
{
ELOG("app")->error(WCOOL(L"管理员审批成员加入时,服务器返回未知错误类型!") + boost::shared_ptr<gloox::Tag>(iq.tag())->xml());
callback_(true,XL("biz.GroupsAdminManageMember.fail"));
}
}else{
callback_(false,XL(""));
}
}
示例6: handleIqID
void NonSaslAuth::handleIqID( const IQ& iq, int context )
{
switch( iq.subtype() )
{
case IQ::Error:
{
const Error* e = iq.error();
if( e )
{
switch( e->error() )
{
case StanzaErrorConflict:
m_parent->setAuthFailure( NonSaslConflict );
break;
case StanzaErrorNotAcceptable:
m_parent->setAuthFailure( NonSaslNotAcceptable );
break;
case StanzaErrorNotAuthorized:
m_parent->setAuthFailure( NonSaslNotAuthorized );
break;
default:
break;
}
}
m_parent->setAuthed( false );
m_parent->disconnect( ConnAuthenticationFailed );
break;
}
case IQ::Result:
switch( context )
{
case TrackRequestAuthFields:
{
const Query* q = iq.findExtension<Query>( ExtNonSaslAuth );
if( !q )
return;
const std::string& id = m_parent->getID();
IQ re( IQ::Set, JID(), id );
re.addExtension( q->newInstance( m_parent->username(), m_sid,
m_parent->password(),
m_parent->jid().resource() ) );
m_parent->send( re, this, TrackSendAuth );
break;
}
case TrackSendAuth:
m_parent->setAuthed( true );
m_parent->connected();
break;
}
break;
default:
break;
}
}
示例7: handleIqID
void Search::handleIqID( const IQ& iq, int context )
{
TrackMap::iterator it = m_track.find( iq.id() );
if( it != m_track.end() )
{
switch( iq.subtype() )
{
case IQ::Result:
{
const Query* q = iq.findExtension<Query>( ExtSearch );
if( !q )
return;
switch( context )
{
case FetchSearchFields:
{
if( q->form() )
{
(*it).second->handleSearchFields( iq.from(), q->form() );
}
else
{
(*it).second->handleSearchFields( iq.from(), q->fields(), q->instructions() );
}
break;
}
case DoSearch:
{
if( q->form() )
{
(*it).second->handleSearchResult( iq.from(), q->form() );
}
else
{
(*it).second->handleSearchResult( iq.from(), q->result() );
}
break;
}
}
break;
}
case IQ::Error:
(*it).second->handleSearchError( iq.from(), iq.error() );
break;
default:
break;
}
m_track.erase( it );
}
return;
}
示例8: handleIqID
void VCardManager::handleIqID( const IQ& iq, int context )
{
TrackMap::iterator it = m_trackMap.find( iq.id() );
if( it != m_trackMap.end() )
{
switch( iq.subtype() )
{
case IQ::Result:
{
switch( context )
{
case VCardHandler::FetchVCard:
{
const VCard* v = iq.findExtension<VCard>( ExtVCard );
(*it).second->handleVCard( iq.from(), v );
break;
}
case VCardHandler::StoreVCard:
(*it).second->handleVCardResult( VCardHandler::StoreVCard, iq.from() );
break;
}
}
break;
case IQ::Error:
{
(*it).second->handleVCardResult( (VCardHandler::VCardContext)context,
iq.from(),
iq.error() ? iq.error()->error()
: StanzaErrorUndefined );
break;
}
default:
break;
}
m_trackMap.erase( it );
}
}
示例9: processCreateSession
void Client::processCreateSession( const IQ& iq )
{
switch( iq.subtype() )
{
case IQ::Result:
connected();
break;
case IQ::Error:
notifyOnSessionCreateError( iq.error() );
break;
default:
break;
}
}
示例10: handleIqID
/*
<iq type=’result’from=’[email protected]’ to=’[email protected]’>
<queryxmlns=’groups:share:file:delete’>
<item id=‘2’ />
</query>
</iq>
*/
void InviteIntoGroupsHandler::handleIqID( const IQ& iq, int context )
{
json::jobject jobj;
if (iq.m_subtype != gloox::IQ::Result)
{
const Error* e = iq.error();
if (!e)
{
ELOG("app")->error(WCOOL(L"邀请加入群时,服务器返回未知错误类型!") + boost::shared_ptr<gloox::Tag>(iq.tag())->xml());
callback_(true,XL("biz.InviteIntoGroups.fail"));
return;
}
if ( e->error() == StanzaErrorBadRequest)
{
ELOG("app")->error(WCOOL(L"邀请加入群时,请求协议错误!。"));
callback_(true,XL("biz.crwod.iq_error.bad-request"));
}
else if (e->error() == StanzaErrorInternalServerError)
{
ELOG("app")->error(WCOOL(L"邀请加入群时,处理错误(服务器处理错误)。"));
callback_(true,XL("biz.crwod.iq_error.internal-server-error"));
}
else if (e->error() == StanzaErrorConflict)
{
ELOG("app")->error(WCOOL(L"邀请加入群时,被邀请人已经在群里。"));
callback_(true,XL("biz.crwod.iq_error.invite_conflict"));
}
else if (e->error() == StanzaErrorResourceConstraint)
{
ELOG("app")->error(WCOOL(L"邀请加入群时,群已经满员。"));
callback_(true,XL("biz.crwod.iq_error.invite_resource-constraint"));
}
else if (e->error() == StanzaErrorNotAllowed)
{
ELOG("app")->error(WCOOL(L"邀请加入群时,邀请人不是管理员。"));
callback_(true,XL("biz.crwod.iq_error.invite_not-allowed"));
}else
{
ELOG("app")->error(WCOOL(L"邀请加入群时,服务器返回未知错误类型!") + boost::shared_ptr<gloox::Tag>(iq.tag())->xml());
callback_(true,XL("biz.InviteIntoGroups.fail"));
}
}else{
callback_(false,XL(""));
}
}
示例11: handleIqID
void Disco::handleIqID( const IQ& iq, int context )
{
DiscoHandlerMap::iterator it = m_track.find( iq.id() );
if( it != m_track.end() && (*it).second.dh )
{
switch( iq.subtype() )
{
case IQ::Result:
switch( context )
{
case GetDiscoInfo:
{
const Info* di = iq.findExtension<Info>( ExtDiscoInfo );
if( di )
(*it).second.dh->handleDiscoInfo( iq.from(), *di, (*it).second.context );
break;
}
case GetDiscoItems:
{
const Items* di = iq.findExtension<Items>( ExtDiscoItems );
if( di )
(*it).second.dh->handleDiscoItems( iq.from(), *di, (*it).second.context );
break;
}
}
break;
case IQ::Error:
{
(*it).second.dh->handleDiscoError( iq.from(), iq.error(), (*it).second.context );
break;
}
default:
break;
}
m_track.erase( it );
}
}
示例12: handleIqID
/*
<iq type=’result’from=’groups.ruijie.com.cn’ to=’[email protected]/pc’>
<query xmlns=’groups:list’>
<item id=’112’ name=’吃货群’ icon=”icon_url”v=”false” alert=”1”/>
<item id=’113’ name=’开心群’ icon=”icon_url”v=”false” alert=”0”/>
…
</query>
</iq>
*/
void GetGroupsListHandler::handleIqID( const IQ& iq, int context )
{
json::jobject jobj;
if (iq.m_subtype != gloox::IQ::Result)
{
const Error* e = iq.error();
if (!e)
{
callback_(true,XL("biz.GetGroupsList.fail"),jobj);
return;
}
if ( e->error() == StanzaErrorBadRequest)
{
ELOG("app")->error(WCOOL(L"取群列表时,请求协议错误!。"));
callback_(true,XL("biz.crwod.iq_error.bad-request"),jobj);
}
else if (e->error() == StanzaErrorInternalServerError)
{
ELOG("app")->error(WCOOL(L"取群列表时,处理错误(服务器处理错误)。"));
callback_(true,XL("biz.crwod.iq_error.internal-server-error"),jobj);
}
else if (e->error() == StanzaErrorItemNotFound)
{
ELOG("app")->error(WCOOL(L"取群列表时,找不到此群。"));
callback_(true,XL("biz.crwod.iq_error.item-not-found"),jobj);
}else
{
ELOG("app")->error(WCOOL(L"取群列表时,服务器返回未知错误类型!") + boost::shared_ptr<gloox::Tag>(iq.tag())->xml());
callback_(true,XL("biz.GetGroupsList.fail"),jobj);
}
}else{
if(iq.findExtension(kExtUser_iq_filter_getgroupslist))
{
boost::shared_ptr<gloox::Tag> tag(iq.findExtension(kExtUser_iq_filter_getgroupslist)->tag());
if (tag)
{
//循环取得item
gloox::TagList items;
items = tag->findChildren("item");
TagList::const_iterator it = items.begin();
for( ; it != items.end(); ++it )
{
json::jobject data;
data["session_id"] = gWrapInterface::instance().append_groups_domain((*it)->findAttribute( "id" ));
data["remark"] = (*it)->findAttribute( "remark" );
data["name"] = (*it)->findAttribute( "name" );
data["icon"] = (*it)->findAttribute( "icon" );
data["official"] = (*it)->findAttribute( "v" );
data["alert"] = (*it)->findAttribute( "alert" );
data["role"] = (*it)->findAttribute( "role" );
data["quit"] = (*it)->findAttribute( "quit" );
data["status"] = (*it)->findAttribute( "status" );
data["dismiss"] = (*it)->findAttribute( "dismiss" );
data["active"] = (*it)->findAttribute( "active" );
data["category"] = (*it)->findAttribute( "category" );
jobj.arr_push(data);
}
if (!callback_.empty())
{
callback_(false, XL(""), jobj);
}
return;
}
}
ELOG("app")->error(WCOOL(L"取群列表时服务端返回的数据格式错误。") + boost::shared_ptr<gloox::Tag>(iq.tag())->xml());
if (!callback_.empty())
{
universal_resource error_desc;
error_desc = XL("biz.GetGroupsList.fail");
callback_(true, error_desc, jobj);
}
}
}
示例13: handleIqID
void whistleVcardHandler::handleIqID( const IQ& iq, int context )
{
switch( iq.subtype() )
{
case IQ::Result:
{
switch( context )
{
case VCardHandler::FetchVCard:
{
json::jobject jobj;
json::jobject status = json::jobject();
if (iq.findExtension( ExtVCard ))
{
boost::shared_ptr<gloox::Tag> ptag(iq.findExtension( ExtVCard )->tag());
for (TagList::const_iterator cit = ptag->children().begin(); cit != ptag->children().end(); ++cit) {
Tag* ptag = *cit;
if (ptag->name() == s_VcardPrivacy)
{
jobj[ptag->name()] = json::jobject(ptag->cdata());
}
else if (ptag->name() == s_VcardStatus)
{
//获取vcard协议改变 新的解析iq
Tag* presource = ptag->findChild("resource");
Tag* pshow = ptag->findChild("show");
if ( presource && pshow)
{
json::jobject itemdata;
itemdata["resource"] = presource->cdata();
itemdata["show"] = pshow->cdata();
status.arr_push(itemdata);
}
}
else
{
jobj[ptag->name()] = ptag->cdata();
}
}
jobj[s_VcardJid] = iq.from().bare();
gwhistleVcard::instance().handleVCard(iq.from(), jobj, status, waitCallback_);
}
break;
}
case VCardHandler::StoreVCard:
gwhistleVcard::instance().handleVCardResult(VCardHandler::StoreVCard, iq.from());
break;
}
}
break;
case IQ::Error:
{
switch( context )
{
case VCardHandler::FetchVCard:
if (!waitCallback_.empty())
{
waitCallback_();
}
else
{
gwhistleVcard::instance().updatedVcard(iq.from());
}
break;
case VCardHandler::StoreVCard:
gwhistleVcard::instance().handleVCardResult( (VCardHandler::VCardContext)context,
iq.from(),
iq.error() ? iq.error()->error()
: StanzaErrorUndefined );
break;
}
}
default:
break;
}
}
示例14: handleIqID
void PrivacyManager::handleIqID( const IQ& iq, int context )
{
if( !m_privacyListHandler )
return;
switch( iq.subtype() )
{
case IQ::Result:
switch( context )
{
case PLStore:
m_privacyListHandler->handlePrivacyListResult( iq.id(), ResultStoreSuccess );
break;
case PLActivate:
m_privacyListHandler->handlePrivacyListResult( iq.id(), ResultActivateSuccess );
break;
case PLDefault:
m_privacyListHandler->handlePrivacyListResult( iq.id(), ResultDefaultSuccess );
break;
case PLRemove:
m_privacyListHandler->handlePrivacyListResult( iq.id(), ResultRemoveSuccess );
break;
case PLRequestNames:
{
const Query* q = iq.findExtension<Query>( ExtPrivacy );
if( !q )
return;
m_privacyListHandler->handlePrivacyListNames( q->def(), q->active(),
q->names() );
break;
}
case PLRequestList:
{
const Query* q = iq.findExtension<Query>( ExtPrivacy );
if( !q )
return;
m_privacyListHandler->handlePrivacyList( q->name(), q->items() );
break;
}
}
break;
case IQ::Error:
{
switch( iq.error()->error() )
{
case StanzaErrorConflict:
m_privacyListHandler->handlePrivacyListResult( iq.id(), ResultConflict );
break;
case StanzaErrorItemNotFound:
m_privacyListHandler->handlePrivacyListResult( iq.id(), ResultItemNotFound );
break;
case StanzaErrorBadRequest:
m_privacyListHandler->handlePrivacyListResult( iq.id(), ResultBadRequest );
break;
default:
m_privacyListHandler->handlePrivacyListResult( iq.id(), ResultUnknownError );
break;
}
break;
}
default:
break;
}
}
示例15: handleIqID
void GetGroupsShareListHandler::handleIqID( const IQ& iq, int context )
{
json::jobject jobj,items,sets;
if (iq.m_subtype != gloox::IQ::Result)
{
const Error* e = iq.error();
if (!e)
{
callback_(true,XL("biz.GetGroupsShareList.fail"),jobj);
return;
}
if ( e->error() == StanzaErrorBadRequest)
{
ELOG("app")->error(WCOOL(L"取群共享列表时,请求协议错误!。"));
callback_(true,XL("biz.crwod.iq_error.bad-request"),jobj);
}
else if (e->error() == StanzaErrorInternalServerError)
{
ELOG("app")->error(WCOOL(L"取群共享列表时,处理错误(服务器处理错误)。"));
callback_(true,XL("biz.crwod.iq_error.internal-server-error"),jobj);
}
else if (e->error() == StanzaErrorItemNotFound)
{
ELOG("app")->error(WCOOL(L"取群共享列表时,找不到此群。"));
callback_(true,XL("biz.crwod.iq_error.item-not-found"),jobj);
}else
{
ELOG("app")->error(WCOOL(L"取群共享列表时,服务器返回未知错误类型!") + boost::shared_ptr<gloox::Tag>(iq.tag())->xml());
callback_(true,XL("biz.GetGroupsShareList.fail"),jobj);
}
}else{
if(iq.findExtension(kExtUser_iq_filter_getgroupssharelist))
{
boost::shared_ptr<gloox::Tag> tag(iq.findExtension(kExtUser_iq_filter_getgroupssharelist)->tag());
if (tag)
{
//循环取得item
gloox::TagList item;
item = tag->findChildren("item");
TagList::const_iterator it = item.begin();
gloox::Tag* setTag = tag->findChild("set");
if (setTag)
{
if (setTag->findChild( "index" ))
{
sets["index"]= setTag->findChild( "index" )->findCData( "index" );
}
if (setTag->findChild( "max" ))
{
sets["max"]= setTag->findChild( "max" )->findCData( "max" );
}
if (setTag->findChild( "total" ))
{
sets["total"]= setTag->findChild( "total" )->findCData( "total" );
}
}
jobj["set"]=sets;
for( ; it != item.end(); ++it )
{
json::jobject data;
data["id"] = (*it)->findAttribute( "id" );
data["name"] = (*it)->findAttribute( "name" );
data["size"] = (*it)->findAttribute( "size" );
data["owner_jid"] = (*it)->findAttribute( "owner_jid" );
if ((*it)->findAttribute( "download_count" ).empty())
{
data["download_count"] = "0";
}
else
{
data["download_count"] = (*it)->findAttribute( "download_count" );
}
std::string timestamp = (*it)->findAttribute( "create_time" );
data["timestamp"] = timestamp;
if (!timestamp.empty())
{
boost::posix_time::ptime t = boost::posix_time::from_time_t(boost::lexical_cast<intmax_t>(timestamp)/1000);
boost::posix_time::ptime local_time = boost::date_time::c_local_adjustor<boost::posix_time::ptime>::utc_to_local(t);
data["create_time"] = epius::time_format(local_time);
}
else
{
data["create_time"] = "";
}
data["owner_name"] = (*it)->findAttribute( "owner_name" );
data["uri"] = (*it)->findAttribute( "uri" );
items.arr_push(data);
}
jobj["list"]=items;
if (!callback_.empty())
{
callback_(false, XL(""), jobj);
}
//.........这里部分代码省略.........