1#ifndef DatabaseFactory_h
2#define DatabaseFactory_h
16#include <QSqlDatabase>
18#include "CollectorMap.h"
19#include "IException.h"
311 bool isAvailable(
const QString &dbname =
"")
const;
318 bool setAsDefault =
false);
319 void remove(
const QString &dbname);
320 void destroy(
const QString &dbname);
332 typedef CollectorMap<IString, QString, NoCaseStringCompare>
Drivers;
334 typedef CollectorMap<IString, DbProfile, NoCaseStringCompare>
Profiles;
336 typedef CollectorMap<IString, QSqlDatabase, NoCaseStringCompare>
Databases;
bool exists(const K &key) const
Checks the existance of a particular key in the list.
Create database interfaces using access profiles or generic drivers.
QSqlDatabase create(const QString &driver, const QString &dbname)
Create a database using the named driver.
CollectorMap< IString, DbProfile, NoCaseStringCompare > Profiles
Define list of Profiles.
static DatabaseFactory * getInstance()
Returns and instance of this DatabaseFactory singleton.
void destroy(const QString &dbname)
Removes the database from the connection pool and destroys it.
void remove(const QString &dbname)
Removes the database from the connection pool.
DatabaseFactory()
Constructor establishing the startup state of this singleton.
DbProfile getProfile(const QString &name="") const
Get the specified database access profile.
static DatabaseFactory * _factory
Pointer to self (singleton)
void add(const QSqlDatabase &db, const QString &name, bool setAsDefault=false)
Adds the database to the connection pool making it persistant.
bool isDriverAvailable(const QString &driver) const
Check for the existance of a specific database driver.
CollectorMap< IString, QSqlDatabase, NoCaseStringCompare > Databases
Define active database maintainer.
bool isPersistant(const QString &name) const
Checks if the database resource is persistant.
std::vector< QString > available() const
Determine what database drivers are available.
bool addAccessProfile(const QString &profileFile)
Establishes an access profile for subsequent database connections.
void selfDestruct()
Destroy all elements associated with this object.
Drivers getResourceList(bool drivers, bool connections) const
Get a list of available database drivers and connections.
static void DieAtExit()
Exit termination routine.
bool isAvailable(const QString &dbname="") const
Check for availablity of a database connection resource.
void addProfile(const DbProfile &profile)
Adds a database access profile to the list of profiles.
Databases _dbList
Maintains active databases.
bool setDefaultProfileName(const QString &name)
Sets the default profile to the name provided.
QString getDefault() const
Returns the name of the default database.
void init()
Initializes this object upon instantiation.
void initPreferences()
Initializes user database preferences.
std::vector< QString > getProfileList() const
Return list of names of currently available profiles.
bool isConnected(const QString &dbname) const
Determines if the database resource is connected.
~DatabaseFactory()
Destructor implements self-destruction of this object.
void loadDrivers()
Load any drivers explicity.
QString _defDatabase
Name of default database.
Profiles _profiles
Maintain list of profiles.
void setDefault(const QString &name)
Sets the default name of the database.
QString getDefaultProfileName() const
Returns the name of the default profile.
CollectorMap< IString, QString, NoCaseStringCompare > Drivers
Define list of drivers and/or databases
QString _defProfName
Default profile name.
A DbProfile is a container for access parameters to a database.
This is free and unencumbered software released into the public domain.