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.
src/libxively/xi_err.c@0:82702e998d3f, 2013-06-26 (annotated)
- 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?
User | Revision | Line number | New 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 | } |