00001 /*************************************************************************** 00002 * Copyright (C) 2005-2007 Stefan Schwarzer, Jens Schneider, * 00003 * Matthias Hardt, Guido Madaus * 00004 * * 00005 * Copyright (C) 2007-2008 BerLinux Solutions GbR * 00006 * Stefan Schwarzer & Guido Madaus * 00007 * * 00008 * Copyright (C) 2009-2013 BerLinux Solutions GmbH * 00009 * * 00010 * Authors: * 00011 * Stefan Schwarzer <stefan.schwarzer@diskohq.org>, * 00012 * Matthias Hardt <matthias.hardt@diskohq.org>, * 00013 * Jens Schneider <jens.schneider@diskohq.org>, * 00014 * Guido Madaus <guido.madaus@diskohq.org>, * 00015 * Patrick Helterhoff <patrick.helterhoff@diskohq.org>, * 00016 * René Bählkow <rene.baehlkow@diskohq.org> * 00017 * * 00018 * This library is free software; you can redistribute it and/or * 00019 * modify it under the terms of the GNU Lesser General Public * 00020 * License version 2.1 as published by the Free Software Foundation. * 00021 * * 00022 * This library is distributed in the hope that it will be useful, * 00023 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00024 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 00025 * Lesser General Public License for more details. * 00026 * * 00027 * You should have received a copy of the GNU Lesser General Public * 00028 * License along with this library; if not, write to the * 00029 * Free Software Foundation, Inc., * 00030 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * 00031 **************************************************************************/ 00032 00033 #ifndef MMSDBCONNMGR_H_ 00034 #define MMSDBCONNMGR_H_ 00035 00036 #include "mmstools/interfaces/immsdb.h" 00037 00038 /** 00039 * @file mmsdbconnmgr.h 00040 * 00041 * Header file for MMSDBConnMgr class. 00042 * 00043 * @ingroup mmstools 00044 */ 00045 00046 #define DBMS_SQLITE3 "SQLITE3" /**< Use sqlite3 as database management system. */ 00047 #define DBMS_FREETDS "FREETDS" /**< Use freetds as database management system. */ 00048 #define DBMS_MYSQL "MYSQL" /**< Use mysql as database management system. */ 00049 00050 /** 00051 * Database connection manager class. 00052 * 00053 * This is the base class to connect to a configured database. 00054 */ 00055 class MMSDBConnMgr { 00056 public: 00057 /** 00058 * Constructor for database connection managers. 00059 * 00060 * @param datasource DataSource object, containing database settings 00061 */ 00062 MMSDBConnMgr(DataSource *datasource); 00063 00064 /** 00065 * Retrieve an interface to a database connection. 00066 * 00067 * @returns database connection interface 00068 */ 00069 IMMSDB *getConnection(); 00070 00071 private: 00072 DataSource *datasource; /**< Contains database settings. */ 00073 }; 00074 00075 #endif /*MMSDBCONNMGR_H_*/