entity.h File Reference
#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>
Include dependency graph for entity.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  argos::CEntity
 The basic entity type. More...
 
struct  argos::SEntityComparator
 A generic entity comparator, used in containers that must be ordered deterministically. 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

 argos
 The namespace containing all the ARGoS related code.
 

Macros

#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. More...
 

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. More...
 

Macro Definition Documentation

◆ REGISTER_ENTITY

#define REGISTER_ENTITY (   CLASSNAME,
  LABEL,
  AUTHOR,
  VERSION,
  BRIEF_DESCRIPTION,
  LONG_DESCRIPTION,
  STATUS 
)
Value:
REGISTER_SYMBOL(CEntity, \
CLASSNAME, \
LABEL, \
AUTHOR, \
VERSION, \
BRIEF_DESCRIPTION, \
LONG_DESCRIPTION, \
STATUS)
#define REGISTER_SYMBOL(BASECLASS, CLASSNAME, LABEL, AUTHOR, VERSION, BRIEF_DESCRIPTION, LONG_DESCRIPTION, STATUS)
Macro to register a symbol into the factory.
Definition: factory.h:149

Definition at line 432 of file entity.h.

◆ REGISTER_ENTITY_OPERATION

#define REGISTER_ENTITY_OPERATION (   LABEL,
  PLUGIN,
  OPERATION,
  RETURN_VALUE,
  DERIVED 
)
Value:
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.

Definition at line 451 of file entity.h.