Sirikata
Public Member Functions | Static Public Member Functions | Private Types | Private Attributes
Sirikata::SQLite Class Reference

Class to manage SQLite connections so they can be shared by multiple classes or objects. More...

#include <SQLite.hpp>

Inheritance diagram for Sirikata::SQLite:
Collaboration diagram for Sirikata::SQLite:

List of all members.

Public Member Functions

 SQLite ()
 ~SQLite ()
SQLiteDBPtr open (const String &name)
 Open a SQLite database or get the existing reference to it.

Static Public Member Functions

static std::pair< bool, String > check_sql_error (sqlite3 *db, int rc, char **sql_error_msg, const String &msg)
static const String & resultAsString (int rc)
static SQLitegetSingleton ()
static void destroy ()

Private Types

typedef
boost::thread_specific_ptr
< WeakSQLiteDBPtr
ThreadDBPtr
typedef std::map< String,
std::tr1::shared_ptr
< ThreadDBPtr > > 
DBMap
typedef boost::shared_mutex SharedMutex
typedef boost::shared_lock
< SharedMutex
SharedLock
typedef boost::upgrade_lock
< SharedMutex
UpgradeLock
typedef
boost::upgrade_to_unique_lock
< SharedMutex
UpgradedLock
typedef boost::unique_lock
< SharedMutex
ExclusiveLock

Private Attributes

DBMap mDBs
SharedMutex mDBMutex

Detailed Description

Class to manage SQLite connections so they can be shared by multiple classes or objects.


Member Typedef Documentation

typedef std::map<String, std::tr1::shared_ptr<ThreadDBPtr> > Sirikata::SQLite::DBMap [private]
typedef boost::unique_lock<SharedMutex> Sirikata::SQLite::ExclusiveLock [private]
typedef boost::shared_lock<SharedMutex> Sirikata::SQLite::SharedLock [private]
typedef boost::shared_mutex Sirikata::SQLite::SharedMutex [private]
typedef boost::thread_specific_ptr<WeakSQLiteDBPtr> Sirikata::SQLite::ThreadDBPtr [private]
typedef boost::upgrade_to_unique_lock<SharedMutex> Sirikata::SQLite::UpgradedLock [private]
typedef boost::upgrade_lock<SharedMutex> Sirikata::SQLite::UpgradeLock [private]

Constructor & Destructor Documentation

Sirikata::SQLite::SQLite ( )
Sirikata::SQLite::~SQLite ( )

Member Function Documentation

std::pair< bool, String > Sirikata::SQLite::check_sql_error ( sqlite3 *  db,
int  rc,
char **  sql_error_msg,
const String &  msg 
) [static]
void Sirikata::SQLite::destroy ( ) [static]

Reimplemented from Sirikata::AutoSingleton< SQLite >.

SQLite & Sirikata::SQLite::getSingleton ( ) [static]
SQLiteDBPtr Sirikata::SQLite::open ( const String &  name)

Open a SQLite database or get the existing reference to it.

Simply discarding the resulting database reference is sufficient, there is no need for explicitly cleaning up the connection.

Parameters:
namethe name of the database to open or connect to
Returns:
a shared ptr to the database connection

References mDBMutex, mDBs, and name().

Referenced by Sirikata::SQLiteObjectFactory::generate(), Sirikata::OH::SQLiteStorage::initDB(), Sirikata::OH::SQLitePersistedObjectSet::initDB(), and Sirikata::SQLiteAuthenticator::start().

const String & Sirikata::SQLite::resultAsString ( int  rc) [static]

Member Data Documentation

Referenced by open().

Referenced by open().


The documentation for this class was generated from the following files: