eb1709e0d54ce4494b8ee03c25ff0e276c9b7269
[anna.git] / FailRecoveryHandler.hpp
1 // ANNA - Anna is Not Nothingness Anymore                                                         //
2 //                                                                                                //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo                         //
4 //                                                                                                //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite                           //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
7
8
9 #ifndef anna_dbms_FailRecoveryHandler_hpp
10 #define anna_dbms_FailRecoveryHandler_hpp
11
12 namespace anna {
13
14 namespace dbms {
15
16 class Database;
17 class Connection;
18
19 /**
20    Interfaz que deben cumplir los manejadores que reciben la notificacion de que no ha sido posible
21    restaurar una determina conexion con la base de datos.
22 */
23 class FailRecoveryHandler {
24 protected:
25   /**
26      Este metodo debe ser reimplementado para describir las operaciones que vamos a realizar en caso
27      de no poder recuperar la conexion recibida como parametro.
28      \param connection Instancia de la conexion en la que hemos detectado el fallo.
29      \param tryCounter Numero de intentos de recuperacion de la conexion.
30
31      \warning Este metodo se invocara automaticamente desde anna::dbms::Database::recover.
32   */
33   virtual void apply(Connection& connection, const int tryCounter) noexcept(false) = 0;
34
35   friend class Database;
36 };
37
38 }
39 }
40
41 #endif
42
43
44