The Pubnub C-core library. It's home is on https://github.com/pubnub/c_core, this is a copy

Dependents:   Pubnub_c_core_mbed2_pal Pubnub_c_core_mbed2_pal Pubnub_c_core_mbed2_pal2

Committer:
sveljko
Date:
Thu Nov 10 22:20:11 2016 +0000
Revision:
0:d13755cfb705
Initial commit of Pubnub C-core

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sveljko 0:d13755cfb705 1 /* -*- c-file-style:"stroustrup"; indent-tabs-mode: nil -*- */
sveljko 0:d13755cfb705 2 #include "pubnub_assert.h"
sveljko 0:d13755cfb705 3
sveljko 0:d13755cfb705 4 #include <stdlib.h>
sveljko 0:d13755cfb705 5 #include <stdio.h>
sveljko 0:d13755cfb705 6
sveljko 0:d13755cfb705 7
sveljko 0:d13755cfb705 8 static pubnub_assert_handler_t m_handler;
sveljko 0:d13755cfb705 9
sveljko 0:d13755cfb705 10
sveljko 0:d13755cfb705 11 void pubnub_assert_set_handler(pubnub_assert_handler_t handler)
sveljko 0:d13755cfb705 12 {
sveljko 0:d13755cfb705 13 if (handler == NULL) {
sveljko 0:d13755cfb705 14 handler = pubnub_assert_handler_abort;
sveljko 0:d13755cfb705 15 }
sveljko 0:d13755cfb705 16 m_handler = handler;
sveljko 0:d13755cfb705 17 }
sveljko 0:d13755cfb705 18
sveljko 0:d13755cfb705 19
sveljko 0:d13755cfb705 20 void pubnub_assert_failed(char const *s, char const *file, long line)
sveljko 0:d13755cfb705 21 {
sveljko 0:d13755cfb705 22 if (m_handler == NULL) {
sveljko 0:d13755cfb705 23 m_handler = pubnub_assert_handler_abort;
sveljko 0:d13755cfb705 24 }
sveljko 0:d13755cfb705 25 m_handler(s, file, line);
sveljko 0:d13755cfb705 26 }
sveljko 0:d13755cfb705 27
sveljko 0:d13755cfb705 28
sveljko 0:d13755cfb705 29 static void report(char const *s, char const *file, long line)
sveljko 0:d13755cfb705 30 {
sveljko 0:d13755cfb705 31 printf("Pubnub assert failed '%s', file '%s', line %ld\n", s, file, line);
sveljko 0:d13755cfb705 32 }
sveljko 0:d13755cfb705 33
sveljko 0:d13755cfb705 34
sveljko 0:d13755cfb705 35 void pubnub_assert_handler_loop(char const *s, char const *file, long line)
sveljko 0:d13755cfb705 36 {
sveljko 0:d13755cfb705 37 report(s, file, line);
sveljko 0:d13755cfb705 38 for (;;) continue;
sveljko 0:d13755cfb705 39 }
sveljko 0:d13755cfb705 40
sveljko 0:d13755cfb705 41
sveljko 0:d13755cfb705 42 void pubnub_assert_handler_abort(char const *s, char const *file, long line)
sveljko 0:d13755cfb705 43 {
sveljko 0:d13755cfb705 44 report(s, file, line);
sveljko 0:d13755cfb705 45 abort();
sveljko 0:d13755cfb705 46 }
sveljko 0:d13755cfb705 47
sveljko 0:d13755cfb705 48 void pubnub_assert_handler_printf(char const *s, char const *file, long line)
sveljko 0:d13755cfb705 49 {
sveljko 0:d13755cfb705 50 report(s, file, line);
sveljko 0:d13755cfb705 51 }