Config.h
Go to the documentation of this file.
1 /* Copyright (C) 2008 National Institute For Space Research (INPE) - Brazil.
2 
3  This file is part of the TerraLib - a Framework for building GIS enabled applications.
4 
5  TerraLib is free software: you can redistribute it and/or modify
6  it under the terms of the GNU Lesser General Public License as published by
7  the Free Software Foundation, either version 3 of the License,
8  or (at your option) any later version.
9 
10  TerraLib is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public License
16  along with TerraLib. See COPYING. If not, write to
17  TerraLib Team at <terralib-team@terralib.org>.
18  */
19 
20 /*!
21  \file terralib/postgis/Config.h
22 
23  \brief Configuration flags for the PostGIS Driver Implementation of TerraLib.
24 */
25 
26 #ifndef __TERRALIB_POSTGIS_INTERNAL_CONFIG_H
27 #define __TERRALIB_POSTGIS_INTERNAL_CONFIG_H
28 
29 /** @name General Defines
30  * Configuring PostGIS support.
31  */
32 //@{
33 
34 /*!
35  \def PGIS_DEFAULT_INITIAL_POOL_SIZE
36 
37  \brief This sets the default initial number of connections opened by a connection pool.
38  */
39 #define PGIS_DEFAULT_INITIAL_POOL_SIZE 4
40 
41 /*!
42  \def PGIS_DEFAULT_MIN_POOL_SIZE
43 
44  \brief This sets the default minimum number of connections to be kept in the pool.
45  */
46 #define PGIS_DEFAULT_MIN_POOL_SIZE 2
47 
48 /*!
49  \def PGIS_DEFAULT_MAX_POOL_SIZE
50 
51  \brief This sets the default maximum number of connections in the pool.
52  */
53 #define PGIS_DEFAULT_MAX_POOL_SIZE 4
54 
55 /*!
56  \def PGIS_DEFAULT_MAX_IDLE_TIME
57 
58  \brief This sets the default maximum time that a connection can be in the pool without being used.
59  */
60 #define PGIS_DEFAULT_MAX_IDLE_TIME 10
61 
62 /*!
63  \def PGIS_DEFAULT_PORT
64 
65  \brief The default port used to connect to a PostgreSQL database server.
66  */
67 #define PGIS_DEFAULT_PORT "5432"
68 
69 /*!
70  \def PGIS_DEFAULT_CONNECT_TIMEOUT
71 
72  \brief The default maximum wait for connection, in seconds.
73  */
74 #define PGIS_DEFAULT_CONNECT_TIMEOUT "4"
75 
76 /*!
77  \def PGIS_DEFAULT_CLIENT_ENCODING
78 
79  \brief The default client encoding when talking with the database.
80  */
81 #define PGIS_DEFAULT_CLIENT_ENCODING "UTF8"
82 
83 /*!
84  \def PGIS_DRIVER_IDENTIFIER
85 
86  \brief The PostGIS driver identifier string.
87  */
88 #define PGIS_DRIVER_IDENTIFIER "POSTGIS"
89 
90 /*!
91  \def PGIS_UNKNOWN_SRS
92 
93  \brief A numeric value to represent a unknown SRS identification in PostGIS.
94 
95  \note PostGIS 1.x version uses -1 and only -1 as unknown SRS identifier.
96  PostGIS 2.x version uses 0 and handles negative values as unknown SRS identifier.
97  So -1 value will be handled as unknown SRS identifier in both versions.
98  */
99 #define PGIS_UNKNOWN_SRS -1
100 
101 /*!
102  \def TERRALIB_RASTER_DRIVER_IDENTIFIER
103 
104  \brief The TerraLib Raster driver identifier string.
105  */
106 #define TERRALIB_RASTER_DRIVER_IDENTIFIER "TEPG"
107 
108 #define PG_UNKNOW_TYPE -1
109 #define PG_BOOL_TYPE 16
110 #define PG_BYTEA_TYPE 17
111 #define PG_CHAR_TYPE 18
112 #define PG_NAME_TYPE 19
113 #define PG_INT8_TYPE 20
114 #define PG_INT2_TYPE 21
115 #define PG_INT2_VECTOR_TYPE 22
116 #define PG_INT4_TYPE 23
117 #define PG_TEXT_TYPE 25
118 #define PG_OID_TYPE 26
119 #define PG_FLOAT4_TYPE 700
120 #define PG_FLOAT8_TYPE 701
121 #define PG_CHARACTER_TYPE 1042
122 #define PG_VARCHAR_TYPE 1043
123 #define PG_DATE_TYPE 1082
124 #define PG_TIME_TYPE 1083
125 #define PG_TIMETZ_TYPE 1266
126 #define PG_TIMESTAMP_TYPE 1114
127 #define PG_TIMESTAMPTZ_TYPE 1184
128 #define PG_NUMERIC_TYPE 1700
129 #define PG_BOOL_ARRAY_TYPE 1000
130 #define PG_BYTEA_ARRAY_TYPE 1001
131 #define PG_CHAR_ARRAY_TYPE 1002
132 #define PG_NAME_ARRAY_TYPE 1003
133 #define PG_INT8_ARRAY_TYPE 1016
134 #define PG_INT2_ARRAY_TYPE 1005
135 #define PG__INT2_VECTOR_TYPE 1006
136 #define PG_INT4_ARRAY_TYPE 1007
137 #define PG_TEXT_ARRAY_TYPE 1009
138 #define PG_OID_ARRAY_TYPE 1028
139 #define PG_OID_VECTOR_TYPE 1013
140 #define PG_FLOAT4_ARRAY_TYPE 1021
141 #define PG_FLOAT8_ARRAY_TYPE 1022
142 #define PG_CHARACTER_ARRAY_TYPE 1014
143 #define PG_VARCHAR_ARRAY_TYPE 1015
144 #define PG_DATE_ARRAY_TYPE 1182
145 #define PG_TIME_ARRAY_TYPE 1183
146 #define PG_TIMETZ_ARRAY_TYPE 1270
147 #define PG_TIMESTAMP_ARRAY_TYPE 1115
148 #define PG_TIMESTAMPTZ_ARRAY_TYPE 1185
149 #define PG_NUMERIC_ARRAY_TYPE 1231
150 
151 //@}
152 
153 /** @name PostGIS Compatibility Flags
154  * Flags for constructing compatible WKB format with PostGIS
155  */
156 //@{
157 
158 #define TE_EWKB_ZM_OFFSET 0xC0000000
159 #define TE_EWKB_Z_OFFSET 0x80000000
160 #define TE_EWKB_M_OFFSET 0x40000000
161 #define TE_EWKB_SRID_FLAG 0x20000000
162 #define TE_EWKB_BBOX_FLAG 0x10000000
163 
164 //@}
165 
166 /** @name DLL/LIB Module
167  * Flags for building TerraLib as a DLL or as a Static Library
168  */
169 //@{
170 
171 /*!
172  \def TEPGISEXPORT
173 
174  \brief You can use this macro in order to export/import classes and functions from this module.
175 
176  \note If you want to compile TerraLib as DLL in Windows, remember to insert TEPGISDLL into the project's list of defines.
177 
178  \note If you want to compile TerraLib as an Static Library under Windows, remember to insert the TEPGISSTATIC flag into the project list of defines.
179  */
180 #ifdef WIN32
181 
182  #ifdef _MSC_VER
183  #pragma warning( disable : 4251 )
184  #pragma warning( disable : 4275 )
185  #endif
186 
187  #ifdef TEPGISSTATIC
188  #define TEPGISEXPORT // Don't need to export/import... it is a static library
189  #elif TEPGISDLL
190  #define TEPGISEXPORT __declspec(dllexport) // export DLL information
191  #else
192  #define TEPGISEXPORT __declspec(dllimport) // import DLL information
193  #endif
194 #else
195  #define TEPGISEXPORT
196 #endif
197 
198 //@}
199 
200 #endif // __TERRALIB_POSTGIS_INTERNAL_CONFIG_H
201