00001 #ifndef DATABASESVC_H 00002 #define DATABASESVC_H 00003 00004 #include "GaudiKernel/Service.h" 00005 #include "DatabaseSvc/IDatabaseSvc.h" 00006 00007 #include <string> 00008 #include <mysql.h> 00009 00010 class DatabaseSvc : virtual public IDatabaseSvc, 00011 virtual public Service 00012 { 00013 00014 public: 00015 00016 // Constructor 00017 DatabaseSvc( const std::string& name, ISvcLocator* sl ); 00018 00019 // Destructor 00020 virtual ~DatabaseSvc(); 00021 00022 public: 00023 00024 // IInterface: query 00025 virtual StatusCode queryInterface( const InterfaceID& riid, void** ppvInterface ); 00026 00027 // Service: initialize 00028 virtual StatusCode initialize(); 00029 00030 // Service: finalize 00031 virtual StatusCode finalize(); 00032 00033 // makes MySQL query 00034 int query(const std::string& dbName, const std::string& sql, DatabaseRecordVector& res); 00035 00036 private: 00037 00038 std::string m_dbHost; 00039 std::string m_dbName; 00040 std::string m_dbUser; 00041 std::string m_dbPswd; 00042 00043 // Mysql connection to a database server 00044 MYSQL* m_conn; 00045 00046 }; 00047 00048 #endif