Sirikata
|
Class to manage SQLite connections so they can be shared by multiple classes or objects. More...
#include <SQLite.hpp>
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 SQLite & | getSingleton () |
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 |
Class to manage SQLite connections so they can be shared by multiple classes or objects.
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] |
Sirikata::SQLite::SQLite | ( | ) |
Sirikata::SQLite::~SQLite | ( | ) |
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.
name | the name of the database to open or connect to |
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] |
SharedMutex Sirikata::SQLite::mDBMutex [private] |
Referenced by open().
DBMap Sirikata::SQLite::mDBs [private] |
Referenced by open().