DDS  ver. 3.4
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 
29  CTopoCreatorCore(const std::string& _filename);
30 
35  CTopoCreatorCore(const std::string& _filename, const std::string& _schemaFilename);
36 
38  virtual ~CTopoCreatorCore();
39 
42  void save(const std::string& _filename);
43 
46  void save(std::ostream& _stream);
47 
50 
51  private:
52  using objectMap_t = std::map<CTopoBase::EType, std::map<std::string, CTopoBase::Ptr_t>>;
53 
54  void addDeclElements(CTopoElement::Ptr_t _element, objectMap_t& _declElements);
55  void addDeclElements(CTopoTask::Ptr_t _task, objectMap_t& _declElements);
56  void addDeclElements(CTopoCollection::Ptr_t _collection, objectMap_t& _declElements);
57  void addDeclElements(CTopoGroup::Ptr_t _group, objectMap_t& _declElements);
58 
59  void save(boost::property_tree::ptree& _pt);
60 
61  CTopoGroup::Ptr_t m_main{ std::make_shared<CTopoGroup>("main") };
62  };
63  } // namespace topology_api
64 } // namespace dds
65 #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
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