| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 | 
							- #ifndef dmap_parser_h
 
- #define dmap_parser_h
 
- #ifdef __cplusplus
 
- extern "C" {
 
- #endif
 
- #include <stdint.h>
 
- #include <stdlib.h>
 
- #include <sys/types.h>
 
- #define DMAP_VERSION_MAJOR 1
 
- #define DMAP_VERSION_MINOR 2
 
- #define DMAP_VERSION_PATCH 1
 
- #define DMAP_VERSION (DMAP_VERSION_MAJOR * 1000000 + \
 
-                       DMAP_VERSION_MINOR * 1000 + \
 
-                       DMAP_VERSION_PATCH)
 
- /*
 
-  * Callbacks invoked during parsing.
 
-  *
 
-  * @param ctx  The context pointer specified in the dmap_settings structure.
 
-  * @param code The content code from the message.
 
-  * @param name The name associated with the content code, if known. If there is
 
-  *             no known name this parameter contains the same value as the code
 
-  *             parameter.
 
-  */
 
- typedef void (*dmap_dict_cb)   (void *ctx, const char *code, const char *name);
 
- typedef void (*dmap_int32_cb)  (void *ctx, const char *code, const char *name, int32_t value);
 
- typedef void (*dmap_int64_cb)  (void *ctx, const char *code, const char *name, int64_t value);
 
- typedef void (*dmap_uint32_cb) (void *ctx, const char *code, const char *name, uint32_t value);
 
- typedef void (*dmap_uint64_cb) (void *ctx, const char *code, const char *name, uint64_t value);
 
- typedef void (*dmap_data_cb)   (void *ctx, const char *code, const char *name, const char *buf, size_t len);
 
- typedef struct {
 
- 	/* Callbacks to indicate the start and end of dictionary fields. */
 
- 	dmap_dict_cb   on_dict_start;
 
- 	dmap_dict_cb   on_dict_end;
 
- 	/* Callbacks for field data. */
 
- 	dmap_int32_cb  on_int32;
 
- 	dmap_int64_cb  on_int64;
 
- 	dmap_uint32_cb on_uint32;
 
- 	dmap_uint64_cb on_uint64;
 
- 	dmap_uint32_cb on_date;
 
- 	dmap_data_cb   on_string;
 
- 	dmap_data_cb   on_data;
 
- 	/** A context pointer passed to each callback function. */
 
- 	void *ctx;
 
- } dmap_settings;
 
- /**
 
-  * Returns the library version number.
 
-  *
 
-  * The version number format is (major * 1000000) + (minor * 1000) + patch.
 
-  * For example, the value for version 1.2.3 is 1002003.
 
-  */
 
- int dmap_version(void);
 
- /**
 
-  * Returns the library version as a string.
 
-  */
 
- const char *dmap_version_string(void);
 
- /**
 
-  * Returns the name associated with the provided content code, or NULL if there
 
-  * is no known name.
 
-  *
 
-  * For example, if given the code "minm" this function returns "dmap.itemname".
 
-  */
 
- const char *dmap_name_from_code(const char *code);
 
- /**
 
-  * Parses a DMAP message buffer using the provided settings.
 
-  *
 
-  * @param settings A dmap_settings structure populated with the callbacks to
 
-  *                 invoke during parsing.
 
-  * @param buf      Pointer to a DMAP message buffer. The buffer must contain a
 
-  *                 complete message.
 
-  * @param len      The length of the DMAP message buffer.
 
-  *
 
-  * @return 0 if parsing was successful, or -1 if an error occurred.
 
-  */
 
- int dmap_parse(const dmap_settings *settings, const char *buf, size_t len);
 
- #ifdef __cplusplus
 
- }
 
- #endif
 
- #endif
 
 
  |