@@ -263,7 +263,9 @@ namespace pubnub {
263263 // / Subscribes to @p channel and/or @p channel_group
264264 // / @see pubnub_subscribe
265265 futres subscribe (std::string const &channel, std::string const &channel_group = " " ) {
266- return doit (pubnub_subscribe (d_pb, channel.c_str (), channel_group.c_str ()));
266+ char const *ch = channel.empty () ? 0 : channel.c_str ();
267+ char const *gr = channel_group.empty () ? 0 : channel_group.c_str ();
268+ return doit (pubnub_subscribe (d_pb, ch, gr));
267269 }
268270
269271 // / Pass a vector of channels in the @p channel and a vector
@@ -276,7 +278,9 @@ namespace pubnub {
276278 // / Leaves a @p channel and/or @p channel_group
277279 // / @see pubnub_leave
278280 futres leave (std::string const &channel, std::string const &channel_group) {
279- return doit (pubnub_leave (d_pb, channel.c_str (), channel_group.c_str ()));
281+ char const *ch = channel.empty () ? 0 : channel.c_str ();
282+ char const *gr = channel_group.empty () ? 0 : channel_group.c_str ();
283+ return doit (pubnub_leave (d_pb, ch, gr));
280284 }
281285
282286 // / Pass a vector of channels in the @p channel and a vector
@@ -297,7 +301,9 @@ namespace pubnub {
297301 // / messages to retrieve
298302 // / @see pubnub_history
299303 futres history (std::string const &channel, std::string const &channel_group = " " , unsigned count = 100 ) {
300- return doit (pubnub_history (d_pb, channel.c_str (), channel_group.c_str (), count));
304+ char const *ch = channel.empty () ? 0 : channel.c_str ();
305+ char const *gr = channel_group.empty () ? 0 : channel_group.c_str ();
306+ return doit (pubnub_history (d_pb, ch, gr, count));
301307 }
302308
303309 // / Pass a vector of channels in the @p channel and a vector
@@ -313,7 +319,9 @@ namespace pubnub {
313319 // / a time token for each message. Uses the v2 protocol.
314320 // / @see pubnub_historyv2
315321 futres historyv2 (std::string const &channel, std::string const &channel_group = " " , unsigned count = 100 , bool include_token = false ) {
316- return doit (pubnub_historyv2 (d_pb, channel.c_str (), channel_group.c_str (), count, include_token));
322+ char const *ch = channel.empty () ? 0 : channel.c_str ();
323+ char const *gr = channel_group.empty () ? 0 : channel_group.c_str ();
324+ return doit (pubnub_historyv2 (d_pb, ch, gr, count, include_token));
317325 }
318326
319327 // / Pass a vector of channels in the @p channel and a vector
@@ -327,7 +335,9 @@ namespace pubnub {
327335 // / UUIDs on a @p channel and/or @p channel_group
328336 // / @see pubnub_here_now
329337 futres here_now (std::string const &channel, std::string const &channel_group = " " ) {
330- return doit (pubnub_here_now (d_pb, channel.c_str (), channel_group.c_str ()));
338+ char const *ch = channel.empty () ? 0 : channel.c_str ();
339+ char const *gr = channel_group.empty () ? 0 : channel_group.c_str ();
340+ return doit (pubnub_here_now (d_pb, ch, gr));
331341 }
332342
333343 // / Pass a vector of channels in the @p channel and a vector
@@ -356,7 +366,9 @@ namespace pubnub {
356366 // / given @p channel and/or @pchannel_group of the given @p uuid
357367 // / @see pubnub_set_state
358368 futres set_state (std::string const &channel, std::string const &channel_group, std::string const &uuid, std::string const &state) {
359- return doit (pubnub_set_state (d_pb, channel.c_str (), channel_group.c_str (), uuid.c_str (), state.c_str ()));
369+ char const *ch = channel.empty () ? 0 : channel.c_str ();
370+ char const *gr = channel_group.empty () ? 0 : channel_group.c_str ();
371+ return doit (pubnub_set_state (d_pb, ch, gr, uuid.c_str (), state.c_str ()));
360372 }
361373
362374 // / Pass a vector of channels in the @p channel and a vector
@@ -371,7 +383,9 @@ namespace pubnub {
371383 // / uuid
372384 // / @see pubnub_set_state
373385 futres state_get (std::string const &channel, std::string const &channel_group = " " , std::string const &uuid = " " ) {
374- return doit (pubnub_state_get (d_pb, channel.c_str (), channel_group.c_str (), uuid.empty () ? NULL : uuid.c_str ()));
386+ char const *ch = channel.empty () ? 0 : channel.c_str ();
387+ char const *gr = channel_group.empty () ? 0 : channel_group.c_str ();
388+ return doit (pubnub_state_get (d_pb, ch, gr, uuid.empty () ? NULL : uuid.c_str ()));
375389 }
376390 futres state_get (std::vector<std::string> const &channel, std::vector<std::string> const &channel_group, std::string const &uuid = " " ) {
377391 return state_get (join (channel, comma), join (channel_group, comma), uuid);
0 commit comments