#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... | |
struct | argos::SOperationOutcome |
Type to use as return value for operation outcome. 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.