source:
vendors/XIOS/r_357/src/object_factory.hpp
@
8339
Last change on this file since 8339 was 3428, checked in by rblod, 12 years ago | |
---|---|
File size: 1.9 KB |
Line | |
---|---|
1 | #ifndef __XMLIO_CObjectFactory__ |
2 | #define __XMLIO_CObjectFactory__ |
3 | |
4 | /// boost headers /// |
5 | #include <boost/shared_ptr.hpp> |
6 | |
7 | /// xios headers /// |
8 | #include "xmlioserver_spl.hpp" |
9 | #include "exception.hpp" |
10 | #include "object_template.hpp" |
11 | |
12 | namespace xios |
13 | { |
14 | /// ////////////////////// Déclarations ////////////////////// /// |
15 | class CObjectFactory |
16 | { |
17 | public : |
18 | |
19 | /// Mutateurs /// |
20 | static void SetCurrentContextId(const StdString & context); |
21 | |
22 | /// Accesseurs /// |
23 | static StdString & GetCurrentContextId(void); |
24 | |
25 | template <typename U> |
26 | static boost::shared_ptr<U> GetObject(const StdString & id); |
27 | |
28 | template <typename U> |
29 | static boost::shared_ptr<U> GetObject(const StdString& context,const StdString & id); |
30 | |
31 | template <typename U> |
32 | static boost::shared_ptr<U> GetObject(const U * const object); |
33 | |
34 | template <typename U> |
35 | static int GetObjectNum(void); |
36 | template <typename U> |
37 | static int GetObjectIdNum(void); |
38 | |
39 | template <typename U> |
40 | static const std::vector<boost::shared_ptr<U> > & |
41 | GetObjectVector(const StdString & context = CObjectFactory::GetCurrentContextId()); |
42 | |
43 | /// Tests /// |
44 | template <typename U> |
45 | static bool HasObject(const StdString & id); |
46 | |
47 | template <typename U> |
48 | static bool HasObject(const StdString& context,const StdString & id); |
49 | |
50 | /// Instanciateur /// |
51 | template <typename U> |
52 | static boost::shared_ptr<U> CreateObject(const StdString & id = StdString("")); |
53 | |
54 | template <typename U> static StdString GenUId(void) ; |
55 | |
56 | private : |
57 | |
58 | /// Propriétés statiques /// |
59 | static StdString CurrContext; |
60 | |
61 | }; // class CObjectFactory |
62 | } // namespace xios |
63 | |
64 | //#include "object_factory_impl.hpp" |
65 | |
66 | #endif // __XMLIO_CObjectFactory__ |
Note: See TracBrowser
for help on using the repository browser.