ARGoS  3
A parallel, multi-engine simulator for swarm robotics
core/simulator/entity/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...
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 Documentation

#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)

Definition at line 397 of file entity.h.

#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 416 of file entity.h.