本文整理汇总了C++中SubscriptionList::removeGroup方法的典型用法代码示例。如果您正苦于以下问题:C++ SubscriptionList::removeGroup方法的具体用法?C++ SubscriptionList::removeGroup怎么用?C++ SubscriptionList::removeGroup使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SubscriptionList
的用法示例。
在下文中一共展示了SubscriptionList::removeGroup方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: unsubscribe
int LocalNodeInfo::unsubscribe (uint16 ui16ClientId, const char *pszGroupName, uint16 ui16Tag)
{
char *pszOnDemandDataGroupName = getOnDemandDataGroupName (pszGroupName);
if (pszOnDemandDataGroupName == NULL) {
// The on-demand subscription group name could not be generated
return -1;
}
_m.lock (306);
SubscriptionList *pSL = _localSubscriptions.get (ui16ClientId);
int rc = 0;
if (pSL == NULL) {
rc = -2;
}
else {
Subscription *pSub = pSL->getSubscription (pszGroupName);
if (pSub == NULL) {
rc = -3;
}
else {
uint8 ui8SubscriptionType = pSub->getSubscriptionType();
if ((ui8SubscriptionType == Subscription::GROUP_SUBSCRIPTION) && (ui16Tag == 0)) {
if (pSL->removeGroup (pszGroupName)) {
rc = -4;
}
else {
if (pSL->removeGroup (pszOnDemandDataGroupName)) {
rc = -5;
}
}
}
else if ((ui8SubscriptionType == Subscription::GROUP_TAG_SUBSCRIPTION) && (ui16Tag != 0)) {
if (pSL->removeGroupTag (pszGroupName, ui16Tag)) {
rc = -6;
}
else {
if (pSL->removeGroupTag (pszOnDemandDataGroupName, ui16Tag)) {
rc = -7;
}
}
}
}
}
if (rc == 0) {
recomputeConsolidateSubsciptionList ();
}
free (pszOnDemandDataGroupName);
_m.unlock (306);
return rc;
}
示例2: subscribe
int LocalNodeInfo::subscribe (uint16 ui16ClientId, const char *pszGroupName, Subscription *pSubscription)
{
_m.lock (300);
if (pszGroupName == NULL || pSubscription == NULL) {
delete pSubscription;
_m.unlock (300);
return -1;
}
char *pszOnDemandDataGroupName = getOnDemandDataGroupName (pszGroupName);
if (pszOnDemandDataGroupName == NULL) {
// The on-demand subscription group name could not be generated
delete pSubscription;
_m.unlock (300);
return -2;
}
Subscription *pOnDemandSubscription = pSubscription->getOnDemandSubscription();
if (pOnDemandSubscription == NULL) {
free (pszOnDemandDataGroupName);
delete pSubscription;
_m.unlock (300);
return -3;
}
SubscriptionList *pSL = _localSubscriptions.get (ui16ClientId);
if (pSL == NULL) {
pSL = new SubscriptionList();
_localSubscriptions.put (ui16ClientId, pSL);
}
if (pSL->addGroup (pszGroupName, pSubscription) != 0) {
// The subscription could not be added
free (pszOnDemandDataGroupName);
delete pSubscription;
delete pOnDemandSubscription;
_m.unlock (300);
return -4;
}
if (pSL->addGroup (pszOnDemandDataGroupName, pOnDemandSubscription) != 0) {
// The on-demand subscription could not be added
free (pszOnDemandDataGroupName);
delete pOnDemandSubscription;
pSL->removeGroup (pszGroupName, pSubscription); // Should delete pSubscription
_m.unlock (300);
return -5;
}
// The subscription was added, check if the ConsolidateList needs to be modified too.
updateConsolidateSubsciptionList (pszGroupName, pSubscription);
// The subscription was added, check if the ConsolidateList needs to be modified too.
updateConsolidateSubsciptionList (pszOnDemandDataGroupName, pOnDemandSubscription);
free (pszOnDemandDataGroupName);
_m.unlock (300);
return 0;
}