Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

StDbServerImpl Class Reference

#include <StDbServerImpl.hh>

Inheritance diagram for StDbServerImpl:

StDbServer List of all members.

Public Member Functions

 StDbServerImpl ()
 StDbServerImpl (const char *name, const char *host, const char *socket, int port)
 StDbServerImpl (StDbServerImpl &server)
virtual ~StDbServerImpl ()
virtual void addDataBase (StDbType type, StDbDomain domain)
virtual void addDataBase (const char *typeName, const char *domName)
virtual StDataBaseIuseDb (StDbType type, StDbDomain domain)
virtual StDataBaseIuseDb (const char *typeName, const char *domName)
virtual StDataBaseIuseDb ()
virtual bool isConnected ()
virtual void closeConnection ()
virtual void setTimeLogging (bool isTimeLogged)
virtual double getQueryTimes ()
virtual double getSocketTimes ()
virtual double getConnectTimes ()
void PointMysqlDb (StDbManagerImpl *m)

Protected Member Functions

void deleteDataBases ()

Protected Attributes

MysqlDb Db
StDbBuffer buff
StDataBaseImcurrentDb
DbList mdataBases

Constructor & Destructor Documentation

StDbServerImpl::StDbServerImpl  ) 
 

Definition at line 43 of file StDbServerImpl.cc.

00043 : StDbServer(), mcurrentDb(0){}

StDbServerImpl::StDbServerImpl const char *  name,
const char *  host,
const char *  socket,
int  port
 

Definition at line 45 of file StDbServerImpl.cc.

00045 : StDbServer(name,host,sock,port), mcurrentDb(0) {};

StDbServerImpl::StDbServerImpl StDbServerImpl server  ) 
 

Definition at line 47 of file StDbServerImpl.cc.

00047 : StDbServer(server), mcurrentDb(0){}

StDbServerImpl::~StDbServerImpl  )  [virtual]
 

Definition at line 49 of file StDbServerImpl.cc.

00049 { deleteDataBases(); }


Member Function Documentation

void StDbServerImpl::addDataBase const char *  typeName,
const char *  domName
[virtual]
 

Implements StDbServer.

Definition at line 67 of file StDbServerImpl.cc.

00067 { 00068 00069 if(!useDb(type,domain)){ 00070 mcurrentDb = new StDbSql(Db,buff,type,domain); 00071 if(!Db.IsConnected())Db.Connect(mhostName,muserName,mpword,mcurrentDb->printDbName(),mportNumber); 00072 mcurrentDb->use(); 00073 mdataBases.push_back(mcurrentDb); 00074 } 00075 }

void StDbServerImpl::addDataBase StDbType  type,
StDbDomain  domain
[virtual]
 

Implements StDbServer.

Definition at line 54 of file StDbServerImpl.cc.

00054 { 00055 00056 StDataBaseI* db=useDb(type,domain); 00057 if(!db){ 00058 mcurrentDb = new StDbSql(Db,buff,type,domain); 00059 if(!Db.IsConnected())Db.Connect(mhostName,muserName,mpword,mcurrentDb->printDbName(),mportNumber); 00060 mcurrentDb->use(); 00061 mdataBases.push_back(mcurrentDb); 00062 } 00063 }

void StDbServerImpl::closeConnection  )  [virtual]
 

Implements StDbServer.

Definition at line 154 of file StDbServerImpl.cc.

00154 { Db.Close(); }

void StDbServerImpl::deleteDataBases  )  [protected]
 

Definition at line 137 of file StDbServerImpl.cc.

00137 { 00138 00139 DbList::iterator itr; 00140 StDataBaseI* db; 00141 do { 00142 for(itr = mdataBases.begin(); itr != mdataBases.end(); ++itr){ 00143 db = *itr; 00144 mdataBases.erase(itr); 00145 delete db; 00146 break; 00147 } 00148 } while( mdataBases.begin() != mdataBases.end() ); 00149 00150 }

double StDbServerImpl::getConnectTimes  )  [virtual]
 

Implements StDbServer.

Definition at line 159 of file StDbServerImpl.cc.

