source: XIOS3/trunk/src/node/service_node.hpp @ 2458

Last change on this file since 2458 was 2458, checked in by ymipsl, 17 months ago

Merge XIOS_FILE_SERVICE dev branch into trunk

YM

  • Property svn:executable set to *
File size: 2.1 KB
Line 
1#ifndef __XIOS_CServiceNode__
2#define __XIOS_CServiceNode__
3
4#include "xios_spl.hpp"
5#include "attribute_enum.hpp"
6#include "attribute_enum_impl.hpp"
7#include "attribute_array.hpp"
8#include "declare_attribute.hpp"
9#include "object_template.hpp"
10#include "group_factory.hpp"
11#include "declare_group.hpp"
12
13
14namespace xios
15{
16  /// ////////////////////// Déclarations ////////////////////// ///
17
18  class CServiceNodeGroup;
19  class CServiceNodeAttributes;
20  class CServiceNode;
21  ///--------------------------------------------------------------
22
23  // Declare/Define CVarAttribute
24  BEGIN_DECLARE_ATTRIBUTE_MAP(CServiceNode)
25#include "service_attribute.conf"
26  END_DECLARE_ATTRIBUTE_MAP(CServiceNode)
27
28  ///--------------------------------------------------------------
29
30  class CServiceNode: public CObjectTemplate<CServiceNode>
31               , public CServiceNodeAttributes
32  {
33      friend class CCServiceNodeGroup;
34
35      /// typedef ///
36      typedef CObjectTemplate<CServiceNode>   SuperClass;
37      typedef CServiceNodeAttributes SuperClassAttribute;
38
39    public :
40
41      typedef CServiceNodeAttributes RelAttributes;
42      typedef CServiceNodeGroup      RelGroup;
43
44      /// Constructeurs ///
45      CServiceNode(void) ;
46      explicit CServiceNode(const StdString & id);
47      CServiceNode(const CServiceNode & var);       // Not implemented yet.
48      CServiceNode(const CServiceNode * const var); // Not implemented yet.
49   
50      /// Destructeur ///
51      virtual ~CServiceNode(void);
52     
53    public :
54      /// Accesseurs statiques ///
55      static StdString GetName(void)     { return StdString("service"); }
56      static StdString GetDefName(void)  { return StdString("service"); }
57      static ENodeType GetType(void)     { return eServiceNode; }
58    public:
59      virtual void parse(xml::CXMLNode & node);
60      void allocateRessources(const string& poolId) ;
61
62  }; // class CServiceNode
63  ///--------------------------------------------------------------
64
65  // Declare/Define CServiceNodeGroup and CServiceNodeDefinition
66  DECLARE_GROUP(CServiceNode);
67} // namespace xios
68
69#endif // __XIOS_CServiceNode__
Note: See TracBrowser for help on using the repository browser.