Transport utilities
The header files AP_EventParser.h and AP_EventWriter.h provide definitions for the Event Parser and Event Writer utilities. These utilities allow parsing and writing of the string form of reference types that are used by any <map type="reference"> elements in the adapters configuration file. From the header files:
AP_EventParser
/**
* Event Parser - a utility to parse events from strings
*
* An EventParser struct is created from a C string (NULL terminated). The
* type of event can then be interogated (the type member), though both
* integers and floats are labelled as floats. The number of elements is
* the number of fields in an event, entries in a sequence, or key,value
* pairs in a dictionary.
*
* Individual fields can then be retrieved, either as a basic type, or as a
* reference type - basic types retrieved as reference types have a single
* element which must be retrieved using the relevant method. getRefValue
* will return NULL if there are no more elements, and the basic type
* methods will return 0/ false/ empty string.
*
* Dictionary entries must be obtained via the getDictPair function, which
* sets two pointers to the key and value as reference types.
*
* No type checking is performed on the get methods; the behaviour when
* there is a type mismatch is undefined.
*
* There are two variants of the get methods; the Next set maintain a
* counterwhile those with an idx argument retrieve a specific element,
* which does not affect the next counter. The next counter cannot be reset.
*
* Note that the implementation is lazy - it only parses stuff if requested
* to. (though getNumberElements will parse all of that entity). Parsing is
* cached, so calling getNumberElements repeatedly is cheap, and
* getRefValue/ getString/ getDictPair will return the same objects if
* called repeatedly with the same index.
*
* Where methods return an pointer (getString and getRefValue), that
* pointer is valid until the top-level AP_EventParser is destroyed by
* AP_EventParser_dtor (no need to destroy any of its sub- objects). A
* well-formed program shouldhave a matching number of AP_EventParser_ctor
* and AP_EventParser_dtor calls, and only use string or refValue pointers
* before AP_EventParser_dtor is called.
*
*/AP_EventWriter
/**
* Event Writer - a utility to create string forms of events.
*
* A utility class that can build string forms of events, sequences and
* dictionaries.
* An AP_EventWriter object holds a number of fields, each of which may be a
* basic type (string, int, float, boolean), or a reference type (event,
* sequence, dictionary). Once the structure has been built up by adding
* values, the toString method can be called. This returns a string that
* the caller is responsible for freeing.
* Calling the destructor on an object will destroy all AP_EventWriter
* objects it refers to in a recursive manner - thus, only the top-level
* object should be destroyed, and it is not possible to share
* AP_EventWriter objects between two different containing events.
*
*/