int LocalNodeInfo::addHistoryInternal (uint16 ui16ClientId, const char *pszGroupName, History *pHistory) { Subscription *pSubscription = getSubscriptionForClient (ui16ClientId, pszGroupName); if (pSubscription == NULL) { return -1; } if (pSubscription->getSubscriptionType() != Subscription::GROUP_SUBSCRIPTION) { return -2; } return pSubscription->addHistory (pHistory); }
int LocalNodeInfo::addHistory (uint16 ui16ClientId, const char *pszGroupName, uint8 ui8PredicateType, const char *pszPredicate, History *pHistory) { _m.lock (309); Subscription *pSubscription = getSubscriptionForClient (ui16ClientId, pszGroupName); if (pSubscription == NULL) { _m.unlock (309); return -1; } if (pSubscription->getSubscriptionType() != Subscription::GROUP_PREDICATE_SUBSCRIPTION) { _m.unlock (309); return -2; } int rc = pSubscription->addHistory (pHistory); _m.unlock (309); return rc; }
int LocalNodeInfo::addHistory (uint16 ui16ClientId, const char *pszGroupName, uint16 ui16Tag, History *pHistory) { _m.lock (308); if (ui16Tag == Subscription::DUMMY_TAG) { int rc = addHistoryInternal (ui16ClientId, pszGroupName, pHistory); _m.unlock (308); return rc; } Subscription *pSubscription = getSubscriptionForClient (ui16ClientId, pszGroupName); if (pSubscription == NULL) { _m.unlock (308); return -1; } /* Do not do the following test because it prevents a history request with a specific tag number even though the group subscription is for all tags if (pSubscription->getSubscriptionType() != Subscription::GROUP_TAG_SUBSCRIPTION) { _m.unlock (308); return -2; } */ int rc = pSubscription->addHistory (pHistory, ui16Tag); _m.unlock (308); return rc; }