This is the Pubnub library for MBed2 ("classic") with the "sync" interface. It is based on the Pubnub C-core library.

Dependencies:   Pubnub_c_core_mbed2_pal

Dependents:   Pubnub_ATT_IoT_SK_WNC_sync pubnub_sync

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers pubnub_ntf_sync.cpp Source File

pubnub_ntf_sync.cpp

00001 /* -*- c-file-style:"stroustrup"; indent-tabs-mode: nil -*- */
00002 #include "pubnub_ntf_sync.h"
00003 
00004 #include "pbpal.h"
00005 #include "pubnub_internal.h"
00006 #include "pubnub_assert.h"
00007 #include "pubnub_log.h"
00008 
00009 #include "pbntf_trans_outcome_common.h"
00010 
00011 
00012 int pbntf_init(void)
00013 {
00014     return 0;
00015 }
00016 
00017 
00018 int pbntf_got_socket(pubnub_t *pb, pb_socket_t socket)
00019 {
00020     PUBNUB_UNUSED(socket);
00021     if (PUBNUB_BLOCKING_IO_SETTABLE) {
00022         pbpal_set_blocking_io(pb);
00023     }
00024     return +1;
00025 }
00026 
00027 
00028 void pbntf_update_socket(pubnub_t *pb, pb_socket_t socket)
00029 {
00030     PUBNUB_UNUSED(socket);
00031     PUBNUB_UNUSED(pb);
00032 }
00033 
00034 
00035 void pbntf_lost_socket(pubnub_t *pb, pb_socket_t socket)
00036 {
00037     PUBNUB_UNUSED(socket);
00038     PUBNUB_UNUSED(pb);
00039 }
00040 
00041 
00042 void pbntf_trans_outcome(pubnub_t *pb)
00043 {
00044     PBNTF_TRANS_OUTCOME_COMMON(pb);
00045 }
00046 
00047 
00048 int pbntf_enqueue_for_processing(pubnub_t *pb)
00049 {
00050     PUBNUB_UNUSED(pb);
00051     return 0;
00052 }
00053 
00054 
00055 int pbntf_requeue_for_processing(pubnub_t *pb)
00056 {
00057     PUBNUB_UNUSED(pb);
00058     
00059     return 0;
00060 }
00061 
00062 
00063 int pbntf_watch_in_events(pubnub_t *pbp)
00064 {
00065     PUBNUB_UNUSED(pbp);
00066     return 0;
00067 }
00068 
00069 
00070 int pbntf_watch_out_events(pubnub_t *pbp)
00071 {
00072     PUBNUB_UNUSED(pbp);
00073     return 0;
00074 }
00075 
00076 
00077 enum pubnub_res pubnub_last_result(pubnub_t *pb)
00078 {
00079     enum pubnub_res result;
00080     PUBNUB_ASSERT(pb_valid_ctx_ptr(pb));
00081 
00082     pubnub_mutex_lock(pb->monitor);
00083     if (pb->state != PBS_IDLE) {
00084         pbnc_fsm((pubnub_t*)pb);
00085     }
00086     result = pb->core.last_result;
00087     pubnub_mutex_unlock(pb->monitor);
00088 
00089     return result;
00090 }
00091 
00092 
00093 enum pubnub_res pubnub_await(pubnub_t *pb)
00094 {
00095     enum pubnub_res result;
00096     PUBNUB_ASSERT(pb_valid_ctx_ptr(pb));
00097 
00098     pubnub_mutex_lock(pb->monitor);
00099     while (pb->state != PBS_IDLE) {
00100         pbnc_fsm(pb);
00101     }
00102     result = pb->core.last_result;
00103     pubnub_mutex_unlock(pb->monitor);
00104 
00105     return result;
00106 }