ARGoS
3
A parallel, multi-engine simulator for swarm robotics
|
#include <argos3/core/utility/datatypes/datatypes.h>
#include <argos3/core/utility/configuration/argos_configuration.h>
#include <argos3/core/utility/configuration/base_configurable_resource.h>
#include <argos3/core/utility/plugins/factory.h>
#include <argos3/core/utility/plugins/vtable.h>
#include <vector>
#include <map>
#include <string>
#include <tr1/unordered_map>
Go to the source code of this file.
Classes | |
class | argos::CEntity |
The basic entity type. More... | |
class | argos::CEntityOperation< LABEL, PLUGIN, RETURN_TYPE > |
The basic operation to be stored in the vtable. More... | |
Namespaces | |
namespace | argos |
The namespace containing all the ARGoS related code. | |
Defines | |
#define | REGISTER_ENTITY(CLASSNAME,LABEL,AUTHOR,VERSION,BRIEF_DESCRIPTION,LONG_DESCRIPTION,STATUS) |
#define | REGISTER_ENTITY_OPERATION(LABEL, PLUGIN, OPERATION, RETURN_VALUE, DERIVED) |
Convenience macro to register vtable entity operations. | |
Functions | |
template<typename LABEL , typename PLUGIN , typename RETURN_VALUE > | |
RETURN_VALUE | argos::CallEntityOperation (PLUGIN &t_plugin, CEntity &c_entity) |
Calls the operation corresponding to the given context and operand Skips the function call if the operation is missing in the vtable. |
#define REGISTER_ENTITY | ( | CLASSNAME, | |
LABEL, | |||
AUTHOR, | |||
VERSION, | |||
BRIEF_DESCRIPTION, | |||
LONG_DESCRIPTION, | |||
STATUS | |||
) |
REGISTER_SYMBOL(CEntity, \ CLASSNAME, \ LABEL, \ AUTHOR, \ VERSION, \ BRIEF_DESCRIPTION, \ LONG_DESCRIPTION, \ STATUS)
#define REGISTER_ENTITY_OPERATION | ( | LABEL, | |
PLUGIN, | |||
OPERATION, | |||
RETURN_VALUE, | |||
DERIVED | |||
) |
class C ## LABEL ## PLUGIN ## OPERATION ## RETURN_VALUE ## DERIVED { \ typedef RETURN_VALUE (CEntityOperation<LABEL, PLUGIN, RETURN_VALUE>::*TFunction)(PLUGIN&, CEntity&); \ public: \ C ## LABEL ## PLUGIN ## OPERATION ## RETURN_VALUE ## DERIVED() { \ GetVTable<LABEL, CEntity, TFunction>().Add<DERIVED>(&OPERATION::Hook<DERIVED, OPERATION>); \ GetEntityOperationInstanceHolder<LABEL, PLUGIN, RETURN_VALUE>().Add<DERIVED>(new OPERATION()); \ } \ } c ## LABEL ## PLUGIN ## OPERATION ## RETURN_VALUE ## DERIVED;
Convenience macro to register vtable entity operations.