DDS  ver. 3.6
TopoCreatorCore.h
Go to the documentation of this file.
1 // Copyright 2014 GSI, Inc. All rights reserved.
2 //
3 //
4 //
5 
6 #ifndef __DDS__TopoCreatorCore__
7 #define __DDS__TopoCreatorCore__
8 
9 // STD
10 #include <map>
11 // DDS
12 #include "TopoCollection.h"
13 #include "TopoGroup.h"
14 #include "TopoTask.h"
15 
16 namespace dds
17 {
18  namespace topology_api
19  {
21  {
22  public:
25 
30  CTopoCreatorCore(const std::string& _filename, const std::string& _schemaFilename = "");
31 
36  CTopoCreatorCore(std::istream& _stream, const std::string& _schemaFilename = "");
37 
39  virtual ~CTopoCreatorCore();
40 
43  void save(const std::string& _filename);
44 
47  void save(std::ostream& _stream);
48 
51 
52  private:
53  using objectMap_t = std::map<CTopoBase::EType, std::map<std::string, CTopoBase::Ptr_t>>;
54 
55  void addDeclElements(CTopoElement::Ptr_t _element, objectMap_t& _declElements);
56  void addDeclElements(CTopoTask::Ptr_t _task, objectMap_t& _declElements);
57  void addDeclElements(CTopoCollection::Ptr_t _collection, objectMap_t& _declElements);
58  void addDeclElements(CTopoGroup::Ptr_t _group, objectMap_t& _declElements);
59 
60  void save(boost::property_tree::ptree& _pt);
61 
62  CTopoGroup::Ptr_t m_main{ std::make_shared<CTopoGroup>("main") };
63  };
64  } // namespace topology_api
65 } // namespace dds
66 #endif /* defined(__DDS__TopoCreatorCore__) */
std::shared_ptr< CTopoGroup > Ptr_t
Definition: TopoGroup.h:18
std::shared_ptr< CTopoCollection > Ptr_t
Definition: TopoCollection.h:22
std::shared_ptr< CTopoTask > Ptr_t
Definition: TopoTask.h:28
void save(const std::string &_filename)
Saves topology to the specified XML file.
Definition: TopoCreatorCore.cpp:48
Definition: TopoCreatorCore.h:20
Miscellaneous functions and helpers are located here.
Definition: AgentConnectionManager.h:13
std::shared_ptr< CTopoElement > Ptr_t
Definition: TopoElement.h:21
CTopoCreatorCore()
Constructor.
Definition: TopoCreatorCore.cpp:22
virtual ~CTopoCreatorCore()
Destructor.
Definition: TopoCreatorCore.cpp:36
CTopoGroup::Ptr_t getMainGroup() const
Returns shared pointer to the main group of the topology.
Definition: TopoCreatorCore.cpp:182