diff options
Diffstat (limited to 'project2/rdbmsDataSource.h')
-rw-r--r-- | project2/rdbmsDataSource.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/project2/rdbmsDataSource.h b/project2/rdbmsDataSource.h index ee75550..e5709b7 100644 --- a/project2/rdbmsDataSource.h +++ b/project2/rdbmsDataSource.h @@ -9,14 +9,24 @@ class _RdbmsDataSource : public _DataSource { public: + typedef boost::shared_ptr<ODBC::Connection> ConnectionPtr; + typedef std::map<std::string, std::string> ReadonlyDSNs; // Map hostname to DSN string + typedef std::map<std::string, ConnectionPtr> DBHosts; // Map DSN strings to connections _RdbmsDataSource(const xmlpp::Element * p); ODBC::Connection & getReadonly() const; ODBC::Connection & getWritable() const; virtual void commit(); virtual void rollback(); const std::string masterDsn; + const bool preferLocal; + + protected: + static ConnectionPtr connectTo(const std::string & dsn); + ReadonlyDSNs roDSNs; + private: - mutable boost::shared_ptr<ODBC::Connection> database; + mutable std::string localhost; + static DBHosts dbhosts; }; typedef boost::shared_ptr<_RdbmsDataSource> RdbmsDataSource; typedef std::map<std::string, RdbmsDataSource> RdbmsDataSources; |