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
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 }
Generated on Thu Jul 28 2022 01:33:33 by 1.7.2