本文整理汇总了C++中presence::ref::setType方法的典型用法代码示例。如果您正苦于以下问题:C++ ref::setType方法的具体用法?C++ ref::setType怎么用?C++ ref::setType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类presence::ref
的用法示例。
在下文中一共展示了ref::setType方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: handleIncomingPresence
void PresenceOracle::handleIncomingPresence(Presence::ref presence) {
// ignore presences for some contact, we're checking only presences for the transport itself here.
// filter out login/logout presence spam
if (!presence->getTo().getNode().empty())
return;
JID bareJID(presence->getFrom().toBare());
if (presence->getType() == Presence::Subscribe || presence->getType() == Presence::Subscribed) {
}
else {
Presence::ref passedPresence = presence;
if (presence->getType() == Presence::Unsubscribe || presence->getType() == Presence::Unsubscribed) {
/* 3921bis says that we don't follow up with an unavailable, so simulate this ourselves */
passedPresence = Presence::ref(new Presence());
passedPresence->setType(Presence::Unavailable);
passedPresence->setFrom(bareJID);
passedPresence->setStatus(presence->getStatus());
}
std::map<JID, boost::shared_ptr<Presence> > jidMap = entries_[bareJID];
if (passedPresence->getFrom().isBare() && presence->getType() == Presence::Unavailable) {
/* Have a bare-JID only presence of offline */
jidMap.clear();
} else if (passedPresence->getType() == Presence::Available) {
/* Don't have a bare-JID only offline presence once there are available presences */
jidMap.erase(bareJID);
}
if (passedPresence->getType() == Presence::Unavailable && jidMap.size() > 1) {
jidMap.erase(passedPresence->getFrom());
} else {
jidMap[passedPresence->getFrom()] = passedPresence;
}
entries_[bareJID] = jidMap;
onPresenceChange(passedPresence);
}
}
示例2: handleIncomingPresence
void PresenceOracle::handleIncomingPresence(Presence::ref presence) {
JID bareJID(presence->getFrom().toBare());
if (presence->getType() == Presence::Subscribe) {
}
else {
Presence::ref passedPresence = presence;
if (presence->getType() == Presence::Unsubscribe) {
/* 3921bis says that we don't follow up with an unavailable, so simulate this ourselves */
passedPresence = Presence::ref(new Presence());
passedPresence->setType(Presence::Unavailable);
passedPresence->setFrom(bareJID);
passedPresence->setStatus(presence->getStatus());
}
std::map<JID, boost::shared_ptr<Presence> > jidMap = entries_[bareJID];
if (passedPresence->getFrom().isBare() && presence->getType() == Presence::Unavailable) {
/* Have a bare-JID only presence of offline */
jidMap.clear();
} else if (passedPresence->getType() == Presence::Available) {
/* Don't have a bare-JID only offline presence once there are available presences */
jidMap.erase(bareJID);
}
if (passedPresence->getType() == Presence::Unavailable && jidMap.size() > 1) {
jidMap.erase(passedPresence->getFrom());
} else {
jidMap[passedPresence->getFrom()] = passedPresence;
}
entries_[bareJID] = jidMap;
onPresenceChange(passedPresence);
}
}
示例3: createPresence
Presence::ref createPresence(const JID &jid, int priority, Presence::Type type, const StatusShow::Type& statusShow) {
Presence::ref presence = boost::make_shared<Presence>();
presence->setFrom(jid);
presence->setPriority(priority);
presence->setType(type);
presence->setShow(statusShow);
return presence;
}
示例4: handlePresenceReceived
void handlePresenceReceived(Presence::ref presence) {
// Automatically approve subscription requests
if (presence->getType() == Presence::Subscribe) {
Presence::ref response = Presence::create();
response->setTo(presence->getFrom());
response->setType(Presence::Subscribed);
client->sendPresence(response);
}
}
示例5: handleJIDRemoved
void PresenceOracle::handleJIDRemoved(const JID& removedJID) {
/* 3921bis says that we don't follow up with an unavailable, so simulate this ourselves */
Presence::ref unavailablePresence = Presence::ref(new Presence());
unavailablePresence->setType(Presence::Unavailable);
unavailablePresence->setFrom(removedJID);
if (entries_.find(removedJID) != entries_.end()) {
entries_[removedJID].clear();
entries_[removedJID][removedJID] = unavailablePresence;
}
onPresenceChange(unavailablePresence);
}