DDS  ver. 3.6
Topology.h
Go to the documentation of this file.
1 // Copyright 2014 GSI, Inc. All rights reserved.
2 //
3 //
4 //
5 
6 #ifndef DDS_TOPOLOGY_H
7 #define DDS_TOPOLOGY_H
8 
9 // STD
10 #include <memory>
11 // DDS
12 #include "TopoCollection.h"
13 #include "TopoGroup.h"
14 #include "TopoTask.h"
15 
16 namespace dds
17 {
18  namespace topology_api
19  {
20  class CTopoCore;
21 
22  class CTopology
23  {
24  public:
26  CTopology();
27 
29  ~CTopology();
30 
35  CTopology(const std::string& _fileName, const std::string& _schemaFileName = "");
36 
41  CTopology(std::istream& _stream, const std::string& _schemaFileName = "");
42 
45  std::string getName() const;
46 
48  std::string getFilepath() const;
49 
52  uint32_t getHash() const;
53 
56 
59  const STopoRuntimeTask& getRuntimeTaskById(Id_t _id) const;
60 
64 
67  const STopoRuntimeTask& getRuntimeTaskByIdPath(const std::string& _idPath) const;
68 
71  const STopoRuntimeCollection& getRuntimeCollectionByIdPath(const std::string& _idPath) const;
72 
75  const STopoRuntimeTask& getRuntimeTask(const std::string& _path) const;
76 
79  const STopoRuntimeCollection& getRuntimeCollection(const std::string& _path) const;
80 
84  STopoRuntimeTask::Condition_t _condition = nullptr) const;
85 
89  STopoRuntimeCollection::Condition_t _condition = nullptr) const;
90 
94  const std::string& _pathPattern) const;
95 
99  const std::string& _pathPattern) const;
100 
106  std::pair<size_t, size_t> getRequiredNofAgents(size_t _defaultNumSlots) const;
107 
111  size_t getRequiredNofAgents() const;
112 
114  size_t getTotalNofTasks() const;
115 
116  private:
117  std::shared_ptr<CTopoCore> m_topo;
118  };
119  } // namespace topology_api
120 } // namespace dds
121 
122 #endif /* DDS_TOPOLOGY_H */
~CTopology()
Destructor.
Definition: Topology.cpp:32
uint32_t getHash() const
Returns topology hash.
Definition: Topology.cpp:51
std::function< bool(std::pair< Id_t, const STopoRuntimeTask & >)> Condition_t
Definition: TopoTask.h:104
const STopoRuntimeCollection & getRuntimeCollectionByIdPath(const std::string &_idPath) const
Returns runtime collection by path.
Definition: Topology.cpp:71
const STopoRuntimeTask & getRuntimeTaskById(Id_t _id) const
Returns runtime task by ID.
Definition: Topology.cpp:56
std::pair< STopoRuntimeCollection::FilterIterator_t, STopoRuntimeCollection::FilterIterator_t > FilterIteratorPair_t
Definition: TopoCollection.h:65
std::shared_ptr< CTopoGroup > Ptr_t
Definition: TopoGroup.h:18
Definition: TopoTask.h:101
size_t getTotalNofTasks() const
Returns total number of tasks in the topology.
Definition: Topology.cpp:118
const STopoRuntimeTask & getRuntimeTaskByIdPath(const std::string &_idPath) const
Returns runtime task by path.
Definition: Topology.cpp:66
const STopoRuntimeCollection & getRuntimeCollection(const std::string &_path) const
Returns runtime collection by either ID or runtime path.
Definition: Topology.cpp:81
std::string getName() const
Returns topology name.
Definition: Topology.cpp:41
uint64_t Id_t
Definition: TopoDef.h:15
STopoRuntimeCollection::FilterIteratorPair_t getRuntimeCollectionIteratorMatchingPath(const std::string &_pathPattern) const
Returns runtime collection filter iterator matching the collection path in the topology.
Definition: Topology.cpp:102
Miscellaneous functions and helpers are located here.
Definition: AgentConnectionManager.h:13
std::string getFilepath() const
Returns topology filepath or empty string if topology is not initialized.
Definition: Topology.cpp:46
CTopoGroup::Ptr_t getMainGroup() const
Returns shared pointer to the main group of the topology.
Definition: Topology.cpp:36
STopoRuntimeTask::FilterIteratorPair_t getRuntimeTaskIteratorMatchingPath(const std::string &_pathPattern) const
Returns runtime task filter iterator matching the task path in the topology.
Definition: Topology.cpp:97
Definition: Topology.h:22
const STopoRuntimeCollection & getRuntimeCollectionById(Id_t _id) const
Returns runtime collection by ID.
Definition: Topology.cpp:61
STopoRuntimeCollection::FilterIteratorPair_t getRuntimeCollectionIterator(STopoRuntimeCollection::Condition_t _condition=nullptr) const
Returns runtime collection filter iterator.
Definition: Topology.cpp:91
size_t getRequiredNofAgents() const
Returns required number of agents and slots for the topology as std::pair.
Definition: Topology.cpp:113
const STopoRuntimeTask & getRuntimeTask(const std::string &_path) const
Returns runtime task by either ID or runtime path.
Definition: Topology.cpp:76
std::pair< STopoRuntimeTask::FilterIterator_t, STopoRuntimeTask::FilterIterator_t > FilterIteratorPair_t
Definition: TopoTask.h:108
CTopology()
Default constructor.
Definition: Topology.cpp:13
std::function< bool(std::pair< Id_t, const STopoRuntimeCollection & >)> Condition_t
Definition: TopoCollection.h:60
STopoRuntimeTask::FilterIteratorPair_t getRuntimeTaskIterator(STopoRuntimeTask::Condition_t _condition=nullptr) const
Returns runtime task filter iterator.
Definition: Topology.cpp:86
Definition: TopoCollection.h:57