HomePort
httpd_header_parser.h
Go to the documentation of this file.
1 /*
2  * Copyright 2011 Aalborg University. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, are
5  * permitted provided that the following conditions are met:
6  *
7  * 1. Redistributions of source code must retain the above copyright notice, this list of
8  * conditions and the following disclaimer.
9  *
10  * 2. Redistributions in binary form must reproduce the above copyright notice, this list
11  * of conditions and the following disclaimer in the documentation and/or other materials
12  * provided with the distribution.
13  *
14  * THIS SOFTWARE IS PROVIDED BY Aalborg University ''AS IS'' AND ANY EXPRESS OR IMPLIED
15  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
16  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Aalborg University OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
19  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
20  * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
21  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
22  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  *
24  * The views and conclusions contained in the software and documentation are those of the
25  * authors and should not be interpreted as representing official policies, either expressed
26  */
27 
28 #ifndef HOMEPORT_HTTPD_HEADER_PARSER_H
29 #define HOMEPORT_HTTPD_HEADER_PARSER_H
30 
31 #include "hpd/hpd_types.h"
32 
33 typedef hpd_error_t (*hp_string_cb)(void* data, const char* field, size_t field_length, const char* value, size_t value_length);
34 
35 struct hp;
36 
37 struct hp_settings {
39  void* data;
40 };
41 
42 #define HP_SETTINGS_DEFAULT {\
43  .on_field_value_pair = NULL, \
44  .data = NULL }
45 
46 hpd_error_t hp_create(struct hp **instance, struct hp_settings *settings, const hpd_module_t *context);
47 hpd_error_t hp_destroy(struct hp*);
48 
49 hpd_error_t hp_on_header_field(struct hp *instance, const char *field_chunk, size_t length);
50 hpd_error_t hp_on_header_value(struct hp *instance, const char *value_chunk, size_t length);
52 
53 #endif
hpd_error_t hp_on_header_complete(struct hp *instance)
struct up * instance
data field
data value
hpd_error_t hp_create(struct hp **instance, struct hp_settings *settings, const hpd_module_t *context)
struct hp_settings settings
hpd_error_t hp_on_header_field(struct hp *instance, const char *field_chunk, size_t length)
hp_string_cb on_field_value_pair
enum hpd_error hpd_error_t
Definition: hpd_types.h:167
hpd_error_t hp_on_header_value(struct hp *instance, const char *value_chunk, size_t length)
struct data data
hpd_error_t(* hp_string_cb)(void *data, const char *field, size_t field_length, const char *value, size_t value_length)
hpd_error_t hp_destroy(struct hp *)