diff options
Diffstat (limited to 'Source/charon/parser.h')
-rw-r--r-- | Source/charon/parser.h | 41 |
1 files changed, 5 insertions, 36 deletions
diff --git a/Source/charon/parser.h b/Source/charon/parser.h index fb491113d..b414351a8 100644 --- a/Source/charon/parser.h +++ b/Source/charon/parser.h @@ -27,24 +27,6 @@ #include "payloads/encodings.h" #include "payloads/payload.h" -/** - * @brief The parser context stores state information for a parsing session. - */ -typedef struct parser_context_s parser_context_t; - -struct parser_context_s { - /** - * @brief destructor of parsing_context - * - * called it when finished a parsing session - * - * @param this the parser_context_t to destroy - * @return - * - SUCCESS in any case - */ - status_t (*destroy) (parser_context_t *this); -}; - /** * @brief A parser_t object which parses payloads of specific type @@ -54,34 +36,20 @@ typedef struct parser_s parser_t; struct parser_s { /** - * @brief generates a context for parsing - * - * a context is used for a parsing session. It safes the state, such as - * parsing position, available size, ... - * - * @param parser parser Object - * @param chunk chunk of data to parse in this session - * @return the parsing_context, or NULL if failed - */ - - parser_context_t *(*create_context) (parser_t *this, chunk_t data); - - /** * @brief parses the next payload in the current context * * @warning caller is responsible for freeing allocated data_struct * * @param parser parser Object * @param payload_type payload to parse - * @param[out] data_struct pointer where parsed data will be allocated - * @param context the parsing context, describing the current parsing session + * @param[out] payload pointer where parsed payload was allocated * @return * - SUCCESSFUL if succeeded, * - NOT_SUPPORTED if payload_type is not supported * - OUT_OF_RES if out of ressources * - PARSE_ERROR if corrupted data found */ - status_t (*parse_payload) (parser_t *this, payload_type_t payload_type, void **data_struct, parser_context_t* context); + status_t (*parse_payload) (parser_t *this, payload_type_t payload_type, payload_t **payload); /** * @brief Destroys a parser object @@ -99,9 +67,10 @@ struct parser_s { * The parser uses a set of payload_infos to know how to * parse different payloads. * - * @param payload_infos list of payload_info_t + * @param chunk chunk of data to parse in this session + * @return the parser, or NULL if failed * */ -parser_t *parser_create(); +parser_t *parser_create(chunk_t data); #endif /*PARSER_H_*/ |