SVN commit 600842 by dagnele: World became a Singleton M +17 -15 World.cpp M +10 -9 World.h --- trunk/playground/base/qrdf/src/World.cpp #600841:600842 @@ -18,35 +18,37 @@ * Boston, MA 02110-1301, USA. */ +#include + #include "World.h" using namespace RDF; -struct World::Private +World *World::m_instance = NULL; + +World *World::self() { - Private() : world(0L) - {} - librdf_world* world; -}; + if ( !m_instance ) + { + qDebug( "new World()\n" ); + m_instance = new World(); + } + return m_instance; +} + World::World() { - d = new Private; - d->world = librdf_new_world(); + m_world = librdf_new_world(); + librdf_world_open( m_world ); } World::~World() { - librdf_free_world( d->world ); - delete d; + librdf_free_world( m_world ); } -void World::open() -{ - librdf_world_open( d->world ); -} - librdf_world* World::worldPtr() const { - return d->world; + return m_world; } --- trunk/playground/base/qrdf/src/World.h #600841:600842 @@ -18,8 +18,8 @@ * Boston, MA 02110-1301, USA. */ -#ifndef REDLAND_WORLD_H -#define REDLAND_WORLD_H +#ifndef RDF_REDLAND_WORLD_H +#define RDF_REDLAND_WORLD_H #include @@ -29,20 +29,21 @@ class World { public: - World(); + static World *self(); + ~World(); - - void open(); - + librdf_world* worldPtr() const; private: + World(); World( const World &other ) {}; - class Private; - Private *d; + librdf_world * m_world; + + static World *m_instance; }; } -#endif +#endif // RDF_REDLAND_WORLD_H