[postgis-devel] [off-topic] Integrating C++ singletons into postgresql extensions???

Stephen Woodbridge woodbri at swoodbridge.com
Fri Oct 17 11:32:54 PDT 2014


Hi,

I've been writing some new VRP solutions for pgRouting in C++ and I have 
a few singleton classes like:

1. Config object that holds some general configuration information.
2. Stats object for global stats collection.
3. Logger object for enabling/disabling debug logging to a file.
4. curlpp class for making outbound calls to OSRM from the c++ code

I can probably do without 1-3 if I had to when the code is integrated, 
but they are handy to keep around in the code for when we are developing 
and working outside the postgresql database. And, would like to avoid 
cluttering the code with tons of #ifdef.

Item 4 is a little more problematic and needs to be kept around or 
something else implemented to take its place.

So my question(s) are:

1. Any insights into singletons working/not working within the 
postgresql server extensions? My understanding is that these are 
implemented as global static classes with a lifetime of the process and 
they have no destructor, so I'm a little worried about memory leaks or 
multiple queries sharing the singleton.

2. Is there another way of doing this for C++ code in the server?

3. What does PostGIS or GEOS do for logging?

Any help or ideas would be appreciated.

Thanks,
   -Steve



More information about the postgis-devel mailing list