9 #ifndef anna_dbms_Database_hpp 10 #define anna_dbms_Database_hpp 31 class FailRecoveryHandler;
32 class StatementTranslator;
42 static const int MaxConnection = 32;
48 enum _v { Local, Remote } value;
52 operator int ()
const {
return value; }
73 const std::string&
getName()
const {
return a_name; }
100 Connection* createConnection(
const char* name,
const char* user,
const char* password)
109 Connection& findConnection(
const char* name) noexcept(
false);
136 Statement* createStatement(
const char* name,
const char* expression,
const bool isCritical =
true)
154 return createStatement(name, expression.c_str(), isCritical);
163 Statement* findStatement(
const char* name) ;
170 void releaseStatement(
Statement* statement) ;
182 const_statement_iterator
statement_end()
const {
return a_statements.end(); }
195 virtual std::string asString()
const ;
219 Database(
const char* rdbmsmsName,
const char* dbmsName);
228 void recover(
Connection& connection,
const int tryCounter) noexcept(
false);
236 virtual void do_initialize() noexcept(false);
242 virtual
void do_stop() ;
248 connection_iterator connection_begin() {
return a_connections.begin(); }
264 const std::string a_name;
265 std::vector <Connection*> a_connections;
266 std::vector <Statement*> a_statements;
273 void do_cloneChild() noexcept(
false);
275 virtual Connection* allocateConnection(
const std::string& name,
const char* user,
const char* password)
278 virtual Statement* allocateStatement(
const char* name,
const std::string& expression,
const bool isCritical)
281 virtual InputBind* allocateInputBind(
const char* name,
Data& data)
283 virtual void deallocate(
InputBind* inputBind) = 0;
285 virtual OutputBind* allocateOutputBind(
const char* name,
Data& data)
287 virtual void deallocate(
OutputBind* outputBind) = 0;
_v
Definition: Database.hpp:48
connection_iterator connection_end()
Definition: Database.hpp:254
Definition: Connection.hpp:38
std::vector< Connection * >::iterator connection_iterator
Definition: Database.hpp:212
static const Connection * connection(const_connection_iterator &ii)
Definition: Database.hpp:209
const Type & getType() const
Definition: Database.hpp:67
Type(const _v v)
Definition: Database.hpp:50
const_connection_iterator connection_end() const
Definition: Database.hpp:121
void setStatementTranslator(StatementTranslator *statementTranslator)
Definition: Database.hpp:87
Definition: Statement.hpp:43
Statement * createStatement(const char *name, const std::string &expression, const bool isCritical=true) noexcept(false)
Definition: Database.hpp:152
std::vector< Statement * >::const_iterator const_statement_iterator
Definition: Database.hpp:56
const_statement_iterator statement_begin() const
Definition: Database.hpp:176
Definition: Database.hpp:37
Definition: Database.hpp:47
Definition: OutputBind.hpp:26
const_statement_iterator statement_end() const
Definition: Database.hpp:182
const std::string & getName() const
Definition: Database.hpp:73
void setFailRecoveryHandler(FailRecoveryHandler *failRecoveryHandler)
Definition: Database.hpp:81
const_connection_iterator connection_begin() const
Definition: Database.hpp:115
Type()
Definition: Database.hpp:49
Definition: StatementTranslator.hpp:44
Definition: Component.hpp:44
Type(const Type &v)
Definition: Database.hpp:51
static Connection * connection(connection_iterator &ii)
Definition: Database.hpp:261
static Statement * statement(const_statement_iterator &ii)
Definition: Database.hpp:189
Definition: ResultCode.hpp:29
Definition: FailRecoveryHandler.hpp:23
std::vector< Connection * >::const_iterator const_connection_iterator
Definition: Database.hpp:55