ARGoS  3
A parallel, multi-engine simulator for swarm robotics
medium.h
Go to the documentation of this file.
1 
7 #ifndef MEDIUM_H
8 #define MEDIUM_H
9 
10 namespace argos {
11  class CMedium;
12 }
13 
14 #include <argos3/core/utility/configuration/base_configurable_resource.h>
15 #include <argos3/core/utility/configuration/argos_configuration.h>
16 #include <argos3/core/utility/datatypes/datatypes.h>
17 #include <argos3/core/utility/plugins/factory.h>
18 
19 namespace argos {
20 
22 
23  public:
24 
25  typedef std::vector<CMedium*> TVector;
26  typedef std::map<std::string, CMedium*> TMap;
27 
28  public:
29 
30  CMedium() {}
31  virtual ~CMedium() {}
32 
47  virtual void Init(TConfigurationNode& t_tree);
48  virtual void Reset() {}
49  virtual void Destroy() {}
50 
64  virtual void PostSpaceInit() {}
65 
69  virtual void Update() = 0;
70 
75  inline const std::string& GetId() const {
76  return m_strId;
77  }
78 
83  void SetId(const std::string& str_id) {
84  m_strId = str_id;
85  }
86 
87  private:
88 
90  std::string m_strId;
91 
92  };
93 
94 }
95 
96 #define REGISTER_MEDIUM(CLASSNAME, \
97  LABEL, \
98  AUTHOR, \
99  VERSION, \
100  BRIEF_DESCRIPTION, \
101  LONG_DESCRIPTION, \
102  STATUS) \
103  REGISTER_SYMBOL(CMedium, \
104  CLASSNAME, \
105  LABEL, \
106  AUTHOR, \
107  VERSION, \
108  BRIEF_DESCRIPTION, \
109  LONG_DESCRIPTION, \
110  STATUS)
111 
112 #endif
argos::CBaseConfigurableResource
This class is the base of all XML-configurable ARGoS interface.
Definition: base_configurable_resource.h:23
argos
The namespace containing all the ARGoS related code.
Definition: ci_actuator.h:12
argos::CMedium::Update
virtual void Update()=0
Updates the state of this medium.
argos::TConfigurationNode
ticpp::Element TConfigurationNode
The ARGoS configuration XML node.
Definition: argos_configuration.h:27
argos::CMedium::TMap
std::map< std::string, CMedium * > TMap
Definition: medium.h:26
argos::CMedium::~CMedium
virtual ~CMedium()
Definition: medium.h:31
argos::CMedium::TVector
std::vector< CMedium * > TVector
Definition: medium.h:25
argos::CMedium::Destroy
virtual void Destroy()
Undoes whatever was done by Init().
Definition: medium.h:49
argos::CMedium::Init
virtual void Init(TConfigurationNode &t_tree)
Initialized the medium.
Definition: medium.cpp:15
argos::CMedium::SetId
void SetId(const std::string &str_id)
Sets the id of this medium.
Definition: medium.h:83
argos::CMedium::PostSpaceInit
virtual void PostSpaceInit()
Executes extra initialization activities after the space has been initialized.
Definition: medium.h:64
argos::CMedium
Definition: medium.h:21
argos::CMedium::Reset
virtual void Reset()
Resets the resource.
Definition: medium.h:48
argos::CMedium::CMedium
CMedium()
Definition: medium.h:30
argos::CMedium::GetId
const std::string & GetId() const
Returns the id of this medium.
Definition: medium.h:75