tinyows 1.2.2
ows_api.h
Go to the documentation of this file.
1/*
2 Copyright (c) <2007-2012> <Barbara Philippot - Olivier Courtin>
3
4 Permission is hereby granted, free of charge, to any person obtaining a copy
5 of this software and associated documentation files (the "Software"), to deal
6 in the Software without restriction, including without limitation the rights
7 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 copies of the Software, and to permit persons to whom the Software is
9 furnished to do so, subject to the following conditions:
10
11 The above copyright notice and this permission notice shall be included in
12 all copies or substantial portions of the Software.
13
14 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
20 IN THE SOFTWARE.
21*/
22
23
24void array_add (array * a, buffer * key, buffer * value);
25void array_flush (const array * a, FILE * output);
26void array_free (array * a);
27buffer *array_get (const array * a, const char *key);
28buffer *array_get_key(const array * a, const char *value);
30bool array_is_key (const array * a, const char *key);
31bool array_is_value (const array * a, const char *value);
33void alist_free(alist * al);
34void alist_add(alist * al, buffer * key, buffer * value);
35bool alist_is_key(const alist * al, const char *key);
36list *alist_get(const alist * al, const char *key);
37void alist_flush(const alist * al, FILE * output);
38void buffer_add (buffer * buf, char c);
39void buffer_add_double (buffer * buf, double f);
40void buffer_add_head (buffer * buf, char c);
41void buffer_add_head_str (buffer * buf, char *str);
42void buffer_add_int (buffer * buf, int i);
43void buffer_add_str (buffer * buf, const char *str);
44void buffer_add_nstr (buffer * buf, const char *str, size_t n);
45buffer *buffer_from_str(const char *str);
46bool buffer_cmp (const buffer * buf, const char *str);
47bool buffer_ncmp(const buffer * buf, const char *str, size_t n);
48bool buffer_case_cmp (const buffer * buf, const char *str);
49void buffer_copy (buffer * dest, const buffer * src);
51void buffer_empty (buffer * buf);
52void buffer_flush (buffer * buf, FILE * output);
53void buffer_free (buffer * buf);
54buffer *buffer_ftoa (double f);
56buffer *buffer_itoa (int i);
57void buffer_pop (buffer * buf, size_t len);
58buffer *buffer_replace (buffer * buf, char *before, char *after);
59void buffer_shift (buffer * buf, size_t len);
60long int buffer_chr(const buffer * buf, char c);
61long int buffer_rchr(const buffer * buf, char c);
63buffer *buffer_encode_json_str(const char *str);
64buffer *cgi_add_xml_into_buffer (buffer * element, xmlNodePtr n);
65char *cgi_getback_query (ows * o);
66bool cgi_method_get ();
67bool cgi_method_post ();
68array *cgi_parse_kvp (ows * o, char *query);
69array *cgi_parse_xml (ows * o, char *query);
70bool check_regexp (const char *str_request, const char *str_regex);
71buffer *fe_comparison_op (ows * o, buffer * typename, filter_encoding * fe, xmlNodePtr n);
72buffer *fe_envelope (ows * o, buffer * typename, filter_encoding * fe, buffer *envelope, xmlNodePtr n);
73void fe_error (ows * o, filter_encoding * fe);
74buffer *fe_expression (ows * o, buffer * typename, filter_encoding * fe, buffer * sql, xmlNodePtr n);
75buffer *fe_feature_id (ows * o, buffer * typename, filter_encoding * fe, xmlNodePtr n);
76filter_encoding *fe_filter (ows * o, filter_encoding * fe, buffer * typename, buffer * xmlchar);
77void fe_filter_capabilities_100 (const ows * o);
78void fe_filter_capabilities_110 (const ows * o);
79buffer *fe_function (ows * o, buffer * typename, filter_encoding * fe, buffer * sql, xmlNodePtr n);
80bool fe_is_comparison_op (char *name);
81bool fe_is_logical_op (char *name);
82bool fe_is_spatial_op (char *name);
83buffer *fe_kvp_bbox (ows * o, wfs_request * wr, buffer * layer_name, ows_bbox * bbox);
84buffer *fe_kvp_featureid (ows * o, wfs_request * wr, buffer * layer_name, list * fid);
85buffer *fe_logical_op (ows * o, buffer * typename, filter_encoding * fe, xmlNodePtr n);
86void fe_node_flush (xmlNodePtr node, FILE * output);
87buffer *fe_property_name (ows * o, buffer * typename, filter_encoding * fe, buffer * sql, xmlNodePtr n, bool check_geom_column, bool mandatory);
88buffer *fe_spatial_op (ows * o, buffer * typename, filter_encoding * fe, xmlNodePtr n);
89buffer *fe_xpath_property_name (ows * o, buffer * typename, buffer * property);
91void filter_encoding_flush (filter_encoding * fe, FILE * output);
94bool in_list (const list * l, const buffer * value);
95bool in_list_str (const list * l, const char * value);
96void list_add (list * l, buffer * value);
97void list_add_by_copy (list * l, buffer * value);
98void list_add_list (list * l, list * l_to_add);
99void list_add_str (list * l, char *value);
100void list_pop(list *l);
101list *list_split (char separator, const buffer * value, bool reverse);
102list *list_explode (char separator, const buffer * value);
103list *list_explode_start_end (char separator_start, char separator_end, buffer * value);
104list *list_explode_str (char separator, const char *value);
105list *list_explode_str_trim(char separator, const char *value);
106void list_implode(buffer * buf, const char * separator, const list * l);
107void list_flush (const list * l, FILE * output);
108void list_free (list * l);
109list *list_init ();
110void list_node_free (list * l, list_node * ln);
112int main (int argc, char *argv[]);
113void mlist_add (mlist * ml, list * value);
114mlist *mlist_explode (char separator_start, char separator_end, buffer * value);
115void mlist_flush (const mlist * ml, FILE * output);
116void mlist_free (mlist * ml);
117mlist *mlist_init ();
118void mlist_node_free (mlist * ml, mlist_node * mln);
120ows_bbox *ows_bbox_boundaries (ows * o, list * from, list * where, ows_srs * srs);
121void ows_bbox_flush (const ows_bbox * b, FILE * output);
122void ows_bbox_free (ows_bbox * b);
124bool ows_bbox_set (ows * o, ows_bbox * b, double xmin, double ymin, double xmax, double ymax, int srid);
125bool ows_bbox_set_from_geobbox (ows * o, ows_bbox * bb, ows_geobbox * geo);
126bool ows_bbox_set_from_str (ows * o, ows_bbox * bb, const char *str, int srid, bool honours_authority_axis_order_if_no_explicit_srs);
127bool ows_bbox_transform (ows * o, ows_bbox * bb, int srid);
128void ows_bbox_to_query(ows * o, ows_bbox *bbox, buffer *query);
129void ows_contact_flush (ows_contact * contact, FILE * output);
130void ows_contact_free (ows_contact * contact);
132void ows_error (ows * o, enum ows_error_code code, char *message, char *locator);
133void ows_flush (ows * o, FILE * output);
134void ows_free (ows * o);
135ows_geobbox *ows_geobbox_compute (ows * o, buffer * layer_name);
136void ows_geobbox_flush (const ows_geobbox * g, FILE * output);
140bool ows_geobbox_set (ows * o, ows_geobbox * g, double west, double east, double south, double north);
143void ows_get_capabilities_dcpt (const ows * o, const char * req);
144void ows_layer_flush (ows_layer * l, FILE * output);
145void ows_layer_free (ows_layer * l);
146bool ows_layer_in_list (const ows_layer_list * ll, buffer * name);
147buffer *ows_layer_no_uri_to_uri(const ows_layer_list * ll, buffer * name_no_uri);
150list *ows_layer_list_by_ns_prefix (ows_layer_list * ll, list * layer_name_prefix, buffer * ns_prefix);
152void ows_layer_list_flush (ows_layer_list * ll, FILE * output);
154bool ows_layer_list_in_list (const ows_layer_list * ll, const list * l);
157buffer *ows_layer_no_uri(ows_layer_list * ll, buffer * layer_name);
159buffer *ows_layer_prefix_to_uri(ows_layer_list * ll, buffer * layer_name_prefix);
161list *ows_layer_list_prefix_to_uri(ows_layer_list * ll, list * layer_name_prefix);
162list *ows_layer_list_ns_prefix (ows_layer_list * ll, list * layer_name_prefix);
165bool ows_layer_match_table (const ows * o, const buffer * name);
168buffer *ows_layer_ns_prefix (ows_layer_list * ll, buffer * layer_name_prefix);
169bool ows_layer_retrievable (const ows_layer_list * ll, const buffer * name);
170buffer *ows_layer_ns_uri (ows_layer_list * ll, buffer * ns_prefix);
171bool ows_layer_writable (const ows_layer_list * ll, const buffer * name);
172void ows_metadata_fill (ows * o, array * cgi);
173void ows_metadata_flush (ows_meta * metadata, FILE * output);
174void ows_metadata_free (ows_meta * metadata);
176void ows_parse_config (ows * o, const char *filename);
178PGresult * ows_psql_exec(ows *o, const char *sql);
179buffer *ows_psql_column_name (ows * o, buffer * layer_name, int number);
180array *ows_psql_describe_table (ows * o, buffer * layer_name);
181list *ows_psql_geometry_column (ows * o, buffer * layer_name);
182buffer *ows_psql_schema_name(ows * o, buffer * layer_name);
183buffer *ows_psql_table_name(ows * o, buffer * layer_name);
184buffer *ows_psql_id_column (ows * o, buffer * layer_name);
185buffer *ows_psql_column_constraint_name(ows * o, buffer * column_name, buffer * table_name);
186list *ows_psql_column_check_constraint(ows * o, buffer * constraint_name);
187buffer *ows_psql_column_character_maximum_length(ows * o, buffer * column_name, buffer * table_name);
188bool ows_psql_is_geometry_column (ows * o, buffer * layer_name, buffer * column);
189bool ows_psql_is_geometry_valid(ows * o, buffer * geom);
190list *ows_psql_not_null_properties (ows * o, buffer * layer_name);
191buffer *ows_psql_timestamp_to_xml_time (char *timestamp);
192char *ows_psql_to_xsd (buffer * type, enum wfs_format format);
193bool ows_psql_is_numeric(buffer * type);
194buffer *ows_psql_type (ows * o, buffer * layer_name, buffer * property);
195buffer *ows_psql_generate_id (ows * o, buffer * layer_name);
196int ows_psql_number_features(ows * o, list * from, list * where);
197buffer * ows_psql_gml_to_sql(ows * o, xmlNodePtr n, const ows_srs* parent_srs);
198char *ows_psql_escape_string(ows *o, const char *content);
199int ows_psql_geometry_srid(ows *o, const char *geom);
200void ows_request_check (ows * o, ows_request * or, const array * cgi, const char *query);
201void ows_request_flush (ows_request * or, FILE * output);
202void ows_request_free (ows_request * or);
204int ows_schema_validation (ows * o, buffer * xml_schema, buffer * xml, bool schema_is_file, enum ows_schema_type schema_type);
205void ows_service_identification (const ows * o);
206void ows_service_metadata (const ows * o);
207void ows_service_provider (const ows * o);
208void ows_srs_flush (ows_srs * c, FILE * output);
209void ows_srs_free (ows_srs * c);
210buffer *ows_srs_get_from_a_srid (ows * o, int srid);
212int ows_srs_get_srid_from_layer (ows * o, buffer * layer_name);
214bool ows_srs_meter_units (ows * o, buffer * layer_name);
216bool ows_srs_set_geobbox(ows * o, ows_srs * s);
217bool ows_srs_set (ows * o, ows_srs * c, const buffer * auth_name, int auth_srid);
218bool ows_srs_set_from_srid (ows * o, ows_srs * s, int srid);
219bool ows_srs_set_from_srsname(ows * o, ows_srs * s, const char *srsname);
220void ows_usage (ows * o);
221void ows_version_flush (ows_version * v, FILE * output);
224bool ows_version_set_str(ows_version * v, char *str);
227void ows_version_set (ows_version * v, int major, int minor, int release);
228void wfs (ows * o, wfs_request * wf);
229void wfs_delete (ows * o, wfs_request * wr);
231buffer * wfs_generate_schema(ows * o, ows_version * version);
232void wfs_error (ows * o, wfs_request * wf, enum wfs_error_code code, char *message, char *locator);
233void wfs_get_capabilities (ows * o, wfs_request * wr);
234void wfs_get_feature (ows * o, wfs_request * wr);
235void wfs_gml_feature_member (ows * o, wfs_request * wr, buffer * layer_name, list * properties, PGresult * res);
236void wfs_parse_operation (ows * o, wfs_request * wr, buffer * op);
237void wfs_request_check (ows * o, wfs_request * wr, const array * cgi);
238void wfs_request_flush (wfs_request * wr, FILE * output);
239buffer *wfs_request_remove_prop_ns_prefix(ows * o, buffer * prop, list * layer_name);
240void wfs_request_free (wfs_request * wr);
244void ows_layer_storage_flush(ows_layer_storage * storage, FILE * output);
246ows_layer * ows_layer_get(const ows_layer_list * ll, const buffer * name);
247void ows_layers_storage_flush(ows * o, FILE * output);
248void ows_log(ows *o, int log_level, const char *log);
249void ows_parse_config_mapfile(ows *o, const char *filename);
250bool ows_libxml_check_namespace(ows *o, xmlNodePtr n);
buffer * buffer_encode_xml_entities_str(const char *str)
Definition buffer.c:501
void ows_contact_free(ows_contact *contact)
void wfs_get_capabilities(ows *o, wfs_request *wr)
list * ows_psql_not_null_properties(ows *o, buffer *layer_name)
Definition ows_psql.c:185
void ows_bbox_free(ows_bbox *b)
Definition ows_bbox.c:58
void ows_log(ows *o, int log_level, const char *log)
Definition ows.c:235
int ows_psql_geometry_srid(ows *o, const char *geom)
Definition ows_psql.c:861
ows_geobbox * ows_geobbox_compute(ows *o, buffer *layer_name)
void ows_free(ows *o)
Definition ows.c:205
void alist_free(alist *al)
Definition alist.c:56
void buffer_add(buffer *buf, char c)
Definition buffer.c:123
int ows_version_get(ows_version *v)
int main(int argc, char *argv[])
Definition ows.c:339
bool ows_layer_in_list(const ows_layer_list *ll, buffer *name)
Definition ows_layer.c:193
void ows_version_flush(ows_version *v, FILE *output)
buffer * ows_psql_column_name(ows *o, buffer *layer_name, int number)
Definition ows_psql.c:299
void list_add_by_copy(list *l, buffer *value)
Definition list.c:187
void buffer_empty(buffer *buf)
Definition buffer.c:100
void ows_metadata_fill(ows *o, array *cgi)
ows_version * ows_psql_postgis_version(ows *o)
Definition ows_psql.c:393
void ows_layer_list_flush(ows_layer_list *ll, FILE *output)
filter_encoding * fe_filter(ows *o, filter_encoding *fe, buffer *typename, buffer *xmlchar)
Definition fe_filter.c:353
buffer * wfs_request_remove_prop_ns_prefix(ows *o, buffer *prop, list *layer_name)
void mlist_add(mlist *ml, list *value)
Definition mlist.c:71
bool alist_is_key(const alist *al, const char *key)
Definition alist.c:116
buffer * fill_fe_error(ows *o, filter_encoding *fe)
Definition fe_error.c:79
ows_bbox * ows_bbox_init()
Definition ows_bbox.c:37
buffer * ows_psql_column_constraint_name(ows *o, buffer *column_name, buffer *table_name)
Definition ows_psql.c:206
PGresult * ows_psql_exec(ows *o, const char *sql)
Definition ows_psql.c:56
buffer * fe_function(ows *o, buffer *typename, filter_encoding *fe, buffer *sql, xmlNodePtr n)
buffer * buffer_encode_json_str(const char *str)
Definition buffer.c:544
void fe_filter_capabilities_110(const ows *o)
list * list_explode_start_end(char separator_start, char separator_end, buffer *value)
Definition list.c:366
bool ows_geobbox_set_from_bbox(ows *o, ows_geobbox *g, ows_bbox *bb)
buffer * ows_psql_gml_to_sql(ows *o, xmlNodePtr n, const ows_srs *parent_srs)
Definition ows_psql.c:734
void list_implode(buffer *buf, const char *separator, const list *l)
Definition list.c:461
void buffer_copy(buffer *dest, const buffer *src)
Definition buffer.c:350
bool array_is_value(const array *a, const char *value)
Definition array.c:125
bool ows_bbox_set_from_geobbox(ows *o, ows_bbox *bb, ows_geobbox *geo)
Definition ows_bbox.c:258
void fe_error(ows *o, filter_encoding *fe)
Definition fe_error.c:34
ows_bbox * ows_bbox_boundaries(ows *o, list *from, list *where, ows_srs *srs)
Definition ows_bbox.c:154
array * cgi_parse_xml(ows *o, char *query)
buffer * wfs_generate_schema(ows *o, ows_version *version)
bool ows_srs_meter_units(ows *o, buffer *layer_name)
Definition ows_srs.c:361
buffer * ows_psql_column_character_maximum_length(ows *o, buffer *column_name, buffer *table_name)
Definition ows_psql.c:335
filter_encoding * filter_encoding_init()
Definition fe_filter.c:35
ows_srs * ows_srs_init()
Definition ows_srs.c:37
bool buffer_cmp(const buffer *buf, const char *str)
Definition buffer.c:290
buffer * array_get_key(const array *a, const char *value)
Definition array.c:170
list * ows_psql_geometry_column(ows *o, buffer *layer_name)
Definition ows_psql.c:76
buffer * fe_xpath_property_name(ows *o, buffer *typename, buffer *property)
Definition fe_filter.c:186
ows_layer_node * ows_layer_node_init()
Definition ows_layer.c:461
array * cgi_parse_kvp(ows *o, char *query)
bool in_list(const list *l, const buffer *value)
Definition list.c:259
buffer * fe_envelope(ows *o, buffer *typename, filter_encoding *fe, buffer *envelope, xmlNodePtr n)
bool cgi_method_get()
Definition cgi_request.c:42
buffer * ows_psql_type(ows *o, buffer *layer_name, buffer *property)
Definition ows_psql.c:513
void list_free(list *l)
Definition list.c:54
bool fe_is_comparison_op(char *name)
ows_layer * ows_layer_init()
Definition ows_layer.c:516
bool ows_psql_is_geometry_valid(ows *o, buffer *geom)
Definition ows_psql.c:136
bool ows_layer_list_writable(const ows_layer_list *ll)
Definition ows_layer.c:159
void wfs_request_free(wfs_request *wr)
bool cgi_method_post()
Definition cgi_request.c:55
bool ows_version_set_str(ows_version *v, char *str)
Definition ows_version.c:61
void buffer_add_str(buffer *buf, const char *str)
Definition buffer.c:254
void list_flush(const list *l, FILE *output)
bool ows_version_check(ows_version *v)
void ows_layer_storage_flush(ows_layer_storage *storage, FILE *output)
list * list_init()
Definition list.c:36
void ows_usage(ows *o)
Definition ows.c:259
buffer * fe_expression(ows *o, buffer *typename, filter_encoding *fe, buffer *sql, xmlNodePtr n)
Definition fe_filter.c:119
void ows_flush(ows *o, FILE *output)
void ows_layer_list_free(ows_layer_list *ll)
Definition ows_layer.c:52
void buffer_flush(buffer *buf, FILE *output)
Definition buffer.c:112
void list_node_free(list *l, list_node *ln)
Definition list.c:237
buffer * fe_logical_op(ows *o, buffer *typename, filter_encoding *fe, xmlNodePtr n)
void wfs_delete(ows *o, wfs_request *wr)
char * cgi_getback_query(ows *o)
Definition cgi_request.c:68
bool buffer_case_cmp(const buffer *buf, const char *str)
Definition buffer.c:330
long int buffer_rchr(const buffer *buf, char c)
Definition buffer.c:475
void ows_service_metadata(const ows *o)
ows_meta * ows_metadata_init()
void wfs_request_check(ows *o, wfs_request *wr, const array *cgi)
long int buffer_chr(const buffer *buf, char c)
Definition buffer.c:456
void ows_layer_free(ows_layer *l)
Definition ows_layer.c:549
bool ows_srs_set_from_srsname(ows *o, ows_srs *s, const char *srsname)
Definition ows_srs.c:303
bool ows_layer_match_table(const ows *o, const buffer *name)
Definition ows_layer.c:84
void ows_bbox_flush(const ows_bbox *b, FILE *output)
bool fe_is_spatial_op(char *name)
bool fe_is_logical_op(char *name)
buffer * cgi_add_xml_into_buffer(buffer *element, xmlNodePtr n)
void buffer_add_double(buffer *buf, double f)
Definition buffer.c:158
list * ows_srs_get_from_srid(ows *o, list *l)
Definition ows_srs.c:398
bool ows_srs_set_from_srid(ows *o, ows_srs *s, int srid)
Definition ows_srs.c:251
char * ows_psql_escape_string(ows *o, const char *content)
Definition ows_psql.c:840
array * ows_layer_list_namespaces(ows_layer_list *ll)
Definition ows_layer.c:228
bool ows_bbox_transform(ows *o, ows_bbox *bb, int srid)
Definition ows_bbox.c:225
void ows_bbox_to_query(ows *o, ows_bbox *bbox, buffer *query)
Definition ows_bbox.c:285
void buffer_add_nstr(buffer *buf, const char *str, size_t n)
Definition buffer.c:271
void wfs_describe_feature_type(ows *o, wfs_request *wr)
buffer * array_get(const array *a, const char *key)
Definition array.c:147
void alist_flush(const alist *al, FILE *output)
wfs_request * wfs_request_init()
Definition wfs_request.c:36
buffer * ows_psql_id_column(ows *o, buffer *layer_name)
Definition ows_psql.c:36
void wfs_error(ows *o, wfs_request *wf, enum wfs_error_code code, char *message, char *locator)
Definition wfs_error.c:124
void ows_error(ows *o, enum ows_error_code code, char *message, char *locator)
Definition ows_error.c:71
bool in_list_str(const list *l, const char *value)
Definition list.c:278
void array_free(array *a)
Definition array.c:53
list_node * list_node_init()
Definition list.c:219
buffer * ows_layer_ns_prefix_to_ns_uri(ows_layer_list *ll, buffer *ns_prefix)
Definition ows_layer.c:359
bool ows_bbox_set_from_str(ows *o, ows_bbox *bb, const char *str, int srid, bool honours_authority_axis_order_if_no_explicit_srs)
Definition ows_bbox.c:96
bool buffer_ncmp(const buffer *buf, const char *str, size_t n)
Definition buffer.c:310
void list_add(list *l, buffer *value)
Definition list.c:71
mlist * mlist_explode(char separator_start, char separator_end, buffer *value)
Definition mlist.c:144
void list_add_str(list *l, char *value)
Definition list.c:102
list * list_explode_str_trim(char separator, const char *value)
Definition list.c:430
void wfs_parse_operation(ows *o, wfs_request *wr, buffer *op)
void ows_geobbox_free(ows_geobbox *g)
Definition ows_geobbox.c:69
void filter_encoding_free(filter_encoding *fe)
Definition fe_filter.c:54
void buffer_add_head_str(buffer *buf, char *str)
Definition buffer.c:239
ows_version * ows_version_init()
Definition ows_version.c:33
buffer * buffer_replace(buffer *buf, char *before, char *after)
Definition buffer.c:412
bool ows_layer_list_retrievable(const ows_layer_list *ll)
Definition ows_layer.c:125
bool ows_libxml_check_namespace(ows *o, xmlNodePtr n)
Definition ows_libxml.c:67
ows_layer_list * ows_layer_list_init()
Definition ows_layer.c:36
mlist * mlist_init()
Definition mlist.c:36
buffer * ows_layer_no_uri_to_uri(const ows_layer_list *ll, buffer *name_no_uri)
Definition ows_layer.c:392
bool ows_bbox_set(ows *o, ows_bbox *b, double xmin, double ymin, double xmax, double ymax, int srid)
Definition ows_bbox.c:71
void ows_parse_config_mapfile(ows *o, const char *filename)
list * alist_get(const alist *al, const char *key)
Definition alist.c:138
void array_flush(const array *a, FILE *output)
bool array_is_key(const array *a, const char *key)
Definition array.c:105
void buffer_add_head(buffer *buf, char c)
Definition buffer.c:217
void ows_srs_flush(ows_srs *c, FILE *output)
list * ows_psql_column_check_constraint(ows *o, buffer *constraint_name)
Definition ows_psql.c:244
bool ows_layer_retrievable(const ows_layer_list *ll, const buffer *name)
Definition ows_layer.c:141
list * ows_layer_list_ns_prefix(ows_layer_list *ll, list *layer_name_prefix)
Definition ows_layer.c:281
ows_layer_storage * ows_layer_storage_init()
Definition ows_storage.c:31
array * ows_psql_describe_table(ows *o, buffer *layer_name)
Definition ows_psql.c:373
buffer * buffer_from_str(const char *str)
Definition buffer.c:202
void wfs_gml_feature_member(ows *o, wfs_request *wr, buffer *layer_name, list *properties, PGresult *res)
void buffer_free(buffer *buf)
Definition buffer.c:83
buffer * fe_comparison_op(ows *o, buffer *typename, filter_encoding *fe, xmlNodePtr n)
list * ows_layer_list_having_storage(const ows_layer_list *ll)
Definition ows_layer.c:105
buffer * ows_layer_uri_to_prefix(ows_layer_list *ll, buffer *layer_name)
Definition ows_layer.c:327
buffer * buffer_clone(buffer *buf)
Definition buffer.c:362
buffer * ows_psql_timestamp_to_xml_time(char *timestamp)
Definition ows_psql.c:489
void buffer_add_int(buffer *buf, int i)
Definition buffer.c:173
void fe_filter_capabilities_100(const ows *o)
void mlist_flush(const mlist *ml, FILE *output)
void wfs_get_feature(ows *o, wfs_request *wr)
void buffer_shift(buffer *buf, size_t len)
Definition buffer.c:392
buffer * ows_layer_ns_prefix(ows_layer_list *ll, buffer *layer_name_prefix)
Definition ows_layer.c:408
list * list_split(char separator, const buffer *value, bool reverse)
Definition list.c:324
bool ows_psql_is_numeric(buffer *type)
Definition ows_psql.c:426
void ows_contact_flush(ows_contact *contact, FILE *output)
char * ows_psql_to_xsd(buffer *type, enum wfs_format format)
Definition ows_psql.c:445
void alist_add(alist *al, buffer *key, buffer *value)
Definition alist.c:83
buffer * ows_layer_no_uri(ows_layer_list *ll, buffer *layer_name)
Definition ows_layer.c:376
ows_layer * ows_layer_get(const ows_layer_list *ll, const buffer *name)
Definition ows_layer.c:66
void ows_request_check(ows *o, ows_request *or, const array *cgi, const char *query)
ows_geobbox * ows_geobbox_copy(ows_geobbox *g)
Definition ows_geobbox.c:56
int ows_srs_get_srid_from_layer(ows *o, buffer *layer_name)
Definition ows_srs.c:380
bool ows_psql_is_geometry_column(ows *o, buffer *layer_name, buffer *column)
Definition ows_psql.c:164
buffer * buffer_itoa(int i)
Definition buffer.c:188
void list_add_list(list *l, list *l_to_add)
Definition list.c:152
ows_geobbox * ows_geobbox_init()
Definition ows_geobbox.c:37
void list_pop(list *l)
Definition list.c:129
ows_contact * ows_contact_init()
void ows_layer_list_add(ows_layer_list *ll, ows_layer *l)
Definition ows_layer.c:440
void ows_layers_storage_flush(ows *o, FILE *output)
mlist_node * mlist_node_init()
Definition mlist.c:100
void ows_service_identification(const ows *o)
void ows_layer_storage_free(ows_layer_storage *storage)
Definition ows_storage.c:54
list * ows_layer_list_prefix_to_uri(ows_layer_list *ll, list *layer_name_prefix)
Definition ows_layer.c:308
bool ows_srs_set_geobbox(ows *o, ows_srs *s)
Definition ows_srs.c:232
list * ows_layer_list_by_ns_prefix(ows_layer_list *ll, list *layer_name_prefix, buffer *ns_prefix)
Definition ows_layer.c:255
buffer * ows_layer_ns_uri(ows_layer_list *ll, buffer *ns_prefix)
Definition ows_layer.c:424
void fe_node_flush(xmlNodePtr node, FILE *output)
void ows_layers_storage_fill(ows *o)
buffer * ows_psql_generate_id(ows *o, buffer *layer_name)
Definition ows_psql.c:535
void ows_get_capabilities_dcpt(const ows *o, const char *req)
bool ows_geobbox_set(ows *o, ows_geobbox *g, double west, double east, double south, double north)
Definition ows_geobbox.c:80
buffer * buffer_ftoa(double f)
Definition buffer.c:138
ows_geobbox * ows_geobbox_set_from_str(ows *o, ows_geobbox *g, char *str)
void ows_geobbox_flush(const ows_geobbox *g, FILE *output)
void wfs_request_flush(wfs_request *wr, FILE *output)
void ows_srs_free(ows_srs *c)
Definition ows_srs.c:76
alist * alist_init()
Definition alist.c:39
buffer * ows_srs_get_from_a_srid(ows *o, int srid)
Definition ows_srs.c:423
void ows_layer_node_free(ows_layer_list *ll, ows_layer_node *ln)
Definition ows_layer.c:477
buffer * fe_spatial_op(ows *o, buffer *typename, filter_encoding *fe, xmlNodePtr n)
void ows_version_set(ows_version *v, int major, int minor, int release)
Definition ows_version.c:51
void ows_metadata_free(ows_meta *metadata)
void buffer_pop(buffer *buf, size_t len)
Definition buffer.c:379
int ows_psql_number_features(ows *o, list *from, list *where)
Definition ows_psql.c:641
void ows_parse_config(ows *o, const char *filename)
Definition ows_config.c:702
buffer * fe_feature_id(ows *o, buffer *typename, filter_encoding *fe, xmlNodePtr n)
Definition fe_filter.c:264
buffer * buffer_init()
Definition buffer.c:61
bool ows_srs_set(ows *o, ows_srs *c, const buffer *auth_name, int auth_srid)
Definition ows_srs.c:185
void ows_request_free(ows_request *or)
Definition ows_request.c:57
void array_add(array *a, buffer *key, buffer *value)
Definition array.c:80
buffer * ows_psql_table_name(ows *o, buffer *layer_name)
Definition ows_psql.c:116
void ows_layer_flush(ows_layer *l, FILE *output)
bool ows_layer_writable(const ows_layer_list *ll, const buffer *name)
Definition ows_layer.c:175
void ows_metadata_flush(ows_meta *metadata, FILE *output)
ows_request * ows_request_init()
Definition ows_request.c:39
buffer * fe_property_name(ows *o, buffer *typename, filter_encoding *fe, buffer *sql, xmlNodePtr n, bool check_geom_column, bool mandatory)
Definition fe_filter.c:210
list * list_explode(char separator, const buffer *value)
Definition list.c:296
void ows_request_flush(ows_request *or, FILE *output)
buffer * fe_kvp_featureid(ows *o, wfs_request *wr, buffer *layer_name, list *fid)
Definition fe_filter.c:494
ows_srs * ows_srs_copy(ows_srs *d, ows_srs *s)
Definition ows_srs.c:56
int ows_schema_validation(ows *o, buffer *xml_schema, buffer *xml, bool schema_is_file, enum ows_schema_type schema_type)
bool check_regexp(const char *str_request, const char *str_regex)
Definition regexp.c:36
bool ows_layer_list_in_list(const ows_layer_list *ll, const list *l)
Definition ows_layer.c:211
void mlist_node_free(mlist *ml, mlist_node *mln)
Definition mlist.c:118
buffer * fe_kvp_bbox(ows *o, wfs_request *wr, buffer *layer_name, ows_bbox *bbox)
Definition fe_filter.c:420
buffer * ows_layer_prefix_to_uri(ows_layer_list *ll, buffer *layer_name_prefix)
Definition ows_layer.c:343
void wfs(ows *o, wfs_request *wf)
void ows_version_free(ows_version *v)
Definition ows_version.c:94
void ows_service_provider(const ows *o)
list * list_explode_str(char separator, const char *value)
Definition list.c:401
array * array_init()
Definition array.c:36
buffer * ows_psql_schema_name(ows *o, buffer *layer_name)
Definition ows_psql.c:96
void filter_encoding_flush(filter_encoding *fe, FILE *output)
void mlist_free(mlist *ml)
Definition mlist.c:54
wfs_format
Definition ows_struct.h:277
wfs_error_code
Definition ows_struct.h:256
ows_error_code
Definition ows_struct.h:156
wfs_request
Definition ows_struct.h:269
ows_schema_type
Definition ows_struct.h:295

Generated for tinyows by doxygen 1.9.7