00159 {return Db.mconnectLog.getTotalTimes();};

double StDbServerImpl::getQueryTimes  )  [virtual]
 

Implements StDbServer.

Definition at line 157 of file StDbServerImpl.cc.

00157 {return Db.mqueryLog.getTotalTimes();};

double StDbServerImpl::getSocketTimes  )  [virtual]
 

Implements StDbServer.

Definition at line 158 of file StDbServerImpl.cc.

00158 {return Db.msocketLog.getTotalTimes();};

bool StDbServerImpl::isConnected  )  [virtual]
 

Implements StDbServer.

Definition at line 153 of file StDbServerImpl.cc.

00153 { return Db.IsConnected(); }

void StDbServerImpl::PointMysqlDb StDbManagerImpl m  )  [inline]
 

Definition at line 90 of file StDbServerImpl.hh.

00090 {Db.my_manager = m;}

void StDbServerImpl::setTimeLogging bool  isTimeLogged  )  [virtual]
 

Implements StDbServer.

Definition at line 156 of file StDbServerImpl.cc.

00156 { Db.mlogTime=isTLog; }

StDataBaseI * StDbServerImpl::useDb  )  [virtual]
 

Implements StDbServer.

Definition at line 121 of file StDbServerImpl.cc.

00121 { 00122 00123 if(!mcurrentDb){ 00124 mcurrentDb= new StDbSql(Db,buff,dbServer,dbStar); 00125 mcurrentDb->use(); 00126 mdataBases.push_back(mcurrentDb); 00127 } 00128 00129 if(Db.IsConnected() || 00130 Db.Connect(mhostName,muserName,mpword,mcurrentDb->printDbName(),mportNumber)) return mcurrentDb; 00131 00132 return (StDataBaseI*) NULL; 00133 }

StDataBaseI * StDbServerImpl::useDb const char *  typeName,
const char *  domName
[virtual]
 

Implements StDbServer.

Definition at line 100 of file StDbServerImpl.cc.

00100 { 00101 00102 if( mcurrentDb && 00103 mcurrentDb->checkDbType(type) && 00104 mcurrentDb->checkDbDomain(domain)) return mcurrentDb; 00105 00106 StDataBaseI* db=0; 00107 for(DbList::iterator itr = mdataBases.begin(); 00108 itr != mdataBases.end(); ++itr){ 00109 if((*itr)->checkDbType(type) && (*itr)->checkDbDomain(domain)){ 00110 mcurrentDb=*itr; 00111 mcurrentDb->use(); 00112 db=mcurrentDb; 00113 break; 00114 } 00115 } 00116 return db; 00117 }

StDataBaseI * StDbServerImpl::useDb StDbType  type,
StDbDomain  domain
[virtual]
 

Implements StDbServer.

Definition at line 79 of file StDbServerImpl.cc.

00079 { 00080 00081 if(mcurrentDb && 00082 mcurrentDb->getDbType()==type && 00083 mcurrentDb->getDbDomain()==domain) return mcurrentDb; 00084 00085 StDataBaseI* db=0; // return null if not found 00086 for(DbList::iterator itr = mdataBases.begin(); 00087 itr != mdataBases.end(); ++itr){ 00088 if(type==(*itr)->getDbType() && domain==(*itr)->getDbDomain()){ 00089 mcurrentDb=*itr; 00090 mcurrentDb->use(); 00091 db=mcurrentDb; 00092 break; 00093 } 00094 } 00095 return db; 00096 }


Member Data Documentation

StDbBuffer StDbServerImpl::buff [protected]
 

Definition at line 62 of file StDbServerImpl.hh.

MysqlDb StDbServerImpl::Db [protected]
 

Definition at line 61 of file StDbServerImpl.hh.

StDataBaseI* StDbServerImpl::mcurrentDb [protected]
 

Definition at line 64 of file StDbServerImpl.hh.

DbList StDbServerImpl::mdataBases [protected]
 

Definition at line 65 of file StDbServerImpl.hh.


The documentation for this class was generated from the following files:
Generated on Thu Aug 24 14:46:01 2006 for Doxygen by doxygen 1.3.7