summaryrefslogtreecommitdiff
path: root/project2/rdbmsDataSource.h
diff options
context:
space:
mode:
Diffstat (limited to 'project2/rdbmsDataSource.h')
-rw-r--r--project2/rdbmsDataSource.h12
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;