gaiageo.h | gaiageo.h | |||
---|---|---|---|---|
/* | /* | |||
gaiageo.h -- Gaia common support for geometries | gaiageo.h -- Gaia common support for geometries | |||
version 1.0, 2008 May 6 | version 2.2, 2008 September 13 | |||
Author: Sandro Furieri a-furieri@lqt.it | Author: Sandro Furieri a-furieri@lqt.it | |||
Copyright (C) 2008 Alessandro Furieri | -------------------------------------------------------------------------- ---- | |||
This library is free software; you can redistribute it and/or | Version: MPL 1.1/GPL 2.0/LGPL 2.1 | |||
modify it under the terms of the GNU Lesser General Public | ||||
License as published by the Free Software Foundation; either | ||||
version 2.1 of the License, or (at your option) any later version. | ||||
This library is distributed in the hope that it will be useful, | The contents of this file are subject to the Mozilla Public License Versio | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | n | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 1.1 (the "License"); you may not use this file except in compliance with | |||
Lesser General Public License for more details. | the License. You may obtain a copy of the License at | |||
http://www.mozilla.org/MPL/ | ||||
You should have received a copy of the GNU Lesser General Public | Software distributed under the License is distributed on an "AS IS" basis, | |||
License along with this library; if not, write to the Free Software | WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License | |||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 | for the specific language governing rights and limitations under the | |||
USA | License. | |||
The Original Code is the SpatiaLite library | ||||
The Initial Developer of the Original Code is Alessandro Furieri | ||||
Portions created by the Initial Developer are Copyright (C) 2008 | ||||
the Initial Developer. All Rights Reserved. | ||||
Contributor(s): | ||||
Alternatively, the contents of this file may be used under the terms of | ||||
either the GNU General Public License Version 2 or later (the "GPL"), or | ||||
the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), | ||||
in which case the provisions of the GPL or the LGPL are applicable instead | ||||
of those above. If you wish to allow use of your version of this file only | ||||
under the terms of either the GPL or the LGPL, and not to allow others to | ||||
use your version of this file under the terms of the MPL, indicate your | ||||
decision by deleting the provisions above and replace them with the notice | ||||
and other provisions required by the GPL or the LGPL. If you do not delete | ||||
the provisions above, a recipient may use your version of this file under | ||||
the terms of any one of the MPL, the GPL or the LGPL. | ||||
*/ | */ | |||
#ifdef DLL_EXPORT | #ifdef DLL_EXPORT | |||
#define GAIAGEO_DECLARE __declspec(dllexport) | #define GAIAGEO_DECLARE __declspec(dllexport) | |||
#else | #else | |||
#define GAIAGEO_DECLARE extern | #define GAIAGEO_DECLARE extern | |||
#endif | #endif | |||
#ifndef _GAIAGEO_H | #ifndef _GAIAGEO_H | |||
skipping to change at line 93 | skipping to change at line 112 | |||
/* constants that defines MBRs spatial relationships */ | /* constants that defines MBRs spatial relationships */ | |||
#define GAIA_MBR_CONTAINS 1 | #define GAIA_MBR_CONTAINS 1 | |||
#define GAIA_MBR_DISJOINT 2 | #define GAIA_MBR_DISJOINT 2 | |||
#define GAIA_MBR_EQUAL 3 | #define GAIA_MBR_EQUAL 3 | |||
#define GAIA_MBR_INTERSECTS 4 | #define GAIA_MBR_INTERSECTS 4 | |||
#define GAIA_MBR_OVERLAPS 5 | #define GAIA_MBR_OVERLAPS 5 | |||
#define GAIA_MBR_TOUCHES 6 | #define GAIA_MBR_TOUCHES 6 | |||
#define GAIA_MBR_WITHIN 7 | #define GAIA_MBR_WITHIN 7 | |||
/* constants used for FilterMBR */ | ||||
#define GAIA_FILTER_MBR_WITHIN 74 | ||||
#define GAIA_FILTER_MBR_CONTAINS 77 | ||||
#define GAIA_FILTER_MBR_INTERSECTS 79 | ||||
#define GAIA_FILTER_MBR_DECLARE 89 | ||||
/* macros */ | /* macros */ | |||
#define gaiaGetPoint(xy,v,x,y) {*x = *(xy + (v * 2)); \ | #define gaiaGetPoint(xy,v,x,y) {*x = *(xy + (v * 2)); \ | |||
*y = *(xy + ((v * 2) + 1));} | *y = *(xy + ((v * 2) + 1));} | |||
#define gaiaSetPoint(xy,v,x,y) {*(xy + (v * 2)) = x; \ | #define gaiaSetPoint(xy,v,x,y) {*(xy + (v * 2)) = x; \ | |||
*(xy + ((v * 2) + 1)) = y;} | *(xy + ((v * 2) + 1)) = y;} | |||
typedef struct gaiaPointStruct | typedef struct gaiaPointStruct | |||
{ | { | |||
/* an OpenGis POINT */ | /* an OpenGis POINT */ | |||
skipping to change at line 241 | skipping to change at line 266 | |||
int DbfSize; /* current DBF size */ | int DbfSize; /* current DBF size */ | |||
int DbfRecno; /* current DBF record number */ | int DbfRecno; /* current DBF record number */ | |||
unsigned char *BufShp; /* the SHP I/O buffer */ | unsigned char *BufShp; /* the SHP I/O buffer */ | |||
int ShpBfsz; /* the SHP buffer current size */ | int ShpBfsz; /* the SHP buffer current size */ | |||
int ShpSize; /* current SHP size */ | int ShpSize; /* current SHP size */ | |||
int ShxSize; /* current SHX size */ | int ShxSize; /* current SHX size */ | |||
double MinX; /* the MBR/BBOX for the whole shapefile */ | double MinX; /* the MBR/BBOX for the whole shapefile */ | |||
double MinY; | double MinY; | |||
double MaxX; | double MaxX; | |||
double MaxY; | double MaxY; | |||
void *IconvObj; /* opaque reference to ICONV converter */ | ||||
char *LastError; /* last error message */ | char *LastError; /* last error message */ | |||
} gaiaShapefile; | } gaiaShapefile; | |||
typedef gaiaShapefile *gaiaShapefilePtr; | typedef gaiaShapefile *gaiaShapefilePtr; | |||
/* function prototipes */ | /* function prototipes */ | |||
GAIAGEO_DECLARE int gaiaEndianArch (void); | GAIAGEO_DECLARE int gaiaEndianArch (void); | |||
GAIAGEO_DECLARE int gaiaImport16 (const unsigned char *p, int little_en | GAIAGEO_DECLARE short gaiaImport16 (const unsigned char *p, | |||
dian, | int little_endian, | |||
int little_endian_arch); | int little_endian_arch); | |||
GAIAGEO_DECLARE int gaiaImport32 (const unsigned char *p, int little_en dian, | GAIAGEO_DECLARE int gaiaImport32 (const unsigned char *p, int little_en dian, | |||
int little_endian_arch); | int little_endian_arch); | |||
GAIAGEO_DECLARE double gaiaImport64 (const unsigned char *p, | GAIAGEO_DECLARE double gaiaImport64 (const unsigned char *p, | |||
int little_endian, | int little_endian, | |||
int little_endian_arch); | int little_endian_arch); | |||
GAIAGEO_DECLARE void gaiaExport16 (unsigned char *p, short value, | GAIAGEO_DECLARE void gaiaExport16 (unsigned char *p, short value, | |||
int little_endian, | int little_endian, | |||
int little_endian_arch); | int little_endian_arch); | |||
GAIAGEO_DECLARE void gaiaExport32 (unsigned char *p, int value, | GAIAGEO_DECLARE void gaiaExport32 (unsigned char *p, int value, | |||
int little_endian, | int little_endian, | |||
skipping to change at line 381 | skipping to change at line 408 | |||
GAIAGEO_DECLARE void gaiaSetIntValue (gaiaDbfFieldPtr field, int value) ; | GAIAGEO_DECLARE void gaiaSetIntValue (gaiaDbfFieldPtr field, int value) ; | |||
GAIAGEO_DECLARE void gaiaSetDoubleValue (gaiaDbfFieldPtr field, | GAIAGEO_DECLARE void gaiaSetDoubleValue (gaiaDbfFieldPtr field, | |||
double value); | double value); | |||
GAIAGEO_DECLARE void gaiaSetStrValue (gaiaDbfFieldPtr field, char *str) ; | GAIAGEO_DECLARE void gaiaSetStrValue (gaiaDbfFieldPtr field, char *str) ; | |||
GAIAGEO_DECLARE gaiaDbfFieldPtr gaiaAllocDbfField (char *name, | GAIAGEO_DECLARE gaiaDbfFieldPtr gaiaAllocDbfField (char *name, | |||
unsigned char type, | unsigned char type, | |||
int offset, | int offset, | |||
unsigned char length, | unsigned char length, | |||
unsigned char decimal s); | unsigned char decimal s); | |||
GAIAGEO_DECLARE void gaiaFreeDbfField (gaiaDbfFieldPtr p); | GAIAGEO_DECLARE void gaiaFreeDbfField (gaiaDbfFieldPtr p); | |||
GAIAGEO_DECLARE gaiaDbfFieldPtr gaiaCloneDbfField (gaiaDbfFieldPtr org) ; | ||||
GAIAGEO_DECLARE gaiaDbfListPtr gaiaAllocDbfList (void); | GAIAGEO_DECLARE gaiaDbfListPtr gaiaAllocDbfList (void); | |||
GAIAGEO_DECLARE void gaiaFreeDbfList (gaiaDbfListPtr list); | GAIAGEO_DECLARE void gaiaFreeDbfList (gaiaDbfListPtr list); | |||
GAIAGEO_DECLARE gaiaDbfFieldPtr gaiaAddDbfField (gaiaDbfListPtr list, | GAIAGEO_DECLARE gaiaDbfFieldPtr gaiaAddDbfField (gaiaDbfListPtr list, | |||
char *name, | char *name, | |||
unsigned char type, | unsigned char type, | |||
int offset, | int offset, | |||
unsigned char length, | unsigned char length, | |||
unsigned char decimals) ; | unsigned char decimals) ; | |||
GAIAGEO_DECLARE void gaiaResetDbfEntity (gaiaDbfListPtr list); | GAIAGEO_DECLARE void gaiaResetDbfEntity (gaiaDbfListPtr list); | |||
GAIAGEO_DECLARE gaiaValuePtr gaiaCloneValue (gaiaValuePtr org); | GAIAGEO_DECLARE gaiaValuePtr gaiaCloneValue (gaiaValuePtr org); | |||
GAIAGEO_DECLARE gaiaDbfListPtr gaiaCloneDbfEntity (gaiaDbfListPtr org); | GAIAGEO_DECLARE gaiaDbfListPtr gaiaCloneDbfEntity (gaiaDbfListPtr org); | |||
GAIAGEO_DECLARE gaiaShapefilePtr gaiaAllocShapefile (void); | GAIAGEO_DECLARE gaiaShapefilePtr gaiaAllocShapefile (void); | |||
GAIAGEO_DECLARE void gaiaFreeShapefile (gaiaShapefilePtr shp); | GAIAGEO_DECLARE void gaiaFreeShapefile (gaiaShapefilePtr shp); | |||
GAIAGEO_DECLARE void gaiaOpenShpRead (gaiaShapefilePtr shp, | GAIAGEO_DECLARE void gaiaOpenShpRead (gaiaShapefilePtr shp, | |||
const char *path); | const char *path, | |||
const char *charFrom, | ||||
const char *charTo); | ||||
GAIAGEO_DECLARE void gaiaOpenShpWrite (gaiaShapefilePtr shp, | GAIAGEO_DECLARE void gaiaOpenShpWrite (gaiaShapefilePtr shp, | |||
const char *path, int shape, | const char *path, int shape, | |||
gaiaDbfListPtr list); | gaiaDbfListPtr list, | |||
const char *charFrom, | ||||
const char *charTo); | ||||
GAIAGEO_DECLARE int gaiaReadShpEntity (gaiaShapefilePtr shp, | GAIAGEO_DECLARE int gaiaReadShpEntity (gaiaShapefilePtr shp, | |||
int current_row); | int current_row, int srid); | |||
GAIAGEO_DECLARE int gaiaWriteShpEntity (gaiaShapefilePtr shp, | GAIAGEO_DECLARE int gaiaWriteShpEntity (gaiaShapefilePtr shp, | |||
gaiaDbfListPtr entity); | gaiaDbfListPtr entity); | |||
GAIAGEO_DECLARE void gaiaFlushShpHeaders (gaiaShapefilePtr shp); | GAIAGEO_DECLARE void gaiaFlushShpHeaders (gaiaShapefilePtr shp); | |||
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaParseWkt (const unsigned char | GAIAGEO_DECLARE gaiaGeomCollPtr gaiaParseWkt (const unsigned char | |||
*dirty_buffer, short type) ; | *dirty_buffer, short type) ; | |||
GAIAGEO_DECLARE void gaiaOutWkt (gaiaGeomCollPtr geom, char **result); | GAIAGEO_DECLARE void gaiaOutWkt (gaiaGeomCollPtr geom, char **result); | |||
GAIAGEO_DECLARE int gaiaDimension (gaiaGeomCollPtr geom); | GAIAGEO_DECLARE int gaiaDimension (gaiaGeomCollPtr geom); | |||
GAIAGEO_DECLARE void gaiaGeometryType (gaiaGeomCollPtr geom, char **buf | GAIAGEO_DECLARE int gaiaGeometryType (gaiaGeomCollPtr geom); | |||
); | GAIAGEO_DECLARE int gaiaGeometryAliasType (gaiaGeomCollPtr geom); | |||
GAIAGEO_DECLARE void gaiaGeometryAliasType (gaiaGeomCollPtr geom, | ||||
char **buf); | ||||
GAIAGEO_DECLARE int gaiaIsEmpty (gaiaGeomCollPtr geom); | GAIAGEO_DECLARE int gaiaIsEmpty (gaiaGeomCollPtr geom); | |||
GAIAGEO_DECLARE int gaiaMbrsContains (gaiaGeomCollPtr mbr1, | GAIAGEO_DECLARE int gaiaMbrsContains (gaiaGeomCollPtr mbr1, | |||
gaiaGeomCollPtr mbr2); | gaiaGeomCollPtr mbr2); | |||
GAIAGEO_DECLARE int gaiaMbrsDisjoint (gaiaGeomCollPtr mbr1, | GAIAGEO_DECLARE int gaiaMbrsDisjoint (gaiaGeomCollPtr mbr1, | |||
gaiaGeomCollPtr mbr2); | gaiaGeomCollPtr mbr2); | |||
GAIAGEO_DECLARE int gaiaMbrsEqual (gaiaGeomCollPtr mbr1, | GAIAGEO_DECLARE int gaiaMbrsEqual (gaiaGeomCollPtr mbr1, | |||
gaiaGeomCollPtr mbr2); | gaiaGeomCollPtr mbr2); | |||
GAIAGEO_DECLARE int gaiaMbrsIntersects (gaiaGeomCollPtr mbr1, | GAIAGEO_DECLARE int gaiaMbrsIntersects (gaiaGeomCollPtr mbr1, | |||
gaiaGeomCollPtr mbr2); | gaiaGeomCollPtr mbr2); | |||
GAIAGEO_DECLARE int gaiaMbrsOverlaps (gaiaGeomCollPtr mbr1, | GAIAGEO_DECLARE int gaiaMbrsOverlaps (gaiaGeomCollPtr mbr1, | |||
skipping to change at line 443 | skipping to change at line 474 | |||
GAIAGEO_DECLARE void gaiaSwapCoords (gaiaGeomCollPtr geom); | GAIAGEO_DECLARE void gaiaSwapCoords (gaiaGeomCollPtr geom); | |||
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomColl (gaiaGeomCollPtr geom ); | GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomColl (gaiaGeomCollPtr geom ); | |||
GAIAGEO_DECLARE gaiaLinestringPtr gaiaCloneLinestring (gaiaLinestringPt r | GAIAGEO_DECLARE gaiaLinestringPtr gaiaCloneLinestring (gaiaLinestringPt r | |||
line); | line); | |||
GAIAGEO_DECLARE gaiaRingPtr gaiaCloneRing (gaiaRingPtr ring); | GAIAGEO_DECLARE gaiaRingPtr gaiaCloneRing (gaiaRingPtr ring); | |||
GAIAGEO_DECLARE gaiaPolygonPtr gaiaClonePolygon (gaiaPolygonPtr polyg); | GAIAGEO_DECLARE gaiaPolygonPtr gaiaClonePolygon (gaiaPolygonPtr polyg); | |||
GAIAGEO_DECLARE int gaiaLinestringEquals (gaiaLinestringPtr line1, | GAIAGEO_DECLARE int gaiaLinestringEquals (gaiaLinestringPtr line1, | |||
gaiaLinestringPtr line2); | gaiaLinestringPtr line2); | |||
GAIAGEO_DECLARE int gaiaPolygonEquals (gaiaPolygonPtr geom1, | GAIAGEO_DECLARE int gaiaPolygonEquals (gaiaPolygonPtr geom1, | |||
gaiaPolygonPtr geom2); | gaiaPolygonPtr geom2); | |||
GAIAGEO_DECLARE void gaiaMakePoint (double x, double y, int srid, | ||||
unsigned char **result, int *size); | ||||
GAIAGEO_DECLARE void gaiaBuildMbr (double x1, double y1, double x2, | GAIAGEO_DECLARE void gaiaBuildMbr (double x1, double y1, double x2, | |||
double y2, unsigned char **result, | double y2, int srid, | |||
int *size); | unsigned char **result, int *size); | |||
GAIAGEO_DECLARE void gaiaBuildCircleMbr (double x, double y, double rad | GAIAGEO_DECLARE void gaiaBuildFilterMbr (double x1, double y1, double x | |||
ius, | 2, | |||
double y2, int mode, | ||||
unsigned char **result, int *si ze); | unsigned char **result, int *si ze); | |||
GAIAGEO_DECLARE int gaiaParseFilterMbr (unsigned char *result, int size | ||||
, | ||||
double *minx, double *miny, | ||||
double *maxx, double *maxy, | ||||
int *mode); | ||||
GAIAGEO_DECLARE void gaiaBuildCircleMbr (double x, double y, double rad | ||||
ius, | ||||
int srid, unsigned char **resul | ||||
t, | ||||
int *size); | ||||
GAIAGEO_DECLARE int gaiaGetMbrMinX (const unsigned char *blob, | GAIAGEO_DECLARE int gaiaGetMbrMinX (const unsigned char *blob, | |||
unsigned int size, double *minx); | unsigned int size, double *minx); | |||
GAIAGEO_DECLARE int gaiaGetMbrMaxX (const unsigned char *blob, | GAIAGEO_DECLARE int gaiaGetMbrMaxX (const unsigned char *blob, | |||
unsigned int size, double *maxx); | unsigned int size, double *maxx); | |||
GAIAGEO_DECLARE int gaiaGetMbrMinY (const unsigned char *blob, | GAIAGEO_DECLARE int gaiaGetMbrMinY (const unsigned char *blob, | |||
unsigned int size, double *miny); | unsigned int size, double *miny); | |||
GAIAGEO_DECLARE int gaiaGetMbrMaxY (const unsigned char *blob, | GAIAGEO_DECLARE int gaiaGetMbrMaxY (const unsigned char *blob, | |||
unsigned int size, double *maxy); | unsigned int size, double *maxy); | |||
GAIAGEO_DECLARE const char *gaiaGetLocaleCharset (); | ||||
GAIAGEO_DECLARE int gaiaConvertCharset (char **buf, const char *fromCs, | ||||
const char *toCs); | ||||
GAIAGEO_DECLARE int gaiaToUTF8 (char **buf, const char *fromCs, | ||||
const char *toCs); | ||||
GAIAGEO_DECLARE void *gaiaCreateUTF8Converter (const char *fromCS); | ||||
GAIAGEO_DECLARE void gaiaFreeUTF8Converter (void *cvtCS); | ||||
GAIAGEO_DECLARE char *gaiaConvertToUTF8 (void *cvtCS, const char *buf, | ||||
int len, int *err); | ||||
GAIAGEO_DECLARE int gaiaIsReservedSqliteName (const char *name); | ||||
GAIAGEO_DECLARE int gaiaIsReservedSqlName (const char *name); | ||||
GAIAGEO_DECLARE int gaiaIllegalSqlName (const char *name); | ||||
GAIAGEO_DECLARE void gaiaCleanSqlString (char *value); | ||||
#if OMIT_PROJ == 0 /* including PROJ.4 */ | #if OMIT_PROJ == 0 /* including PROJ.4 */ | |||
GAIAGEO_DECLARE double gaiaRadsToDegs (double rads); | GAIAGEO_DECLARE double gaiaRadsToDegs (double rads); | |||
GAIAGEO_DECLARE double gaiaDegsToRads (double degs); | GAIAGEO_DECLARE double gaiaDegsToRads (double degs); | |||
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransform (gaiaGeomCollPtr org, | GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransform (gaiaGeomCollPtr org, | |||
char *proj_from, | char *proj_from, | |||
char *proj_to); | char *proj_to); | |||
#endif /* end including PROJ.4 */ | #endif /* end including PROJ.4 */ | |||
End of changes. 17 change blocks. | ||||
28 lines changed or deleted | 83 lines changed or added | |||
spatialite.h | spatialite.h | |||
---|---|---|---|---|
/* | /* | |||
spatialite.h -- Gaia spatial support for SQLite | spatialite.h -- Gaia spatial support for SQLite | |||
version 1.0, 2008 May 6 | version 2.2, 2008 September 13 | |||
Author: Sandro Furieri a-furieri@lqt.it | Author: Sandro Furieri a-furieri@lqt.it | |||
Copyright (C) 2008 Alessandro Furieri | -------------------------------------------------------------------------- ---- | |||
This library is free software; you can redistribute it and/or | Version: MPL 1.1/GPL 2.0/LGPL 2.1 | |||
modify it under the terms of the GNU Lesser General Public | ||||
License as published by the Free Software Foundation; either | ||||
version 2.1 of the License, or (at your option) any later version. | ||||
This library is distributed in the hope that it will be useful, | The contents of this file are subject to the Mozilla Public License Versio | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | n | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 1.1 (the "License"); you may not use this file except in compliance with | |||
Lesser General Public License for more details. | the License. You may obtain a copy of the License at | |||
http://www.mozilla.org/MPL/ | ||||
You should have received a copy of the GNU Lesser General Public | Software distributed under the License is distributed on an "AS IS" basis, | |||
License along with this library; if not, write to the Free Software | WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License | |||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 | for the specific language governing rights and limitations under the | |||
USA | License. | |||
The Original Code is the SpatiaLite library | ||||
The Initial Developer of the Original Code is Alessandro Furieri | ||||
Portions created by the Initial Developer are Copyright (C) 2008 | ||||
the Initial Developer. All Rights Reserved. | ||||
Contributor(s): | ||||
Alternatively, the contents of this file may be used under the terms of | ||||
either the GNU General Public License Version 2 or later (the "GPL"), or | ||||
the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), | ||||
in which case the provisions of the GPL or the LGPL are applicable instead | ||||
of those above. If you wish to allow use of your version of this file only | ||||
under the terms of either the GPL or the LGPL, and not to allow others to | ||||
use your version of this file under the terms of the MPL, indicate your | ||||
decision by deleting the provisions above and replace them with the notice | ||||
and other provisions required by the GPL or the LGPL. If you do not delete | ||||
the provisions above, a recipient may use your version of this file under | ||||
the terms of any one of the MPL, the GPL or the LGPL. | ||||
*/ | */ | |||
#ifdef DLL_EXPORT | #ifdef DLL_EXPORT | |||
#define SPATIALITE_DECLARE __declspec(dllexport) | #define SPATIALITE_DECLARE __declspec(dllexport) | |||
#else | #else | |||
#define SPATIALITE_DECLARE extern | #define SPATIALITE_DECLARE extern | |||
#endif | #endif | |||
#ifndef _SPATIALITE_H | #ifndef _SPATIALITE_H | |||
#define _SPATIALITE_H | #define _SPATIALITE_H | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
extern "C" | extern "C" | |||
{ | { | |||
#endif | #endif | |||
#define SPATIALITE_VERSION "2.0" | ||||
SPATIALITE_DECLARE const char *spatialite_version (void); | SPATIALITE_DECLARE const char *spatialite_version (void); | |||
SPATIALITE_DECLARE void spatialite_init (void); | SPATIALITE_DECLARE void spatialite_init (int verbose); | |||
SPATIALITE_DECLARE void dump_shapefile (sqlite3 * sqlite, char *table, | ||||
char *column, char *charset, | ||||
char *shp_path, char *geom_type) | ||||
; | ||||
SPATIALITE_DECLARE void load_shapefile (sqlite3 * sqlite, char *shp_pat | ||||
h, | ||||
char *table, char *charset, | ||||
int srid, char *column); | ||||
#ifdef __cplusplus | #ifdef __cplusplus | |||
} | } | |||
#endif | #endif | |||
#endif /* _SPATIALITE_H */ | #endif /* _SPATIALITE_H */ | |||
End of changes. 7 change blocks. | ||||
17 lines changed or deleted | 42 lines changed or added | |||
sqlite3ext.h | sqlite3ext.h | |||
---|---|---|---|---|
skipping to change at line 18 | skipping to change at line 18 | |||
** May you find forgiveness for yourself and forgive others. | ** May you find forgiveness for yourself and forgive others. | |||
** May you share freely, never taking more than you give. | ** May you share freely, never taking more than you give. | |||
** | ** | |||
************************************************************************* | ************************************************************************* | |||
** This header file defines the SQLite interface for use by | ** This header file defines the SQLite interface for use by | |||
** shared libraries that want to be imported as extensions into | ** shared libraries that want to be imported as extensions into | |||
** an SQLite instance. Shared libraries that intend to be loaded | ** an SQLite instance. Shared libraries that intend to be loaded | |||
** as extensions by SQLite should #include this file instead of | ** as extensions by SQLite should #include this file instead of | |||
** sqlite3.h. | ** sqlite3.h. | |||
** | ** | |||
** @(#) $Id: sqlite3ext.h,v 1.21 2008/03/19 21:45:51 drh Exp $ | ** @(#) $Id: sqlite3ext.h,v 1.24 2008/06/30 15:09:29 danielk1977 Exp $ | |||
*/ | */ | |||
#ifndef _SQLITE3EXT_H_ | #ifndef _SQLITE3EXT_H_ | |||
#define _SQLITE3EXT_H_ | #define _SQLITE3EXT_H_ | |||
#include "sqlite3.h" | #include "sqlite3.h" | |||
typedef struct sqlite3_api_routines sqlite3_api_routines; | typedef struct sqlite3_api_routines sqlite3_api_routines; | |||
/* | /* | |||
** The following structure holds pointers to all of the SQLite API | ** The following structure holds pointers to all of the SQLite API | |||
** routines. | ** routines. | |||
skipping to change at line 81 | skipping to change at line 81 | |||
const char * (*column_table_name)(sqlite3_stmt*,int); | const char * (*column_table_name)(sqlite3_stmt*,int); | |||
const void * (*column_table_name16)(sqlite3_stmt*,int); | const void * (*column_table_name16)(sqlite3_stmt*,int); | |||
const unsigned char * (*column_text)(sqlite3_stmt*,int iCol); | const unsigned char * (*column_text)(sqlite3_stmt*,int iCol); | |||
const void * (*column_text16)(sqlite3_stmt*,int iCol); | const void * (*column_text16)(sqlite3_stmt*,int iCol); | |||
int (*column_type)(sqlite3_stmt*,int iCol); | int (*column_type)(sqlite3_stmt*,int iCol); | |||
sqlite3_value* (*column_value)(sqlite3_stmt*,int iCol); | sqlite3_value* (*column_value)(sqlite3_stmt*,int iCol); | |||
void * (*commit_hook)(sqlite3*,int(*)(void*),void*); | void * (*commit_hook)(sqlite3*,int(*)(void*),void*); | |||
int (*complete)(const char*sql); | int (*complete)(const char*sql); | |||
int (*complete16)(const void*sql); | int (*complete16)(const void*sql); | |||
int (*create_collation)(sqlite3*,const char*,int,void*,int(*)(void*,int, const void*,int,const void*)); | int (*create_collation)(sqlite3*,const char*,int,void*,int(*)(void*,int, const void*,int,const void*)); | |||
int (*create_collation16)(sqlite3*,const char*,int,void*,int(*)(void*,in t,const void*,int,const void*)); | int (*create_collation16)(sqlite3*,const void*,int,void*,int(*)(void*,in t,const void*,int,const void*)); | |||
int (*create_function)(sqlite3*,const char*,int,int,void*,void (*xFunc)( sqlite3_context*,int,sqlite3_value**),void (*xStep)(sqlite3_context*,int,sq lite3_value**),void (*xFinal)(sqlite3_context*)); | int (*create_function)(sqlite3*,const char*,int,int,void*,void (*xFunc)( sqlite3_context*,int,sqlite3_value**),void (*xStep)(sqlite3_context*,int,sq lite3_value**),void (*xFinal)(sqlite3_context*)); | |||
int (*create_function16)(sqlite3*,const void*,int,int,void*,void (*xFunc )(sqlite3_context*,int,sqlite3_value**),void (*xStep)(sqlite3_context*,int, sqlite3_value**),void (*xFinal)(sqlite3_context*)); | int (*create_function16)(sqlite3*,const void*,int,int,void*,void (*xFunc )(sqlite3_context*,int,sqlite3_value**),void (*xStep)(sqlite3_context*,int, sqlite3_value**),void (*xFinal)(sqlite3_context*)); | |||
int (*create_module)(sqlite3*,const char*,const sqlite3_module*,void*); | int (*create_module)(sqlite3*,const char*,const sqlite3_module*,void*); | |||
int (*data_count)(sqlite3_stmt*pStmt); | int (*data_count)(sqlite3_stmt*pStmt); | |||
sqlite3 * (*db_handle)(sqlite3_stmt*); | sqlite3 * (*db_handle)(sqlite3_stmt*); | |||
int (*declare_vtab)(sqlite3*,const char*); | int (*declare_vtab)(sqlite3*,const char*); | |||
int (*enable_shared_cache)(int); | int (*enable_shared_cache)(int); | |||
int (*errcode)(sqlite3*db); | int (*errcode)(sqlite3*db); | |||
const char * (*errmsg)(sqlite3*); | const char * (*errmsg)(sqlite3*); | |||
const void * (*errmsg16)(sqlite3*); | const void * (*errmsg16)(sqlite3*); | |||
skipping to change at line 191 | skipping to change at line 191 | |||
void (*soft_heap_limit)(int); | void (*soft_heap_limit)(int); | |||
sqlite3_vfs *(*vfs_find)(const char*); | sqlite3_vfs *(*vfs_find)(const char*); | |||
int (*vfs_register)(sqlite3_vfs*,int); | int (*vfs_register)(sqlite3_vfs*,int); | |||
int (*vfs_unregister)(sqlite3_vfs*); | int (*vfs_unregister)(sqlite3_vfs*); | |||
int (*xthreadsafe)(void); | int (*xthreadsafe)(void); | |||
void (*result_zeroblob)(sqlite3_context*,int); | void (*result_zeroblob)(sqlite3_context*,int); | |||
void (*result_error_code)(sqlite3_context*,int); | void (*result_error_code)(sqlite3_context*,int); | |||
int (*test_control)(int, ...); | int (*test_control)(int, ...); | |||
void (*randomness)(int,void*); | void (*randomness)(int,void*); | |||
sqlite3 *(*context_db_handle)(sqlite3_context*); | sqlite3 *(*context_db_handle)(sqlite3_context*); | |||
int (*extended_result_codes)(sqlite3*,int); | ||||
int (*limit)(sqlite3*,int,int); | ||||
sqlite3_stmt *(*next_stmt)(sqlite3*,sqlite3_stmt*); | ||||
const char *(*sql)(sqlite3_stmt*); | ||||
int (*status)(int,int*,int*,int); | ||||
}; | }; | |||
/* | /* | |||
** The following macros redefine the API routines so that they are | ** The following macros redefine the API routines so that they are | |||
** redirected throught the global sqlite3_api structure. | ** redirected throught the global sqlite3_api structure. | |||
** | ** | |||
** This header file is also used by the loadext.c source file | ** This header file is also used by the loadext.c source file | |||
** (part of the main SQLite library - not an extension) so that | ** (part of the main SQLite library - not an extension) so that | |||
** it can get access to the sqlite3_api_routines structure | ** it can get access to the sqlite3_api_routines structure | |||
** definition. But the main library does not want to redefine | ** definition. But the main library does not want to redefine | |||
skipping to change at line 357 | skipping to change at line 362 | |||
#define sqlite3_soft_heap_limit sqlite3_api->soft_heap_limit | #define sqlite3_soft_heap_limit sqlite3_api->soft_heap_limit | |||
#define sqlite3_vfs_find sqlite3_api->vfs_find | #define sqlite3_vfs_find sqlite3_api->vfs_find | |||
#define sqlite3_vfs_register sqlite3_api->vfs_register | #define sqlite3_vfs_register sqlite3_api->vfs_register | |||
#define sqlite3_vfs_unregister sqlite3_api->vfs_unregister | #define sqlite3_vfs_unregister sqlite3_api->vfs_unregister | |||
#define sqlite3_threadsafe sqlite3_api->xthreadsafe | #define sqlite3_threadsafe sqlite3_api->xthreadsafe | |||
#define sqlite3_result_zeroblob sqlite3_api->result_zeroblob | #define sqlite3_result_zeroblob sqlite3_api->result_zeroblob | |||
#define sqlite3_result_error_code sqlite3_api->result_error_code | #define sqlite3_result_error_code sqlite3_api->result_error_code | |||
#define sqlite3_test_control sqlite3_api->test_control | #define sqlite3_test_control sqlite3_api->test_control | |||
#define sqlite3_randomness sqlite3_api->randomness | #define sqlite3_randomness sqlite3_api->randomness | |||
#define sqlite3_context_db_handle sqlite3_api->context_db_handle | #define sqlite3_context_db_handle sqlite3_api->context_db_handle | |||
#define sqlite3_extended_result_codes sqlite3_api->extended_result_codes | ||||
#define sqlite3_limit sqlite3_api->limit | ||||
#define sqlite3_next_stmt sqlite3_api->next_stmt | ||||
#define sqlite3_sql sqlite3_api->sql | ||||
#define sqlite3_status sqlite3_api->status | ||||
#endif /* SQLITE_CORE */ | #endif /* SQLITE_CORE */ | |||
#define SQLITE_EXTENSION_INIT1 const sqlite3_api_routines *sqlite3_api; | #define SQLITE_EXTENSION_INIT1 const sqlite3_api_routines *sqlite3_api = 0; | |||
#define SQLITE_EXTENSION_INIT2(v) sqlite3_api = v; | #define SQLITE_EXTENSION_INIT2(v) sqlite3_api = v; | |||
#endif /* _SQLITE3EXT_H_ */ | #endif /* _SQLITE3EXT_H_ */ | |||
End of changes. 5 change blocks. | ||||
3 lines changed or deleted | 13 lines changed or added | |||