aboutsummaryrefslogtreecommitdiffstats
path: root/VES5.0/evel/evel-library/code/evel_library/evel_internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'VES5.0/evel/evel-library/code/evel_library/evel_internal.h')
-rw-r--r--VES5.0/evel/evel-library/code/evel_library/evel_internal.h872
1 files changed, 0 insertions, 872 deletions
diff --git a/VES5.0/evel/evel-library/code/evel_library/evel_internal.h b/VES5.0/evel/evel-library/code/evel_library/evel_internal.h
deleted file mode 100644
index 2da246b3..00000000
--- a/VES5.0/evel/evel-library/code/evel_library/evel_internal.h
+++ /dev/null
@@ -1,872 +0,0 @@
-#ifndef EVEL_INTERNAL_INCLUDED
-#define EVEL_INTERNAL_INCLUDED
-
-/**************************************************************************//**
- * @file
- * EVEL internal definitions.
- *
- * These are internal definitions which need to be shared between modules
- * within the library but are not intended for external consumption.
- *
- * License
- * -------
- *
- * Copyright(c) <2016>, AT&T Intellectual Property. All other rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement: This product includes
- * software developed by the AT&T.
- * 4. Neither the name of AT&T nor the names of its contributors may be used to
- * endorse or promote products derived from this software without specific
- * prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY AT&T INTELLECTUAL PROPERTY ''AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL AT&T INTELLECTUAL PROPERTY BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-#include "evel.h"
-
-/*****************************************************************************/
-/* Define some type-safe min/max macros. */
-/*****************************************************************************/
-#define max(a,b) \
- ({ __typeof__ (a) _a = (a); \
- __typeof__ (b) _b = (b); \
- _a > _b ? _a : _b; })
-
-#define min(a,b) \
- ({ __typeof__ (a) _a = (a); \
- __typeof__ (b) _b = (b); \
- _a < _b ? _a : _b; })
-
-
-/**************************************************************************//**
- * Compile-time assertion.
- *****************************************************************************/
-#define EVEL_CT_ASSERT(X) switch (0) {case 0: case (X):;}
-
-/**************************************************************************//**
- * The Functional Role of the equipment represented by this VNF.
- *****************************************************************************/
-extern char * functional_role;
-
-/**************************************************************************//**
- * The type of equipment represented by this VNF.
- *****************************************************************************/
-extern EVEL_SOURCE_TYPES event_source_type;
-
-/**************************************************************************//**
- * A chunk of memory used in the cURL functions.
- *****************************************************************************/
-typedef struct memory_chunk {
- char * memory;
- size_t size;
-} MEMORY_CHUNK;
-
-/**************************************************************************//**
- * Global commands that may be sent to the Event Handler thread.
- *****************************************************************************/
-typedef enum {
- EVT_CMD_TERMINATE,
- EVT_CMD_MAX_COMMANDS
-} EVT_HANDLER_COMMAND;
-
-/**************************************************************************//**
- * State of the Event Handler thread.
- *****************************************************************************/
-typedef enum {
- EVT_HANDLER_UNINITIALIZED, /** The library cannot handle events. */
- EVT_HANDLER_INACTIVE, /** The event handler thread not started. */
- EVT_HANDLER_ACTIVE, /** The event handler thread is started. */
- EVT_HANDLER_REQUEST_TERMINATE, /** Initial stages of shutdown. */
- EVT_HANDLER_TERMINATING, /** The ring-buffer is being depleted. */
- EVT_HANDLER_TERMINATED, /** The library is exited. */
- EVT_HANDLER_MAX_STATES /** Maximum number of valid states. */
-} EVT_HANDLER_STATE;
-
-/**************************************************************************//**
- * Internal event.
- * Pseudo-event used for routing internal commands.
- *****************************************************************************/
-typedef struct event_internal {
- EVENT_HEADER header;
- EVT_HANDLER_COMMAND command;
-} EVENT_INTERNAL;
-
-/**************************************************************************//**
- * Suppressed NV pairs list entry.
- * JSON equivalent field: suppressedNvPairs
- *****************************************************************************/
-typedef struct evel_suppressed_nv_pairs {
-
- /***************************************************************************/
- /* Mandatory fields */
- /* JSON equivalent field: nvPairFieldName */
- /***************************************************************************/
- char * nv_pair_field_name;
-
- /***************************************************************************/
- /* Optional fields */
- /* JSON equivalent field: suppressedNvPairNames */
- /* Type of each list entry: char * */
- /***************************************************************************/
- DLIST suppressed_nv_pair_names;
-
- /***************************************************************************/
- /* Hash table containing suppressed_nv_pair_names as keys. */
- /***************************************************************************/
- struct hsearch_data * hash_nv_pair_names;
-
-} EVEL_SUPPRESSED_NV_PAIRS;
-
-/**************************************************************************//**
- * Event Throttling Specification for a domain which is in a throttled state.
- * JSON equivalent object: eventThrottlingState
- *****************************************************************************/
-typedef struct evel_throttle_spec {
-
- /***************************************************************************/
- /* List of field names to be suppressed. */
- /* JSON equivalent field: suppressedFieldNames */
- /* Type of each list entry: char * */
- /***************************************************************************/
- DLIST suppressed_field_names;
-
- /***************************************************************************/
- /* List of name-value pairs to be suppressed. */
- /* JSON equivalent field: suppressedNvPairsList */
- /* Type of each list entry: EVEL_SUPPRESSED_NV_PAIRS * */
- /***************************************************************************/
- DLIST suppressed_nv_pairs_list;
-
- /***************************************************************************/
- /* Hash table containing suppressed_nv_pair_names as keys. */
- /***************************************************************************/
- struct hsearch_data * hash_field_names;
-
- /***************************************************************************/
- /* Hash table containing nv_pair_field_name as keys, and */
- /* suppressed_nv_pairs_list as values. */
- /***************************************************************************/
- struct hsearch_data * hash_nv_pairs_list;
-
-} EVEL_THROTTLE_SPEC;
-
-/*****************************************************************************/
-/* RFC2822 format string for strftime. */
-/*****************************************************************************/
-#define EVEL_RFC2822_STRFTIME_FORMAT "%a, %d %b %Y %T %z"
-
-/*****************************************************************************/
-/* EVEL_JSON_BUFFER depth at which we throttle fields. */
-/*****************************************************************************/
-#define EVEL_THROTTLE_FIELD_DEPTH 3
-
-/**************************************************************************//**
- * Initialize the event handler.
- *
- * Primarily responsible for getting cURL ready for use.
- *
- * @param[in] event_api_url
- * The URL where the Vendor Event Listener API is expected
- * to be.
- * @param[in] throt_api_url
- * The URL where the Throttling API is expected to be.
- * @param[in] username The username for the Basic Authentication of requests.
- * @param[in] password The password for the Basic Authentication of requests.
- * @param verbosity 0 for normal operation, positive values for chattier
- * logs.
- *****************************************************************************/
-EVEL_ERR_CODES event_handler_initialize(const char * const event_api_url,
- const char * const throt_api_url,
- const char * const username,
- const char * const password,
- int verbosity);
-
-/**************************************************************************//**
- * Terminate the event handler.
- *
- * Shuts down the event handler thread in as clean a way as possible. Sets the
- * global exit flag and then signals the thread to interrupt it since it's
- * most likely waiting on the ring-buffer.
- *
- * Having achieved an orderly shutdown of the event handler thread, clean up
- * the cURL library's resources cleanly.
- *
- * @return Status code.
- * @retval ::EVEL_SUCCESS if everything OK.
- * @retval One of ::EVEL_ERR_CODES if there was a problem.
- *****************************************************************************/
-EVEL_ERR_CODES event_handler_terminate();
-
-/**************************************************************************//**
- * Run the event handler.
- *
- * Spawns the thread responsible for handling events and sending them to the
- * API.
- *
- * @return Status code.
- * @retval ::EVEL_SUCCESS if everything OK.
- * @retval One of ::EVEL_ERR_CODES if there was a problem.
- *****************************************************************************/
-EVEL_ERR_CODES event_handler_run();
-
-/**************************************************************************//**
- * Create a new internal event.
- *
- * @note The mandatory fields on the Fault must be supplied to this factory
- * function and are immutable once set. Optional fields have explicit
- * setter functions, but again values may only be set once so that the
- * Fault has immutable properties.
- * @param command The condition indicated by the event.
- * @returns pointer to the newly manufactured ::EVENT_INTERNAL. If the event
- * is not used (i.e. posted) it must be released using
- * ::evel_free_event.
- * @retval NULL Failed to create the event.
- *****************************************************************************/
-EVENT_INTERNAL * evel_new_internal_event(EVT_HANDLER_COMMAND command);
-
-/**************************************************************************//**
- * Free an internal event.
- *
- * Free off the event supplied. Will free all the contained* allocated memory.
- *
- * @note It does not free the internal event itself, since that may be part of
- * a larger structure.
- *****************************************************************************/
-void evel_free_internal_event(EVENT_INTERNAL * event);
-
-/*****************************************************************************/
-/* Structure to hold JSON buffer and associated tracking, as it is written. */
-/*****************************************************************************/
-typedef struct evel_json_buffer
-{
- char * json;
- int offset;
- int max_size;
-
- /***************************************************************************/
- /* The working throttle specification, which can be NULL. */
- /***************************************************************************/
- EVEL_THROTTLE_SPEC * throttle_spec;
-
- /***************************************************************************/
- /* Current object/list nesting depth. */
- /***************************************************************************/
- int depth;
-
- /***************************************************************************/
- /* The checkpoint. */
- /***************************************************************************/
- int checkpoint;
-
-} EVEL_JSON_BUFFER;
-
-/**************************************************************************//**
- * Encode the event as a JSON event object according to AT&T's schema.
- *
- * @param jbuf Pointer to the ::EVEL_JSON_BUFFER to encode into.
- * @param event Pointer to the ::EVENT_HEADER to encode.
- *****************************************************************************/
-void evel_json_encode_header(EVEL_JSON_BUFFER * jbuf,
- EVENT_HEADER * event);
-
-/**************************************************************************//**
- * Encode the fault in JSON according to AT&T's schema for the fault type.
- *
- * @param jbuf Pointer to the ::EVEL_JSON_BUFFER to encode into.
- * @param event Pointer to the ::EVENT_HEADER to encode.
- *****************************************************************************/
-void evel_json_encode_fault(EVEL_JSON_BUFFER * jbuf,
- EVENT_FAULT * event);
-
-/**************************************************************************//**
- * Encode the measurement as a JSON measurement.
- *
- * @param jbuf Pointer to the ::EVEL_JSON_BUFFER to encode into.
- * @param event Pointer to the ::EVENT_HEADER to encode.
- *****************************************************************************/
-void evel_json_encode_measurement(EVEL_JSON_BUFFER * jbuf,
- EVENT_MEASUREMENT * event);
-
-/**************************************************************************//**
- * Encode the Mobile Flow in JSON according to AT&T's schema for the event
- * type.
- *
- * @param jbuf Pointer to the ::EVEL_JSON_BUFFER to encode into.
- * @param event Pointer to the ::EVENT_HEADER to encode.
- *****************************************************************************/
-void evel_json_encode_mobile_flow(EVEL_JSON_BUFFER * jbuf,
- EVENT_MOBILE_FLOW * event);
-
-/**************************************************************************//**
- * Encode the report as a JSON report.
- *
- * @param jbuf Pointer to the ::EVEL_JSON_BUFFER to encode into.
- * @param event Pointer to the ::EVENT_HEADER to encode.
- *****************************************************************************/
-void evel_json_encode_report(EVEL_JSON_BUFFER * jbuf,
- EVENT_REPORT * event);
-
-/**************************************************************************//**
- * Encode the Heartbeat fields in JSON according to AT&T's schema for the
- * event type.
- *
- * @param jbuf Pointer to the ::EVEL_JSON_BUFFER to encode into.
- * @param event Pointer to the ::EVENT_HEADER to encode.
- *****************************************************************************/
-void evel_json_encode_hrtbt_field(EVEL_JSON_BUFFER * const jbuf,
- EVENT_HEARTBEAT_FIELD * const event);
-
-/**************************************************************************//**
- * Encode the Signaling in JSON according to AT&T's schema for the event type.
- *
- * @param jbuf Pointer to the ::EVEL_JSON_BUFFER to encode into.
- * @param event Pointer to the ::EVENT_HEADER to encode.
- *****************************************************************************/
-void evel_json_encode_signaling(EVEL_JSON_BUFFER * const jbuf,
- EVENT_SIGNALING * const event);
-
-/**************************************************************************//**
- * Encode the state change as a JSON state change.
- *
- * @param jbuf Pointer to the ::EVEL_JSON_BUFFER to encode into.
- * @param state_change Pointer to the ::EVENT_STATE_CHANGE to encode.
- *****************************************************************************/
-void evel_json_encode_state_change(EVEL_JSON_BUFFER * jbuf,
- EVENT_STATE_CHANGE * state_change);
-
-/**************************************************************************//**
- * Encode the Syslog in JSON according to AT&T's schema for the event type.
- *
- * @param jbuf Pointer to the ::EVEL_JSON_BUFFER to encode into.
- * @param event Pointer to the ::EVENT_HEADER to encode.
- *****************************************************************************/
-void evel_json_encode_syslog(EVEL_JSON_BUFFER * jbuf,
- EVENT_SYSLOG * event);
-
-/**************************************************************************//**
- * Encode the Other in JSON according to AT&T's schema for the event type.
- *
- * @param jbuf Pointer to the ::EVEL_JSON_BUFFER to encode into.
- * @param event Pointer to the ::EVENT_HEADER to encode.
- *****************************************************************************/
-void evel_json_encode_other(EVEL_JSON_BUFFER * jbuf,
- EVENT_OTHER * event);
-
-/**************************************************************************//**
- * Set the next event_sequence to use.
- *
- * @param sequence The next sequence number to use.
- *****************************************************************************/
-void evel_set_next_event_sequence(const int sequence);
-
-/**************************************************************************//**
- * Handle a JSON response from the listener, contained in a ::MEMORY_CHUNK.
- *
- * Tokenize the response, and decode any tokens found.
- *
- * @param chunk The memory chunk containing the response.
- * @param post The memory chunk in which to place any resulting POST.
- *****************************************************************************/
-void evel_handle_event_response(const MEMORY_CHUNK * const chunk,
- MEMORY_CHUNK * const post);
-
-/**************************************************************************//**
- * Initialize a ::EVEL_JSON_BUFFER.
- *
- * @param jbuf Pointer to the ::EVEL_JSON_BUFFER to initialise.
- * @param json Pointer to the underlying working buffer to use.
- * @param max_size Size of storage available in the JSON buffer.
- * @param throttle_spec Pointer to throttle specification. Can be NULL.
- *****************************************************************************/
-void evel_json_buffer_init(EVEL_JSON_BUFFER * jbuf,
- char * const json,
- const int max_size,
- EVEL_THROTTLE_SPEC * throttle_spec);
-
-/**************************************************************************//**
- * Encode a string key and string value to a ::EVEL_JSON_BUFFER.
- *
- * @param jbuf Pointer to working ::EVEL_JSON_BUFFER.
- * @param key Pointer to the key to encode.
- * @param option Pointer to holder of the corresponding value to encode.
- * @return true if the key, value was added, false if it was suppressed.
- *****************************************************************************/
-bool evel_enc_kv_opt_string(EVEL_JSON_BUFFER * jbuf,
- const char * const key,
- const EVEL_OPTION_STRING * const option);
-
-/**************************************************************************//**
- * Encode a string key and string value to a ::EVEL_JSON_BUFFER.
- *
- * @param jbuf Pointer to working ::EVEL_JSON_BUFFER.
- * @param key Pointer to the key to encode.
- * @param value Pointer to the corresponding value to encode.
- *****************************************************************************/
-void evel_enc_kv_string(EVEL_JSON_BUFFER * jbuf,
- const char * const key,
- const char * const value);
-
-/**************************************************************************//**
- * Encode a string key and integer value to a ::EVEL_JSON_BUFFER.
- *
- * @param jbuf Pointer to working ::EVEL_JSON_BUFFER.
- * @param key Pointer to the key to encode.
- * @param option Pointer to holder of the corresponding value to encode.
- * @return true if the key, value was added, false if it was suppressed.
- *****************************************************************************/
-bool evel_enc_kv_opt_int(EVEL_JSON_BUFFER * jbuf,
- const char * const key,
- const EVEL_OPTION_INT * const option);
-
-/**************************************************************************//**
- * Encode a string key and integer value to a ::EVEL_JSON_BUFFER.
- *
- * @param jbuf Pointer to working ::EVEL_JSON_BUFFER.
- * @param key Pointer to the key to encode.
- * @param value The corresponding value to encode.
- *****************************************************************************/
-void evel_enc_kv_int(EVEL_JSON_BUFFER * jbuf,
- const char * const key,
- const int value);
-
-/**************************************************************************//**
- * Encode a string key and double value to a ::EVEL_JSON_BUFFER.
- *
- * @param jbuf Pointer to working ::EVEL_JSON_BUFFER.
- * @param key Pointer to the key to encode.
- * @param option Pointer to holder of the corresponding value to encode.
- * @return true if the key, value was added, false if it was suppressed.
- *****************************************************************************/
-bool evel_enc_kv_opt_double(EVEL_JSON_BUFFER * jbuf,
- const char * const key,
- const EVEL_OPTION_DOUBLE * const option);
-
-/**************************************************************************//**
- * Encode a string key and double value to a ::EVEL_JSON_BUFFER.
- *
- * @param jbuf Pointer to working ::EVEL_JSON_BUFFER.
- * @param key Pointer to the key to encode.
- * @param value The corresponding value to encode.
- *****************************************************************************/
-void evel_enc_kv_double(EVEL_JSON_BUFFER * jbuf,
- const char * const key,
- const double value);
-
-/**************************************************************************//**
- * Encode a string key and unsigned long long value to a ::EVEL_JSON_BUFFER.
- *
- * @param jbuf Pointer to working ::EVEL_JSON_BUFFER.
- * @param key Pointer to the key to encode.
- * @param option Pointer to holder of the corresponding value to encode.
- * @return true if the key, value was added, false if it was suppressed.
- *****************************************************************************/
-bool evel_enc_kv_opt_ull(EVEL_JSON_BUFFER * jbuf,
- const char * const key,
- const EVEL_OPTION_ULL * const option);
-
-/**************************************************************************//**
- * Encode a string key and unsigned long long value to a ::EVEL_JSON_BUFFER.
- *
- * @param jbuf Pointer to working ::EVEL_JSON_BUFFER.
- * @param key Pointer to the key to encode.
- * @param value The corresponding value to encode.
- *****************************************************************************/
-void evel_enc_kv_ull(EVEL_JSON_BUFFER * jbuf,
- const char * const key,
- const unsigned long long value);
-
-/**************************************************************************//**
- * Encode a string key and time value to a ::EVEL_JSON_BUFFER.
- *
- * @param jbuf Pointer to working ::EVEL_JSON_BUFFER.
- * @param key Pointer to the key to encode.
- * @param option Pointer to holder of the corresponding value to encode.
- * @return true if the key, value was added, false if it was suppressed.
- *****************************************************************************/
-bool evel_enc_kv_opt_time(EVEL_JSON_BUFFER * jbuf,
- const char * const key,
- const EVEL_OPTION_TIME * const option);
-
-/**************************************************************************//**
- * Encode a string key and time value to a ::EVEL_JSON_BUFFER.
- *
- * @param jbuf Pointer to working ::EVEL_JSON_BUFFER.
- * @param key Pointer to the key to encode.
- * @param time Pointer to the time to encode.
- *****************************************************************************/
-void evel_enc_kv_time(EVEL_JSON_BUFFER * jbuf,
- const char * const key,
- const time_t * time);
-
-/**************************************************************************//**
- * Encode a key and version.
- *
- * @param jbuf Pointer to working ::EVEL_JSON_BUFFER.
- * @param key Pointer to the key to encode.
- * @param major_version The major version to encode.
- * @param minor_version The minor version to encode.
- *****************************************************************************/
-void evel_enc_version(EVEL_JSON_BUFFER * jbuf,
- const char * const key,
- const int major_version,
- const int minor_version);
-
-/**************************************************************************//**
- * Add the key and opening bracket of an optional named list to a JSON buffer.
- *
- * @param jbuf Pointer to working ::EVEL_JSON_BUFFER.
- * @param key Pointer to the key to encode.
- * @return true if the list was opened, false if it was suppressed.
- *****************************************************************************/
-bool evel_json_open_opt_named_list(EVEL_JSON_BUFFER * jbuf,
- const char * const key);
-
-/**************************************************************************//**
- * Add the key and opening bracket of a named list to a JSON buffer.
- *
- * @param jbuf Pointer to working ::EVEL_JSON_BUFFER.
- * @param key Pointer to the key to encode.
- *****************************************************************************/
-void evel_json_open_named_list(EVEL_JSON_BUFFER * jbuf,
- const char * const key);
-
-/**************************************************************************//**
- * Add the closing bracket of a list to a JSON buffer.
- *
- * @param jbuf Pointer to working ::EVEL_JSON_BUFFER.
- *****************************************************************************/
-void evel_json_close_list(EVEL_JSON_BUFFER * jbuf);
-
-/**************************************************************************//**
- * Encode a list item with format and param list to a ::EVEL_JSON_BUFFER.
- *
- * @param jbuf Pointer to working ::EVEL_JSON_BUFFER.
- * @param format Format string in standard printf format.
- * @param ... Variable parameters for format string.
- *****************************************************************************/
-void evel_enc_list_item(EVEL_JSON_BUFFER * jbuf,
- const char * const format,
- ...);
-
-/**************************************************************************//**
- * Add the opening bracket of an optional named object to a JSON buffer.
- *
- * @param jbuf Pointer to working ::EVEL_JSON_BUFFER.
- * @param key Pointer to the key to encode.
- *****************************************************************************/
-bool evel_json_open_opt_named_object(EVEL_JSON_BUFFER * jbuf,
- const char * const key);
-
-/**************************************************************************//**
- * Add the opening bracket of an object to a JSON buffer.
- *
- * @param jbuf Pointer to working ::EVEL_JSON_BUFFER.
- * @param key Pointer to the key to encode.
- * @return true if the object was opened, false if it was suppressed.
- *****************************************************************************/
-void evel_json_open_named_object(EVEL_JSON_BUFFER * jbuf,
- const char * const key);
-
-/**************************************************************************//**
- * Add the opening bracket of an object to a JSON buffer.
- *
- * @param jbuf Pointer to working ::EVEL_JSON_BUFFER.
- *****************************************************************************/
-void evel_json_open_object(EVEL_JSON_BUFFER * jbuf);
-
-/**************************************************************************//**
- * Add the closing bracket of an object to a JSON buffer.
- *
- * @param jbuf Pointer to working ::EVEL_JSON_BUFFER.
- *****************************************************************************/
-void evel_json_close_object(EVEL_JSON_BUFFER * jbuf);
-
-/**************************************************************************//**
- * Add a checkpoint - a stake in the ground to which we can rewind.
- *
- * @param jbuf Pointer to working ::EVEL_JSON_BUFFER.
- *****************************************************************************/
-void evel_json_checkpoint(EVEL_JSON_BUFFER * jbuf);
-
-/**************************************************************************//**
- * Rewind to the latest checkoint.
- *
- * @param jbuf Pointer to working ::EVEL_JSON_BUFFER.
- *****************************************************************************/
-void evel_json_rewind(EVEL_JSON_BUFFER * jbuf);
-
-/**************************************************************************//**
- * Free the underlying resources of an ::EVEL_OPTION_STRING.
- *
- * @param option Pointer to the ::EVEL_OPTION_STRING.
- *****************************************************************************/
-void evel_free_option_string(EVEL_OPTION_STRING * const option);
-
-/**************************************************************************//**
- * Initialize an ::EVEL_OPTION_STRING to a not-set state.
- *
- * @param option Pointer to the ::EVEL_OPTION_STRING.
- *****************************************************************************/
-void evel_init_option_string(EVEL_OPTION_STRING * const option);
-
-/**************************************************************************//**
- * Set the value of an ::EVEL_OPTION_STRING.
- *
- * @param option Pointer to the ::EVEL_OPTION_STRING.
- * @param value The value to set.
- * @param description Description to be used in logging.
- *****************************************************************************/
-void evel_set_option_string(EVEL_OPTION_STRING * const option,
- const char * const value,
- const char * const description);
-
-/**************************************************************************//**
- * Force the value of an ::EVEL_OPTION_STRING.
- *
- * @param option Pointer to the ::EVEL_OPTION_STRING.
- * @param value The value to set.
- *****************************************************************************/
-void evel_force_option_string(EVEL_OPTION_STRING * const option,
- const char * const value);
-
-/**************************************************************************//**
- * Initialize an ::EVEL_OPTION_INT to a not-set state.
- *
- * @param option Pointer to the ::EVEL_OPTION_INT.
- *****************************************************************************/
-void evel_init_option_int(EVEL_OPTION_INT * const option);
-
-/**************************************************************************//**
- * Force the value of an ::EVEL_OPTION_INT.
- *
- * @param option Pointer to the ::EVEL_OPTION_INT.
- * @param value The value to set.
- *****************************************************************************/
-void evel_force_option_int(EVEL_OPTION_INT * const option,
- const int value);
-
-/**************************************************************************//**
- * Set the value of an ::EVEL_OPTION_INT.
- *
- * @param option Pointer to the ::EVEL_OPTION_INT.
- * @param value The value to set.
- * @param description Description to be used in logging.
- *****************************************************************************/
-void evel_set_option_int(EVEL_OPTION_INT * const option,
- const int value,
- const char * const description);
-
-/**************************************************************************//**
- * Initialize an ::EVEL_OPTION_DOUBLE to a not-set state.
- *
- * @param option Pointer to the ::EVEL_OPTION_DOUBLE.
- *****************************************************************************/
-void evel_init_option_double(EVEL_OPTION_DOUBLE * const option);
-
-/**************************************************************************//**
- * Force the value of an ::EVEL_OPTION_DOUBLE.
- *
- * @param option Pointer to the ::EVEL_OPTION_DOUBLE.
- * @param value The value to set.
- *****************************************************************************/
-void evel_force_option_double(EVEL_OPTION_DOUBLE * const option,
- const double value);
-
-/**************************************************************************//**
- * Set the value of an ::EVEL_OPTION_DOUBLE.
- *
- * @param option Pointer to the ::EVEL_OPTION_DOUBLE.
- * @param value The value to set.
- * @param description Description to be used in logging.
- *****************************************************************************/
-void evel_set_option_double(EVEL_OPTION_DOUBLE * const option,
- const double value,
- const char * const description);
-
-/**************************************************************************//**
- * Initialize an ::EVEL_OPTION_ULL to a not-set state.
- *
- * @param option Pointer to the ::EVEL_OPTION_ULL.
- *****************************************************************************/
-void evel_init_option_ull(EVEL_OPTION_ULL * const option);
-
-/**************************************************************************//**
- * Force the value of an ::EVEL_OPTION_ULL.
- *
- * @param option Pointer to the ::EVEL_OPTION_ULL.
- * @param value The value to set.
- *****************************************************************************/
-void evel_force_option_ull(EVEL_OPTION_ULL * const option,
- const unsigned long long value);
-
-/**************************************************************************//**
- * Set the value of an ::EVEL_OPTION_ULL.
- *
- * @param option Pointer to the ::EVEL_OPTION_ULL.
- * @param value The value to set.
- * @param description Description to be used in logging.
- *****************************************************************************/
-void evel_set_option_ull(EVEL_OPTION_ULL * const option,
- const unsigned long long value,
- const char * const description);
-
-/**************************************************************************//**
- * Initialize an ::EVEL_OPTION_TIME to a not-set state.
- *
- * @param option Pointer to the ::EVEL_OPTION_TIME.
- *****************************************************************************/
-void evel_init_option_time(EVEL_OPTION_TIME * const option);
-
-/**************************************************************************//**
- * Force the value of an ::EVEL_OPTION_TIME.
- *
- * @param option Pointer to the ::EVEL_OPTION_TIME.
- * @param value The value to set.
- *****************************************************************************/
-void evel_force_option_time(EVEL_OPTION_TIME * const option,
- const time_t value);
-
-/**************************************************************************//**
- * Set the value of an ::EVEL_OPTION_TIME.
- *
- * @param option Pointer to the ::EVEL_OPTION_TIME.
- * @param value The value to set.
- * @param description Description to be used in logging.
- *****************************************************************************/
-void evel_set_option_time(EVEL_OPTION_TIME * const option,
- const time_t value,
- const char * const description);
-
-/**************************************************************************//**
- * Map an ::EVEL_COUNTER_CRITICALITIES enum value to the equivalent string.
- *
- * @param criticality The criticality to convert.
- * @returns The equivalent string.
- *****************************************************************************/
-char * evel_criticality(const EVEL_COUNTER_CRITICALITIES criticality);
-
-/**************************************************************************//**
- * Map an ::EVEL_SEVERITIES enum value to the equivalent string.
- *
- * @param severity The severity to convert.
- * @returns The equivalent string.
- *****************************************************************************/
-char * evel_severity(const EVEL_SEVERITIES severity);
-
-/**************************************************************************//**
- * Map an ::EVEL_ALERT_ACTIONS enum value to the equivalent string.
- *
- * @param alert_action The alert_action to convert.
- * @returns The equivalent string.
- *****************************************************************************/
-char * evel_alert_action(const EVEL_ALERT_ACTIONS alert_action);
-
-/**************************************************************************//**
- * Map an ::EVEL_ALERT_TYPES enum value to the equivalent string.
- *
- * @param alert_type The alert_type to convert.
- * @returns The equivalent string.
- *****************************************************************************/
-char * evel_alert_type(const EVEL_ALERT_TYPES alert_type);
-
-/**************************************************************************//**
- * Map an ::EVEL_EVENT_DOMAINS enum value to the equivalent string.
- *
- * @param domain The domain to convert.
- * @returns The equivalent string.
- *****************************************************************************/
-char * evel_event_domain(const EVEL_EVENT_DOMAINS domain);
-
-/**************************************************************************//**
- * Map an ::EVEL_EVENT_PRIORITIES enum value to the equivalent string.
- *
- * @param priority The priority to convert.
- * @returns The equivalent string.
- *****************************************************************************/
-char * evel_event_priority(const EVEL_EVENT_PRIORITIES priority);
-
-/**************************************************************************//**
- * Map an ::EVEL_SOURCE_TYPES enum value to the equivalent string.
- *
- * @param source_type The source type to convert.
- * @returns The equivalent string.
- *****************************************************************************/
-char * evel_source_type(const EVEL_SOURCE_TYPES source_type);
-
-/**************************************************************************//**
- * Map an ::EVEL_VF_STATUSES enum value to the equivalent string.
- *
- * @param vf_status The vf_status to convert.
- * @returns The equivalent string.
- *****************************************************************************/
-char * evel_vf_status(const EVEL_VF_STATUSES vf_status);
-
-/**************************************************************************//**
- * Convert a ::EVEL_ENTITY_STATE to it's string form for JSON encoding.
- *
- * @param state The entity state to encode.
- *
- * @returns the corresponding string
- *****************************************************************************/
-char * evel_entity_state(const EVEL_ENTITY_STATE state);
-
-/**************************************************************************//**
- * Convert a ::EVEL_SERVICE_ENDPOINT_DESC to string form for JSON encoding.
- *
- * @param endpoint_desc endpoint description to encode.
- *
- * @returns the corresponding string
- *****************************************************************************/
-char * evel_service_endpoint_desc(const EVEL_ENTITY_STATE endpoint_desc);
-
-
-/**************************************************************************//**
- * Initialize an ::EVEL_OPTION_INTHEADER_FIELDS to a not-set state.
- *
- * @param option Pointer to the ::EVEL_OPTION_INTHEADER_FIELDS.
- *****************************************************************************/
-void evel_init_option_intheader(EVEL_OPTION_INTHEADER_FIELDS * const option);
-/**************************************************************************//**
- * Force the value of an ::EVEL_OPTION_INTHEADER_FIELDS.
- *
- * @param option Pointer to the ::EVEL_OPTION_INTHEADER_FIELDS.
- * @param value The value to set.
- *****************************************************************************/
-void evel_force_option_intheader(EVEL_OPTION_INTHEADER_FIELDS * const option,
- const void* value);
-/**************************************************************************//**
- * Set the value of an ::EVEL_OPTION_INTHEADER_FIELDS.
- *
- * @param option Pointer to the ::EVEL_OPTION_INTHEADER_FIELDS.
- * @param value The value to set.
- * @param description Description to be used in logging.
- *****************************************************************************/
-void evel_set_option_intheader(EVEL_OPTION_INTHEADER_FIELDS * const option,
- const void * value,
- const char * const description);
-/**************************************************************************//**
- * Free the underlying resources of an ::EVEL_OPTION_INTHEADER_FIELDS.
- *
- * @param option Pointer to the ::EVEL_OPTION_INTHEADER_FIELDS.
- *****************************************************************************/
-void evel_free_option_intheader(EVEL_OPTION_INTHEADER_FIELDS * const option);
-
-#endif