This is the PAL (Platform Adaptation Layer) for the Pubnub C-core library.

Dependencies:   Pubnub_c_core

Dependents:   Pubnub_mbed2_sync

Committer:
sveljko
Date:
Tue Dec 06 10:22:54 2016 +0000
Revision:
3:be58f6801809
Parent:
0:389a44951c54
Update doc for srand_from_pubnub_time()

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sveljko 0:389a44951c54 1 /* -*- c-file-style:"stroustrup"; indent-tabs-mode: nil -*- */
sveljko 0:389a44951c54 2 #include "pbpal.h"
sveljko 0:389a44951c54 3
sveljko 0:389a44951c54 4 #include "pubnub_internal.h"
sveljko 0:389a44951c54 5 #include "pubnub_assert.h"
sveljko 0:389a44951c54 6 #include "pubnub_log.h"
sveljko 0:389a44951c54 7
sveljko 0:389a44951c54 8
sveljko 0:389a44951c54 9 enum pbpal_resolv_n_connect_result pbpal_resolv_and_connect(pubnub_t *pb)
sveljko 0:389a44951c54 10 {
sveljko 0:389a44951c54 11 char const* origin = PUBNUB_ORIGIN_SETTABLE ? pb->origin : PUBNUB_ORIGIN;
sveljko 0:389a44951c54 12 PUBNUB_LOG_TRACE("resolv_and_connect\n");
sveljko 0:389a44951c54 13 if (NULL == pb->pal.socket) {
sveljko 0:389a44951c54 14 pb->pal.socket = &pb->pal.socket_object;
sveljko 0:389a44951c54 15 }
sveljko 0:389a44951c54 16
sveljko 0:389a44951c54 17 WATCH_ENUM(pb->options.use_blocking_io);
sveljko 0:389a44951c54 18 if (pb->pal.socket->connect(origin, 80) < 0) {
sveljko 0:389a44951c54 19 PUBNUB_LOG_ERROR("connect failed\n");
sveljko 0:389a44951c54 20 return pbpal_connect_failed;
sveljko 0:389a44951c54 21 }
sveljko 0:389a44951c54 22 /* This has to be done after the connect(), because it sets
sveljko 0:389a44951c54 23 non-blocking, so we must override if we want blocking. */
sveljko 0:389a44951c54 24 pbpal_set_blocking_io(pb);
sveljko 0:389a44951c54 25
sveljko 0:389a44951c54 26 return pbpal_connect_success;
sveljko 0:389a44951c54 27 }
sveljko 0:389a44951c54 28
sveljko 0:389a44951c54 29
sveljko 0:389a44951c54 30 enum pbpal_resolv_n_connect_result pbpal_check_resolv_and_connect(pubnub_t *pb)
sveljko 0:389a44951c54 31 {
sveljko 0:389a44951c54 32 /* Under mbed2, this function should never be called.
sveljko 0:389a44951c54 33 */
sveljko 0:389a44951c54 34 PUBNUB_ASSERT_OPT(pb == NULL);
sveljko 0:389a44951c54 35 return pbpal_connect_failed;
sveljko 0:389a44951c54 36 }
sveljko 0:389a44951c54 37
sveljko 0:389a44951c54 38
sveljko 0:389a44951c54 39 enum pbpal_resolv_n_connect_result pbpal_check_connect(pubnub_t *pb)
sveljko 0:389a44951c54 40 {
sveljko 0:389a44951c54 41 return pb->pal.socket->is_connected() ? pbpal_connect_success :
sveljko 0:389a44951c54 42 pbpal_connect_wouldblock;
sveljko 0:389a44951c54 43 }