Beispiel #1
0
int
UBusSubscriber::UnSubscribe(std::vector<std::string> events)
{
    std::vector<std::string>::iterator it;

    ILOG_TRACE(UBUS_SUBSCRIBER);
    for (it = events.begin(); it != events.end(); ++it)
        UnSubscribe(*it);

    ILOG_DEBUG(UBUS_SUBSCRIBER, "unsubscribe events success\n");

    return 0;
}
Beispiel #2
0
int Channel::UpdateSubscriber(const ISubscriber* old_subscriber,
        const ISubscriber* new_subscriber) {
    if (NULL == old_subscriber || NULL == new_subscriber) {
        return -1;
    }

    int ret = UnSubscribe(old_subscriber);
    if (ret != 0) {
        return -2;
    }

    ret = Subscribe(new_subscriber);
    return (ret == 0 ? 0 : -3);
}
Beispiel #3
0
int
UBusSubscriber::Subscribe(std::vector<std::string> events)
{
    std::vector<std::string>::iterator it;
    int ret;

    ILOG_TRACE(UBUS_SUBSCRIBER);
    for (it = events.begin(); it != events.end(); ++it) {
        ret = Subscribe(*it);
        if (ret)
            goto unsubscribe;
    }

    ILOG_DEBUG(UBUS_SUBSCRIBER, "subscribe events success\n");

    return 0;

unsubscribe:
    for (; it != events.begin(); --it)
        UnSubscribe(*it);
    ILOG_ERROR(UBUS_SUBSCRIBER, "subscribe events fail\n");
    return -1;
}
 void Subscription::UnSubscribe(uint32_t handle)
 {
   return UnSubscribe(std::vector<uint32_t>(1, handle));
 }