Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
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;
}
Ejemplo n.º 3
0
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;
}