This is the PAL (Platform Adaptation Layer) for the Pubnub C-core library.
pbpal_resolv_and_connect_mbed2.cpp@3:be58f6801809, 2016-12-06 (annotated)
- 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?
User | Revision | Line number | New 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 | } |