PostGIS  2.4.9dev-r@@SVN_REVISION@@
geobuf.h
Go to the documentation of this file.
1 /**********************************************************************
2  *
3  * PostGIS - Spatial Types for PostgreSQL
4  * http://postgis.net
5  *
6  * PostGIS is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * PostGIS is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with PostGIS. If not, see <http://www.gnu.org/licenses/>.
18  *
19  **********************************************************************
20  *
21  * Copyright (C) 2016-2017 Björn Harrtell <bjorn@wololo.org>
22  *
23  **********************************************************************/
24 
25 #ifndef GEOBUF_H_
26 #define GEOBUF_H_ 1
27 
28 #include <stdlib.h>
29 #include "postgres.h"
30 #include "utils/builtins.h"
31 #include "utils/array.h"
32 #include "utils/typcache.h"
33 #include "utils/lsyscache.h"
34 #include "catalog/pg_type.h"
35 #include "catalog/namespace.h"
36 #include "executor/spi.h"
37 #include "executor/executor.h"
38 #include "access/htup_details.h"
39 #include "access/htup.h"
40 #include "../postgis_config.h"
41 #include "liblwgeom.h"
42 #include "lwgeom_pg.h"
43 #include "lwgeom_log.h"
44 
45 #if defined HAVE_LIBPROTOBUF && defined HAVE_GEOBUF
46 
47 #include "geobuf.pb-c.h"
48 
50  char *geom_name;
52  HeapTupleHeader row;
54  Data *data;
55  Data__Feature *feature;
58  protobuf_c_boolean has_precision;
60  protobuf_c_boolean has_dimensions;
62 };
63 
65 void geobuf_agg_transfn(struct geobuf_agg_context *ctx);
67 
68 #endif /* HAVE_LIBPROTOBUF */
69 
70 #endif
HeapTupleHeader row
Definition: geobuf.h:52
Data__Feature * feature
Definition: geobuf.h:55
protobuf_c_boolean has_precision
Definition: geobuf.h:58
protobuf_c_boolean has_dimensions
Definition: geobuf.h:60
void geobuf_agg_transfn(struct geobuf_agg_context *ctx)
Aggregation step.
Definition: geobuf.c:561
uint32_t dimensions
Definition: geobuf.h:61
unsigned int uint32_t
Definition: uthash.h:78
uint32_t precision
Definition: geobuf.h:59
void geobuf_agg_init_context(struct geobuf_agg_context *ctx)
Initialize aggregation context.
Definition: geobuf.c:524
size_t features_capacity
Definition: geobuf.h:56
uint8_t * geobuf_agg_finalfn(struct geobuf_agg_context *ctx)
Finalize aggregation.
Definition: geobuf.c:606
LWGEOM ** lwgeoms
Definition: geobuf.h:53
uint32_t geom_index
Definition: geobuf.h:51
unsigned char uint8_t
Definition: uthash.h:79
uint32_t e
Definition: geobuf.h:57
char * geom_name
Definition: geobuf.h:50
This library is the generic geometry handling section of PostGIS.