The Pubnub C-core library. It's home is on https://github.com/pubnub/c_core, this is a copy

Dependents:   Pubnub_c_core_mbed2_pal Pubnub_c_core_mbed2_pal Pubnub_c_core_mbed2_pal2

Committer:
sveljko
Date:
Tue Nov 22 22:21:39 2016 +0000
Revision:
2:d85e42c1125d
Added `pubnub_helper` module

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sveljko 2:d85e42c1125d 1 /* -*- c-file-style:"stroustrup"; indent-tabs-mode: nil -*- */
sveljko 2:d85e42c1125d 2 #include "pubnub_helper.h"
sveljko 2:d85e42c1125d 3
sveljko 2:d85e42c1125d 4 #include "pubnub_assert.h"
sveljko 2:d85e42c1125d 5
sveljko 2:d85e42c1125d 6 #include <string.h>
sveljko 2:d85e42c1125d 7
sveljko 2:d85e42c1125d 8
sveljko 2:d85e42c1125d 9 enum pubnub_publish_res pubnub_parse_publish_result(char const *result)
sveljko 2:d85e42c1125d 10 {
sveljko 2:d85e42c1125d 11 PUBNUB_ASSERT_OPT(result != NULL);
sveljko 2:d85e42c1125d 12
sveljko 2:d85e42c1125d 13 if (strcmp(result, "\"Sent\"") == 0) {
sveljko 2:d85e42c1125d 14 return PNPUB_SENT;
sveljko 2:d85e42c1125d 15 }
sveljko 2:d85e42c1125d 16 if (strcmp(result, "\"Invalid JSON\"") == 0) {
sveljko 2:d85e42c1125d 17 return PNPUB_INVALID_JSON;
sveljko 2:d85e42c1125d 18 }
sveljko 2:d85e42c1125d 19 if (strncmp(result, "\"Invalid Character in Channel Name", 34) == 0) {
sveljko 2:d85e42c1125d 20 return PNPUB_INVALID_CHAR_IN_CHAN_NAME;
sveljko 2:d85e42c1125d 21 }
sveljko 2:d85e42c1125d 22 if (strncmp(result, "\"Account quota exceeded", 23) == 0) {
sveljko 2:d85e42c1125d 23 return PNPUB_ACCOUNT_QUOTA_EXCEEDED;
sveljko 2:d85e42c1125d 24 }
sveljko 2:d85e42c1125d 25 if (strcmp(result, "\"Message Too Large\"") == 0) {
sveljko 2:d85e42c1125d 26 return PNPUB_MESSAGE_TOO_LARGE;
sveljko 2:d85e42c1125d 27 }
sveljko 2:d85e42c1125d 28 return PNPUB_UNKNOWN_ERROR;
sveljko 2:d85e42c1125d 29 }
sveljko 2:d85e42c1125d 30
sveljko 2:d85e42c1125d 31
sveljko 2:d85e42c1125d 32 char const* pubnub_res_2_string(enum pubnub_res e)
sveljko 2:d85e42c1125d 33 {
sveljko 2:d85e42c1125d 34 switch (e) {
sveljko 2:d85e42c1125d 35 case PNR_OK: return "OK";
sveljko 2:d85e42c1125d 36 case PNR_ADDR_RESOLUTION_FAILED: return "Pubnub host name resolution failed";
sveljko 2:d85e42c1125d 37 case PNR_CONNECT_FAILED: return "Connecting to Pubnub server failed";
sveljko 2:d85e42c1125d 38 case PNR_CONNECTION_TIMEOUT: return "A time-out happened in the network";
sveljko 2:d85e42c1125d 39 case PNR_TIMEOUT: return "Timeout";
sveljko 2:d85e42c1125d 40 case PNR_ABORTED: return "Aborted";
sveljko 2:d85e42c1125d 41 case PNR_IO_ERROR: return "I/O (communication) error";
sveljko 2:d85e42c1125d 42 case PNR_HTTP_ERROR: return "HTTP error received from server";
sveljko 2:d85e42c1125d 43 case PNR_FORMAT_ERROR: return "Response format error";
sveljko 2:d85e42c1125d 44 case PNR_CANCELLED: return "Pubnub API transaction cancelled";
sveljko 2:d85e42c1125d 45 case PNR_STARTED: return "Pubnub API transaction started";
sveljko 2:d85e42c1125d 46 case PNR_IN_PROGRESS: return "Pubnub API transaction already in progress";
sveljko 2:d85e42c1125d 47 case PNR_RX_BUFF_NOT_EMPTY: return "Rx buffer not empty";
sveljko 2:d85e42c1125d 48 case PNR_TX_BUFF_TOO_SMALL: return "Tx buffer too small for sending/publishing the message";
sveljko 2:d85e42c1125d 49 case PNR_INVALID_CHANNEL: return "Invalid channel";
sveljko 2:d85e42c1125d 50 case PNR_PUBLISH_FAILED: return "Publish failed";
sveljko 2:d85e42c1125d 51 case PNR_CHANNEL_REGISTRY_ERROR: return "A transaction related to channel registry failed";
sveljko 2:d85e42c1125d 52 case PNR_REPLY_TOO_BIG: return "Reply from Pubnub too big to fit in buffer";
sveljko 2:d85e42c1125d 53 case PNR_INTERNAL_ERROR: return "Internal error in processing";
sveljko 2:d85e42c1125d 54 default: return "!?!?!";
sveljko 2:d85e42c1125d 55 }
sveljko 2:d85e42c1125d 56 }