#ifndef AGENT_HEADERFILE
#define AGENT_HEADERFILE

#include "MasterAgentHandlerOfAgent.h"
#include "Node.h"
#include "SensorHandlerOfAgent.h"
#include "SlaveAgentHandlerOfAgent.h"

class Agent : public Node {

private:
  SensorHandlerOfAgent *sensorHandlerOfAgent;
  SlaveAgentHandlerOfAgent *slaveAgentHandlerOfAgent;
  MasterAgentHandlerOfAgent *masterAgentHandlerOfAgent;

  void init_agent();

public:
  Agent();
  Agent(const char *name);

  bool set_sensorHandlerOfAgent();
  bool del_sensorHandlerOfAgent();
  SensorHandlerOfAgent *get_sensorHandlerOfAgent();

  bool set_slaveAgentHandlerOfAgent();
  bool del_slaveAgentHandlerOfAgent();
  SlaveAgentHandlerOfAgent *get_slaveAgentHandlerOfAgent();

  bool set_masterAgentHandlerOfAgent();
  bool del_masterAgentHandlerOfAgent();
  MasterAgentHandlerOfAgent *get_masterAgentHandlerOfAgent();

  void trigger();
};

#endif
