#ifndef __XMLIO_CField__ #define __XMLIO_CField__ /// xmlioserver headers /// #include "xmlioserver_spl.hpp" #include "group_factory.hpp" #include "functor.hpp" #include "functor_type.hpp" #include "declare_group.hpp" namespace xmlioserver { namespace tree { /// ////////////////////// Déclarations ////////////////////// /// class CFieldGroup; class CFieldAttributes; class CField; class CFile; class CGrid; ///-------------------------------------------------------------- // Declare/Define CFieldAttribute BEGIN_DECLARE_ATTRIBUTE_MAP(CField) #include "field_attribute.conf" END_DECLARE_ATTRIBUTE_MAP(CField) ///-------------------------------------------------------------- class CField : public CObjectTemplate , public CFieldAttributes { /// friend /// friend class CFile; /// typedef /// typedef CObjectTemplate SuperClass; typedef CFieldAttributes SuperClassAttribute; public : typedef CFieldAttributes RelAttributes; typedef CFieldGroup RelGroup; /// Constructeurs /// CField(void); explicit CField(const StdString & id); CField(const CField & field); // Not implemented yet. CField(const CField * const field); // Not implemented yet. /// Accesseurs /// boost::shared_ptr getDirectFieldReference(void) const; const boost::shared_ptr getBaseFieldReference(void) const; const std::vector > & getAllReference(void) const; boost::shared_ptr getRelGrid(void) const ; boost::shared_ptr getRelFile(void) const ; const StdString & getBaseFieldId(void) const; /// Mutateur /// void setRelFile(const boost::shared_ptr _file); public : /// Test /// bool hasDirectFieldReference(void) const; /// Traitements /// void solveRefInheritance(void); void solveGridReference(void); void solveOperation(void); /// Destructeur /// virtual ~CField(void); /// Accesseurs statiques /// static StdString GetName(void); static StdString GetDefName(void); static ENodeType GetType(void); private : /// Propriétés privées /// boost::shared_ptr baseRefObject; std::vector > refObject; boost::shared_ptr grid ; boost::shared_ptr file; func::CFunctor * foperation; }; // class CField ///-------------------------------------------------------------- // Declare/Define CFieldGroup and CFieldDefinition DECLARE_GROUP(CField); } // namespace tree ///----------------------------------------------------------------- template <> void CGroupTemplate::solveRefInheritance(void); } // namespace xmlioserver #endif // __XMLIO_CField__