enum pubnub_res pubnub_list_channel_group(pubnub_t *pb, char const *channel_group) { enum pubnub_res rslt; PUBNUB_ASSERT(pb_valid_ctx_ptr(pb)); if (pb->state != PBS_IDLE) { return PNR_IN_PROGRESS; } rslt = pbcc_channel_registry_prep(&pb->core, channel_group, NULL, NULL); if (PNR_STARTED == rslt) { pb->trans = PBTT_LIST_CHANNEL_GROUP; pb->core.last_result = PNR_STARTED; pbnc_fsm(pb); rslt = pb->core.last_result; } return rslt; }
enum pubnub_res pubnub_add_channel_to_group(pubnub_t *pb, char const *channel, char const *channel_group) { enum pubnub_res rslt; PUBNUB_ASSERT(pb_valid_ctx_ptr(pb)); pubnub_mutex_lock(pb->monitor); if (pb->state != PBS_IDLE) { pubnub_mutex_unlock(pb->monitor); return PNR_IN_PROGRESS; } rslt = pbcc_channel_registry_prep(&pb->core, channel_group, "add", channel); if (PNR_STARTED == rslt) { pb->trans = PBTT_ADD_CHANNEL_TO_GROUP; pb->core.last_result = PNR_STARTED; pbnc_fsm(pb); rslt = pb->core.last_result; } pubnub_mutex_unlock(pb->monitor); return rslt; }