- fixed parser to use new payload mechanisms
[strongswan.git] / Source / charon / parser.h
index fb49111..b414351 100644 (file)
 #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_*/