#ifndef __XIOS_DECLARE_GROUP__ #define __XIOS_DECLARE_GROUP__ /// ///////////////////////////// Macros ///////////////////////////// /// #define DECLARE_GROUP(type) \ class type##Group \ : public CGroupTemplate \ { \ public: \ typedef type RelChild; \ typedef type##Group RelGroup; \ typedef type##Attributes RelAttributes; \ \ type##Group(void) \ : CGroupTemplate () \ { /* Ne rien faire de plus */ } \ type##Group(const StdString& _id) \ : CGroupTemplate (_id) \ { /* Ne rien faire de plus */ } \ \ static ENodeType GetType(void) \ { return static_cast(RelChild::GetType()+1); } \ \ virtual ~type##Group(void) \ { /* Ne rien faire de plus */ } \ }; \ typedef type##Group type##Definition #define DECLARE_GROUP_PARSE_REDEF(type) \ class type##Group \ : public CGroupTemplate \ { \ public: \ typedef type RelChild; \ typedef type##Group RelGroup; \ typedef type##Attributes RelAttributes; \ typedef CGroupTemplate \ SuperClass; \ \ type##Group(void) \ : CGroupTemplate () \ { /* Ne rien faire de plus */ } \ type##Group(const StdString& _id) \ : CGroupTemplate (_id) \ { /* Ne rien faire de plus */ } \ \ static ENodeType GetType(void) \ { return static_cast(RelChild::GetType()+1); } \ \ virtual void parse(xml::CXMLNode & node, bool withAttr = true); \ \ virtual ~type##Group(void) \ { /* Ne rien faire de plus */ } \ }; \ typedef type##Group type##Definition #endif // __XIOS_DECLARE_GROUP__