Revert "Remove mysql and oracle resources for anna-ericsson project"
[anna.git] / include / anna / dbms / FailRecoveryHandler.hpp
diff --git a/include/anna/dbms/FailRecoveryHandler.hpp b/include/anna/dbms/FailRecoveryHandler.hpp
new file mode 100644 (file)
index 0000000..7519854
--- /dev/null
@@ -0,0 +1,44 @@
+// ANNA - Anna is Not Nothingness Anymore                                                         //
+//                                                                                                //
+// (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo                         //
+//                                                                                                //
+// See project site at http://redmine.teslayout.com/projects/anna-suite                           //
+// See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
+
+
+#ifndef anna_dbms_FailRecoveryHandler_hpp
+#define anna_dbms_FailRecoveryHandler_hpp
+
+namespace anna {
+
+namespace dbms {
+
+class Database;
+class Connection;
+
+/**
+   Interfaz que deben cumplir los manejadores que reciben la notificacion de que no ha sido posible
+   restaurar una determina conexion con la base de datos.
+*/
+class FailRecoveryHandler {
+protected:
+  /**
+     Este metodo debe ser reimplementado para describir las operaciones que vamos a realizar en caso
+     de no poder recuperar la conexion recibida como parametro.
+     \param connection Instancia de la conexion en la que hemos detectado el fallo.
+     \param tryCounter Numero de intentos de recuperacion de la conexion.
+
+     \warning Este metodo se invocara automaticamente desde anna::dbms::Database::recover.
+  */
+  virtual void apply(Connection& connection, const int tryCounter) throw(RuntimeException) = 0;
+
+  friend class Database;
+};
+
+}
+}
+
+#endif
+
+
+