Go to the documentation of this file.00001 #ifndef COND_DBCommon_DbConnectionConfiguration_h
00002 #define COND_DBCommon_DbConnectionConfiguration_h
00003
00004
00005
00006
00010
00011
00012 #include <string>
00013
00014 #include "CoralBase/MessageStream.h"
00015 #include "RelationalAccess/IMonitoring.h"
00016
00017 namespace coral {
00018 class IConnectionServiceConfiguration;
00019 }
00020
00021 namespace edm{
00022 class ParameterSet;
00023 }
00024
00025 namespace cond{
00026 class CoralServiceManager;
00027
00028 enum DbConfigurationDefaults { CoralDefaults, CmsDefaults, ProdDefaults, ToolDefaults, WebDefaults};
00029
00030 class DbConnectionConfiguration{
00031 public:
00032 static std::vector<DbConnectionConfiguration>& defaultConfigurations();
00033 public:
00034 DbConnectionConfiguration();
00035 DbConnectionConfiguration( bool connectionSharing,
00036 int connectionTimeOut,
00037 bool readOnlySessionOnUpdateConnections,
00038 int connectionRetrialPeriod,
00039 int connectionRetrialTimeOut,
00040 bool poolAutomaticCleanUp,
00041 const std::string& authenticationPath,
00042 const std::string& transactionId,
00043 coral::MsgLevel msgLev,
00044 coral::monitor::Level monitorLev,
00045 bool SQLMonitoring );
00046
00047 DbConnectionConfiguration( const DbConnectionConfiguration& rhs);
00048 ~DbConnectionConfiguration();
00049 DbConnectionConfiguration& operator=( const DbConnectionConfiguration& rhs);
00050
00051 void setParameters( const edm::ParameterSet& connectionPset );
00052
00053 void setConnectionSharing( bool flag );
00054 void setConnectionTimeOut( int timeOut );
00055 void setReadOnlySessionOnUpdateConnections( bool flag );
00056 void setConnectionRetrialPeriod( int period );
00057 void setConnectionRetrialTimeOut( int timeout );
00058 void setPoolAutomaticCleanUp( bool flag );
00059
00060 void setAuthenticationPath( const std::string& p );
00061
00062 void setTransactionId( std::string const & tid);
00063
00064 void setMessageLevel( coral::MsgLevel l );
00065
00066 void setMonitoringLevel( coral::monitor::Level l );
00067
00068 void setSQLMonitoring( bool flag );
00069
00070 void configure( coral::IConnectionServiceConfiguration& coralConfig) const;
00071
00072 bool isConnectionSharingEnabled() const;
00073 int connectionTimeOut() const;
00074 bool isReadOnlySessionOnUpdateConnectionEnabled() const;
00075 int connectionRetrialPeriod() const;
00076 int connectionRetrialTimeOut() const;
00077 bool isPoolAutomaticCleanUpEnabled() const;
00078 const std::string& authenticationPath() const;
00079 const std::string& transactionId() const;
00080 coral::MsgLevel messageLevel() const;
00081 bool isSQLMonitoringEnabled() const;
00082 private:
00083 std::pair<bool,bool> m_connectionSharing;
00084 std::pair<bool,int> m_connectionTimeOut;
00085 std::pair<bool,bool> m_readOnlySessionOnUpdateConnections;
00086 std::pair<bool,int> m_connectionRetrialPeriod;
00087 std::pair<bool,int> m_connectionRetrialTimeOut;
00088 std::pair<bool,bool> m_poolAutomaticCleanUp;
00089 std::string m_authPath;
00090 std::string m_transactionId;
00091 coral::MsgLevel m_messageLevel;
00092 coral::monitor::Level m_monitoringLevel;
00093
00094
00095 bool m_SQLMonitoring;
00096 CoralServiceManager* m_pluginManager;
00097 };
00098 }
00099 #endif