DDS  ver. 2.0
dds-topology-lib/src/Task.h
Go to the documentation of this file.
1 // Copyright 2014 GSI, Inc. All rights reserved.
2 //
3 //
4 //
5 
6 #ifndef __DDS__Task__
7 #define __DDS__Task__
8 
9 // DDS
10 #include "Requirement.h"
11 #include "TopoElement.h"
12 #include "TopoProperty.h"
13 #include "Trigger.h"
14 // STD
15 #include <memory>
16 #include <string>
17 
18 namespace dds
19 {
20  namespace topology_api
21  {
22  class CTask : public CTopoElement
23  {
24  public:
26  CTask();
27 
29  virtual ~CTask();
30 
32  const std::string& getExe() const;
33  const std::string& getEnv() const;
34  bool isExeReachable() const;
35  bool isEnvReachable() const;
36  size_t getNofProperties() const;
37  size_t getNofRequirements() const;
38  size_t getNofTriggers() const;
39  TopoPropertyPtr_t getProperty(size_t _i) const;
42  const TriggerPtrVector_t& getTriggers() const;
44  TopoPropertyPtr_t getProperty(const std::string& _id) const;
45 
47  void setExe(const std::string& _exe);
48  void setEnv(const std::string& _env);
49  void setExeReachable(bool _exeReachable);
50  void setEnvReachable(bool _envReachable);
51  void setProperties(const TopoPropertyPtrVector_t& _properties);
52  void addProperty(TopoPropertyPtr_t _property);
53  void setRequirements(const RequirementPtrVector_t& _requirements);
54  void addRequirement(RequirementPtr_t _requirement);
55  void setTriggers(const TriggerPtrVector_t& _triggers);
56  void addTrigger(TriggerPtr_t _trigger);
57 
58  // Parent collection and group ID
59  std::string getParentCollectionId() const;
60  std::string getParentGroupId() const;
61 
63  size_t getTotalCounter() const;
64 
66  virtual size_t getNofTasks() const;
67 
69  virtual size_t getTotalNofTasks() const;
70 
72  virtual void initFromPropertyTree(const std::string& _name, const boost::property_tree::ptree& _pt);
73 
76  virtual std::string toString() const;
77 
81  friend std::ostream& operator<<(std::ostream& _strm, const CTask& _task);
82 
83  private:
84  std::string m_exe;
85  std::string m_env;
86  bool m_exeReachable;
87  bool m_envReachable;
88  TopoPropertyPtrVector_t m_properties;
89  RequirementPtrVector_t m_requirements;
90  TriggerPtrVector_t m_triggers;
91  };
92 
93  typedef std::shared_ptr<CTask> TaskPtr_t;
94  typedef std::vector<TaskPtr_t> TaskPtrVector_t;
95  }
96 }
97 #endif /* defined(__DDS__Task__) */
const TopoPropertyPtrVector_t & getProperties() const
Definition: dds-topology-lib/src/Task.cpp:154
void addRequirement(RequirementPtr_t _requirement)
Definition: dds-topology-lib/src/Task.cpp:72
std::vector< TopoPropertyPtr_t > TopoPropertyPtrVector_t
Definition: TopoProperty.h:64
const TriggerPtrVector_t & getTriggers() const
Definition: dds-topology-lib/src/Task.cpp:164
size_t getNofRequirements() const
Definition: dds-topology-lib/src/Task.cpp:122
void setProperties(const TopoPropertyPtrVector_t &_properties)
Definition: dds-topology-lib/src/Task.cpp:57
virtual size_t getTotalNofTasks() const
Inherited from DDSTopoElement.
Definition: dds-topology-lib/src/Task.cpp:92
size_t getNofProperties() const
Definition: dds-topology-lib/src/Task.cpp:117
virtual std::string toString() const
Returns string representation of an object.
Definition: dds-topology-lib/src/Task.cpp:240
virtual void initFromPropertyTree(const std::string &_name, const boost::property_tree::ptree &_pt)
Inherited from DDSTopoElement.
Definition: dds-topology-lib/src/Task.cpp:185
std::string getParentCollectionId() const
Definition: dds-topology-lib/src/Task.cpp:169
std::vector< TriggerPtr_t > TriggerPtrVector_t
Definition: Trigger.h:68
std::shared_ptr< CRequirement > RequirementPtr_t
Definition: Requirement.h:59
void addProperty(TopoPropertyPtr_t _property)
Definition: dds-topology-lib/src/Task.cpp:62
Definition: TopoElement.h:18
size_t getTotalCounter() const
If parent is a group than return N, else return 1.
Definition: dds-topology-lib/src/Task.cpp:132
const std::string & getExe() const
Accessors.
Definition: dds-topology-lib/src/Task.cpp:97
Definition: dds-agent/src/AgentConnectionManager.h:18
void setEnvReachable(bool _envReachable)
Definition: dds-topology-lib/src/Task.cpp:52
void setEnv(const std::string &_env)
Definition: dds-topology-lib/src/Task.cpp:42
virtual size_t getNofTasks() const
Inherited from DDSTopoElement.
Definition: dds-topology-lib/src/Task.cpp:87
bool isEnvReachable() const
Definition: dds-topology-lib/src/Task.cpp:112
const std::string & getEnv() const
Definition: dds-topology-lib/src/Task.cpp:102
std::shared_ptr< CTopoProperty > TopoPropertyPtr_t
Definition: TopoProperty.h:63
void addTrigger(TriggerPtr_t _trigger)
Definition: dds-topology-lib/src/Task.cpp:82
size_t getNofTriggers() const
Definition: dds-topology-lib/src/Task.cpp:127
TopoPropertyPtr_t getProperty(size_t _i) const
Definition: dds-topology-lib/src/Task.cpp:137
std::shared_ptr< CTrigger > TriggerPtr_t
Definition: Trigger.h:67
std::vector< RequirementPtr_t > RequirementPtrVector_t
Definition: Requirement.h:60
std::shared_ptr< CTask > TaskPtr_t
Definition: dds-topology-lib/src/Task.h:93
void setExeReachable(bool _exeReachable)
Definition: dds-topology-lib/src/Task.cpp:47
void setRequirements(const RequirementPtrVector_t &_requirements)
Definition: dds-topology-lib/src/Task.cpp:67
void setExe(const std::string &_exe)
Modifiers.
Definition: dds-topology-lib/src/Task.cpp:37
bool isExeReachable() const
Definition: dds-topology-lib/src/Task.cpp:107
friend std::ostream & operator<<(std::ostream &_strm, const CTask &_task)
Operator << for convenient output to ostream.
std::string getParentGroupId() const
Definition: dds-topology-lib/src/Task.cpp:174
CTask()
Constructor.
Definition: dds-topology-lib/src/Task.cpp:22
const RequirementPtrVector_t & getRequirements() const
Definition: dds-topology-lib/src/Task.cpp:159
virtual ~CTask()
Destructor.
Definition: dds-topology-lib/src/Task.cpp:33
std::vector< TaskPtr_t > TaskPtrVector_t
Definition: dds-topology-lib/src/Task.h:94
void setTriggers(const TriggerPtrVector_t &_triggers)
Definition: dds-topology-lib/src/Task.cpp:77
Definition: dds-topology-lib/src/Task.h:22