Remove dynamic exceptions
[anna.git] / include / anna / comm / Resource.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_comm_Resource_hpp
10 #define anna_comm_Resource_hpp
11
12 #include <anna/core/mt/Resource.hpp>
13
14 namespace anna {
15
16 namespace xml {
17 class Node;
18 }
19
20 namespace comm {
21
22 /**
23    Clase que modela un recurso de acceso compartido.
24 */
25 class Resource : public anna::Resource {
26 public:
27   /**
28      Devuelve un nodo XML con la informacin referente a este objeto.
29      \param parent Nodo XML a partir del cual introducir la informacin.
30      \return Un nodo XML con la informacin referente a este objeto.
31   */
32   virtual xml::Node* asXML(xml::Node* parent) const noexcept(false);
33
34   /**
35      Amplia la informacion XML del nodo recibido como parametro.
36      \param node Nodo XML en el que incorporar los atributos.
37   */
38   virtual void asAttribute(xml::Node* node) const noexcept(false);
39
40 protected:
41   /**
42      Constructor.
43      \param name Nombre logico de este recurso remoto.
44      \param mode Modo de actuacion de esta instancia en modo ST cuando montamos una seccion critca sobre este objeto.
45       En modo MT siempre sera Mode::Normal, es decir abre una seccion critica sobre este objeto, que bloqueara a
46       cualquier otro thread que intente acceder a el.
47   */
48   Resource(const std::string& name) :  anna::Resource(name) {;}
49 };
50
51 }
52 }
53
54 #endif