26 #include <libplayercore/playercore.h>
27 #include <libplayerwkb/playerwkb.h>
33 #define MAX_PSQL_STRING 256
39 double x0, y0, x1, y1;
42 #define BBOX(ptr) (reinterpret_cast<BoundingBox *>(ptr))
50 memset(&feature_data, 0,
sizeof feature_data);
58 memset(&feature_data, 0,
sizeof feature_data);
63 memset(&feature_data, 0,
sizeof feature_data);
64 name = string(feature->name);
65 attrib = string(feature->attrib);
66 wkb.assign(feature->wkb, (feature->wkb) + (feature->wkb_count));
69 const player_vectormap_feature_data_t* Convert();
74 player_vectormap_feature_data_t feature_data;
80 LayerInfoHolder() { memset(&layer_info,0,
sizeof(layer_info)); memset(&extent, 0,
sizeof(extent)); };
83 memset(&layer_info,0,
sizeof(layer_info));
89 memset(&layer_info,0,
sizeof(layer_info));
91 memset(&extent, 0,
sizeof(extent));
95 free(layer_info.name);
98 const player_vectormap_layer_info_t* Convert();
102 player_vectormap_layer_info_t layer_info;
111 memset(&layer_data, 0,
sizeof layer_data);
113 features = orig.features;
117 memset(&layer_data,0,
sizeof(layer_data));
122 memset(&layer_data, 0,
sizeof layer_data);
123 name = string(layer->name);
124 for (uint32_t ii = 0; ii < layer->features_count; ii++)
127 features.push_back(fd);
132 const player_vectormap_layer_data_t* Convert();
134 vector<FeatureDataHolder> features;
135 player_vectormap_layer_data_t layer_data;
142 VectorMapInfoHolder() { memset(&info, 0,
sizeof info); memset(&extent, 0,
sizeof extent); };
145 memset(&info, 0,
sizeof info);
146 srid = orig.srid; layers = orig.layers; extent = orig.extent;
151 this->srid = srid; this->extent = extent;
152 memset(&info, 0,
sizeof info);
155 const player_vectormap_info_t* Convert();
158 vector<LayerInfoHolder> layers;
160 player_vectormap_info_t info;
166 PostgresConn(
int debug = 0){ this->wkbprocessor = player_wkb_create_processor(); this->conn = NULL; this->debug = debug; };
167 virtual ~
PostgresConn(){
if (Connected()) Disconnect(); player_wkb_destroy_processor(this->wkbprocessor); };
168 bool Connect(
const char* dbname,
const char* host,
const char* user,
const char* password,
const char* port);
170 bool Connected() {
return (conn != NULL) && (PQstatus(conn) != CONNECTION_BAD); };
178 BoundingBox BinaryToBBox(
const uint8_t *binary, uint32_t length);
179 uint32_t Text2Bin(
const char * text,
unsigned char * bin, uint32_t maxlen);
180 playerwkbprocessor_t wkbprocessor;
183 static void bbcb(
void * bbox,
double x0,
double y0,
double x1,
double y1);
#define PLAYER_WARN1(msg, a)
Definition: error.h:90
const player_vectormap_feature_data_t * Convert()
Definition: dbconn.cc:389
static bool MatchMessage(player_msghdr_t *hdr, int type, int subtype, player_devaddr_t addr)
Helper for message processing.
Definition: message.h:159
double px
X [m].
Definition: player.h:231
Generic message header.
Definition: player.h:162
virtual int MainSetup(void)
Sets up the resources needed by the driver thread.
Definition: driver.h:658
#define PLAYER_WARN5(msg, a, b, c, d, e)
Definition: error.h:94
virtual void MainQuit(void)
Cleanup method for driver thread (called when main exits)
Definition: driver.h:664
const char * ReadString(int section, const char *name, const char *value)
Read a string value.
virtual void Main(void)=0
Main method for driver thread.
int ReadInt(int section, const char *name, int value)
Read an integer value.
#define PLAYER_MSGTYPE_DATA
A data message.
Definition: player.h:95
#define PLAYER_MSGTYPE_RESP_ACK
A positive response message.
Definition: player.h:112
#define PLAYER_WARN2(msg, a, b)
Definition: error.h:91
virtual int ProcessMessage(QueuePointer &resp_queue, player_msghdr *hdr, void *data)
Message handler.
#define PLAYER_MSGTYPE_REQ
A request message.
Definition: player.h:106
int ReadDeviceAddr(player_devaddr_t *addr, int section, const char *name, int code, int index, const char *key)
Read a device id.
Class for loading configuration file information.
Definition: configfile.h:197
int ReadTupleInt(int section, const char *name, int index, int value)
Read an integer from a tuple field.
#define PLAYER_CAPABILITIES_REQ
Capability request message type.
Definition: player.h:397
A device address.
Definition: player.h:146
An autopointer for the message queue.
Definition: message.h:74
Definition: create_comms.h:99
#define PLAYER_ERROR1(msg, a)
Definition: error.h:82
A pose in space.
Definition: player.h:229
#define PLAYER_ERROR(msg)
Definition: error.h:81
Base class for drivers which oeprate with a thread.
Definition: driver.h:553
#define PLAYER_MSGTYPE_CMD
A command message.
Definition: player.h:99
Base class for all drivers.
Definition: driver.h:109
#define PLAYER_WARN4(msg, a, b, c, d)
Definition: error.h:93
#define PLAYER_MSG2(level, msg, a, b)
Definition: error.h:107
#define PLAYER_MSGQUEUE_DEFAULT_MAXLEN
Default maximum length for a message queue.
Definition: player.h:76
T max(T a, T b)
Return the maximum of a, b.
Definition: utility.h:104