#ifndef __XIOS_CGroupFactory__ #define __XIOS_CGroupFactory__ /// boost headers /// #include /// XIOS headers /// #include "xios_spl.hpp" #include "exception.hpp" #include "object_factory.hpp" #include "group_template.hpp" #include "xml_parser.hpp" namespace xios { /// ////////////////////// Déclarations ////////////////////// /// class CGroupFactory { public : /// Mutateurs /// static void SetCurrentContextId(const StdString & context); template static void AddGroup(boost::shared_ptr pgroup, boost::shared_ptr cgroup); template static void AddChild(boost::shared_ptr group, boost::shared_ptr child); /// Accesseurs /// static StdString & GetCurrentContextId(void); template static boost::shared_ptr GetGroup(boost::shared_ptr group, const StdString & id); template static boost::shared_ptr GetChild(boost::shared_ptr group, const StdString & id); template static int GetGroupNum(boost::shared_ptr group); template static int GetGroupIdNum(boost::shared_ptr group); template static int GetChildNum(boost::shared_ptr group); template static int GetChildIdNum(boost::shared_ptr group); /// Tests /// template static bool HasGroup(boost::shared_ptr group, const StdString & id); template static bool HasChild(boost::shared_ptr group, const StdString & id); /// Instanciateur /// template static boost::shared_ptr CreateGroup(boost::shared_ptr group, const StdString & id = StdString("")); template static boost::shared_ptr CreateChild(boost::shared_ptr group, const StdString & id = StdString("")); private : /// Propriétés statiques /// static StdString CurrContext; }; // class CGroupFactory } // namespace xios //#include "group_factory_impl.hpp" //#include "group_parser.hpp" #endif // __XIOS_CGroupFactory__