Ejemplo n.º 1
0
pubnub_t* pubnub_init(pubnub_t *p, const char *publish_key, const char *subscribe_key)
{
    PUBNUB_ASSERT(pb_valid_ctx_ptr(p));

    pubnub_mutex_init(p->monitor);
    pubnub_mutex_lock(p->monitor);
    pbcc_init(&p->core, publish_key, subscribe_key);
    if (PUBNUB_TIMERS_API) {
        p->transaction_timeout_ms = PUBNUB_DEFAULT_TRANSACTION_TIMER;
#if defined(PUBNUB_DEFAULT_CONNECTION_TIMER)
        p->connection_timeout_s = PUBNUB_DEFAULT_CONNECTION_TIMER;
#endif
#if defined(PUBNUB_CALLBACK_API)
        p->previous = p->next = NULL;
#endif
    }
#if defined(PUBNUB_CALLBACK_API)
	p->cb = NULL;
	p->user_data = NULL;
#endif
	if (PUBNUB_ORIGIN_SETTABLE) {
        p->origin = PUBNUB_ORIGIN;
    }

    p->state = PBS_IDLE;
    p->trans = PBTT_NONE;
    pbpal_init(p);
    pubnub_mutex_unlock(p->monitor);

    return p;
}
Ejemplo n.º 2
0
void pnc_ops_init(pubnub_t *pn, pubnub_t *pn_sub)
{
    pubnub_mutex_init(m_loop_enabled_mutex);

    InitUserData(&m_user_data, pn);
    InitUserData(&m_user_data_sub, pn_sub);
    
    pubnub_register_callback(pn, ops_callback, &m_user_data);
    pubnub_register_callback(pn_sub, subscribe_callback, &m_user_data_sub);
}
pubnub_subloop_t* pubnub_subloop_define(pubnub_t*                       p,
                                        char const*                     channel,
                                        struct pubnub_subscribe_options options,
                                        pubnub_subloop_callback_t       cb)
{
    pubnub_subloop_t* rslt = (pubnub_subloop_t*)malloc(sizeof(pubnub_subloop_t));
    if (NULL == rslt) {
        return NULL;
    }

    rslt->pbp              = p;
    rslt->channel          = channel;
    rslt->options          = options;
    rslt->cb               = cb;
    rslt->saved_context_cb = NULL;
    pubnub_mutex_init(rslt->monitor);

    return rslt;
}