Xively C library

Dependents:   Application-xively-jumpstart-demo Application-xively-jumpstart-demo Modified_Xively_Jumpstart HW7-1_Xively_Thermostat

This is Xively C library, the code lives on GitHub.

See our example program and the tutorial, documentation can bee found here.

Committer:
xively
Date:
Wed Jun 26 10:40:43 2013 +0000
Revision:
0:82702e998d3f
libxively v0.1.1-rc0 (34c8b32)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
xively 0:82702e998d3f 1 // Copyright (c) 2003-2013, LogMeIn, Inc. All rights reserved.
xively 0:82702e998d3f 2 // This is part of Xively C library, it is under the BSD 3-Clause license.
xively 0:82702e998d3f 3
xively 0:82702e998d3f 4 /**
xively 0:82702e998d3f 5 * \file xi_err.c
xively 0:82702e998d3f 6 * \author Olgierd Humenczuk
xively 0:82702e998d3f 7 * \brief Error handling (POSIX-like) [see xi_err.h]
xively 0:82702e998d3f 8 */
xively 0:82702e998d3f 9
xively 0:82702e998d3f 10 #include "xi_err.h"
xively 0:82702e998d3f 11 #include "xi_macros.h"
xively 0:82702e998d3f 12
xively 0:82702e998d3f 13 static xi_err_t xi_err = XI_NO_ERR;
xively 0:82702e998d3f 14
xively 0:82702e998d3f 15 const char* xi_err_string[ XI_ERR_COUNT ] =
xively 0:82702e998d3f 16 {
xively 0:82702e998d3f 17 "XI_NO_ERR"
xively 0:82702e998d3f 18 , "XI_OUT_OF_MEMORY" // XI_OUT_OF_MEMORY
xively 0:82702e998d3f 19 , "XI_HTTP_STATUS_PARSE_ERROR" // XI_HTTP_STATUS_PARSE_ERROR
xively 0:82702e998d3f 20 , "XI_HTTP_HEADER_PARSE_ERROR" // XI_HTTP_HEADER_PARSE_ERROR
xively 0:82702e998d3f 21 , "XI_HTTP_PARSE_ERROR" // XI_HTTP_PARSE_ERROR
xively 0:82702e998d3f 22 , "XI_HTTP_ENCODE_CREATE_DATASTREAM" // XI_HTTP_ENCODE_CREATE_DATASTREAM
xively 0:82702e998d3f 23 , "XI_HTTP_ENCODE_UPDATE_DATASTREAM" // XI_HTTP_ENCODE_UPDATE_DATASTREAM
xively 0:82702e998d3f 24 , "XI_HTTP_ENCODE_GET_DATASTREAM" // XI_HTTP_ENCODE_GET_DATASTREAM
xively 0:82702e998d3f 25 , "XI_HTTP_ENCODE_DELETE_DATASTREAM" // XI_HTTP_ENCODE_DELETE_DATASTREAM
xively 0:82702e998d3f 26 , "XI_HTTP_ENCODE_DELETE_DATAPOINT" // XI_HTTP_ENCODE_DELETE_DATAPOINT
xively 0:82702e998d3f 27 , "XI_HTTP_ENCODE_DELETE_RANGE_DATAPOINT" // XI_HTTP_ENCODE_DELETE_RANGE_DATAPOINT
xively 0:82702e998d3f 28 , "XI_HTTP_ENCODE_UPDATE_FEED" // XI_HTTP_ENCODE_UPDATE_FEED
xively 0:82702e998d3f 29 , "XI_HTTP_CONSTRUCT_REQUEST_BUFFER_OVERRUN" // XI_HTTP_CONSTRUCT_REQUEST_BUFFER_OVERRUN
xively 0:82702e998d3f 30 , "XI_HTTP_CONSTRUCT_CONTENT_BUFFER_OVERRUN" // XI_HTTP_CONSTRUCT_CONTENT_BUFFER_OVERRUN
xively 0:82702e998d3f 31 , "XI_CSV_ENCODE_DATAPOINT_BUFFER_OVERRUN" // XI_CSV_ENCODE_DATAPOINT_BUFFER_OVERRUN
xively 0:82702e998d3f 32 , "XI_CSV_ENCODE_DATASTREAM_BUFFER_OVERRUN" // XI_CSV_ENCODE_DATASTREAM_BUFFER_OVERRUN
xively 0:82702e998d3f 33 , "XI_CSV_DECODE_FEED_PARSER_ERROR" // XI_CSV_DECODE_FEED_PARSER_ERROR
xively 0:82702e998d3f 34 , "XI_CSV_DECODE_DATAPOINT_PARSER_ERROR" // XI_CSV_DECODE_DATAPOINT_PARSER_ERROR
xively 0:82702e998d3f 35 , "XI_CSV_TIME_CONVERTION_ERROR" // XI_CSV_TIME_CONVERTION_ERROR
xively 0:82702e998d3f 36 , "XI_SOCKET_INITIALIZATION_ERROR" // XI_SOCKET_INITIALIZATION_ERROR
xively 0:82702e998d3f 37 , "XI_SOCKET_GETHOSTBYNAME_ERROR" // XI_SOCKET_GETHOSTBYNAME_ERROR
xively 0:82702e998d3f 38 , "XI_SOCKET_CONNECTION_ERROR" // XI_SOCKET_CONNECTION_ERROR
xively 0:82702e998d3f 39 , "XI_SOCKET_SHUTDOWN_ERROR" // XI_SOCKET_SHUTDOWN_ERROR
xively 0:82702e998d3f 40 , "XI_SOCKET_WRITE_ERROR" // XI_SOCKET_WRITE_ERROR
xively 0:82702e998d3f 41 , "XI_SOCKET_READ_ERROR" // XI_SOCKET_READ_ERROR
xively 0:82702e998d3f 42 , "XI_SOCKET_CLOSE_ERROR" // XI_SOCKET_CLOSE_ERROR
xively 0:82702e998d3f 43 , "XI_DATAPOINT_VALUE_BUFFER_OVERFLOW" // XI_DATAPOINT_VALUE_BUFFER_OVERFLOW
xively 0:82702e998d3f 44 };
xively 0:82702e998d3f 45
xively 0:82702e998d3f 46 xi_err_t xi_get_last_error()
xively 0:82702e998d3f 47 {
xively 0:82702e998d3f 48 xi_err_t ret = xi_err;
xively 0:82702e998d3f 49 xi_set_err( XI_NO_ERR );
xively 0:82702e998d3f 50 return ret;
xively 0:82702e998d3f 51 }
xively 0:82702e998d3f 52
xively 0:82702e998d3f 53 void xi_set_err( xi_err_t e )
xively 0:82702e998d3f 54 {
xively 0:82702e998d3f 55 xi_err = e;
xively 0:82702e998d3f 56 }
xively 0:82702e998d3f 57
xively 0:82702e998d3f 58 const char* xi_get_error_string( xi_err_t e )
xively 0:82702e998d3f 59 {
xively 0:82702e998d3f 60 return xi_err_string[ XI_CLAMP( ( short ) e, 0, XI_ERR_COUNT - 1 ) ];
xively 0:82702e998d3f 61 }