Xively Official / mbed-libxively-5d6fdd4

Dependents:   xively-jumpstart-demo

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers xi_err.c Source File

xi_err.c

Go to the documentation of this file.
00001 // Copyright (c) 2003-2013, LogMeIn, Inc. All rights reserved.
00002 // This is part of Xively C library, it is under the BSD 3-Clause license.
00003 
00004 /**
00005  * \file    xi_err.c
00006  * \author  Olgierd Humenczuk
00007  * \brief   Error handling (POSIX-like) [see xi_err.h]
00008  */
00009 
00010 #include "xi_err.h"
00011 #include "xi_macros.h"
00012 
00013 static xi_err_t xi_err = XI_NO_ERR;
00014 
00015 const char* xi_err_string[ XI_ERR_COUNT ] =
00016 {
00017           "XI_NO_ERR"
00018         , "XI_OUT_OF_MEMORY"                           // XI_OUT_OF_MEMORY
00019         , "XI_HTTP_STATUS_PARSE_ERROR"                 // XI_HTTP_STATUS_PARSE_ERROR
00020         , "XI_HTTP_HEADER_PARSE_ERROR"                 // XI_HTTP_HEADER_PARSE_ERROR
00021         , "XI_HTTP_PARSE_ERROR"                        // XI_HTTP_PARSE_ERROR
00022         , "XI_HTTP_ENCODE_CREATE_DATASTREAM"           // XI_HTTP_ENCODE_CREATE_DATASTREAM
00023         , "XI_HTTP_ENCODE_UPDATE_DATASTREAM"           // XI_HTTP_ENCODE_UPDATE_DATASTREAM
00024         , "XI_HTTP_ENCODE_GET_DATASTREAM"              // XI_HTTP_ENCODE_GET_DATASTREAM
00025         , "XI_HTTP_ENCODE_DELETE_DATASTREAM"           // XI_HTTP_ENCODE_DELETE_DATASTREAM
00026         , "XI_HTTP_ENCODE_DELETE_DATAPOINT"            // XI_HTTP_ENCODE_DELETE_DATAPOINT
00027         , "XI_HTTP_ENCODE_DELETE_RANGE_DATAPOINT"      // XI_HTTP_ENCODE_DELETE_RANGE_DATAPOINT
00028         , "XI_HTTP_ENCODE_UPDATE_FEED"                 // XI_HTTP_ENCODE_UPDATE_FEED
00029         , "XI_HTTP_CONSTRUCT_REQUEST_BUFFER_OVERRUN"   // XI_HTTP_CONSTRUCT_REQUEST_BUFFER_OVERRUN
00030         , "XI_HTTP_CONSTRUCT_CONTENT_BUFFER_OVERRUN"   // XI_HTTP_CONSTRUCT_CONTENT_BUFFER_OVERRUN
00031         , "XI_CSV_ENCODE_DATAPOINT_BUFFER_OVERRUN"     // XI_CSV_ENCODE_DATAPOINT_BUFFER_OVERRUN
00032         , "XI_CSV_ENCODE_DATASTREAM_BUFFER_OVERRUN"    // XI_CSV_ENCODE_DATASTREAM_BUFFER_OVERRUN
00033         , "XI_CSV_DECODE_FEED_PARSER_ERROR"            // XI_CSV_DECODE_FEED_PARSER_ERROR
00034         , "XI_CSV_DECODE_DATAPOINT_PARSER_ERROR"       // XI_CSV_DECODE_DATAPOINT_PARSER_ERROR
00035         , "XI_CSV_TIME_CONVERTION_ERROR"               // XI_CSV_TIME_CONVERTION_ERROR
00036         , "XI_SOCKET_INITIALIZATION_ERROR"             // XI_SOCKET_INITIALIZATION_ERROR
00037         , "XI_SOCKET_GETHOSTBYNAME_ERROR"              // XI_SOCKET_GETHOSTBYNAME_ERROR
00038         , "XI_SOCKET_CONNECTION_ERROR"                 // XI_SOCKET_CONNECTION_ERROR
00039         , "XI_SOCKET_SHUTDOWN_ERROR"                   // XI_SOCKET_SHUTDOWN_ERROR
00040         , "XI_SOCKET_WRITE_ERROR"                      // XI_SOCKET_WRITE_ERROR
00041         , "XI_SOCKET_READ_ERROR"                       // XI_SOCKET_READ_ERROR
00042         , "XI_SOCKET_CLOSE_ERROR"                      // XI_SOCKET_CLOSE_ERROR
00043         , "XI_DATAPOINT_VALUE_BUFFER_OVERFLOW"         // XI_DATAPOINT_VALUE_BUFFER_OVERFLOW
00044 };
00045 
00046 xi_err_t xi_get_last_error()
00047 {
00048     xi_err_t ret = xi_err;
00049     xi_set_err( XI_NO_ERR );
00050     return ret;
00051 }
00052 
00053 void xi_set_err( xi_err_t e )
00054 {
00055     xi_err = e;
00056 }
00057 
00058 const char* xi_get_error_string( xi_err_t e )
00059 {
00060     return xi_err_string[ XI_CLAMP( ( short ) e, 0, XI_ERR_COUNT - 1 ) ];
00061 }