API — Core

Module gagent/core : cycle de vie des agents et comportements.

Agent

class Agent

Public Functions

Agent()
virtual ~Agent()
bool is_notification()
void *scheduler(void*)
void exthread(Behaviour*)
void control_Thread()
void listener_extern_signals_Thread()
void init()
void _init(int)
virtual void setup() = 0
virtual void takeDown()
inline virtual std::string agentTypeName() const
int doDelete()
int doActivate()
int doSuspend()
int doWait()
int doWake()
int doMove()
int doMove(const MigrationTarget &target)
int doAction(const int)
void setAgentName(const std::string &name)
void addBehaviour(Behaviour*)
void removeBehaviour(Behaviour*)
AgentID getAgentId() const
messaging::ITransport &transport()
void setTransport(std::shared_ptr<messaging::ITransport> t)
int sendMsgMonitor(std::string)
void signal_handler(const boost::system::error_code &error, int signal_number)
void addAttribut(std::string)
void removeAttribut(std::string)
void setAttribut(std::string, std::string)
std::string getAttribut(std::string)
void attributUpdated()

Public Members

int agentStatus
pid_t chldpid
pid_t ppid
Agent *this_agent

Public Static Attributes

static const int AGENT_UNKNOWN = 0
static const int AGENT_CREATED = 1
static const int AGENT_INITED = 2
static const int AGENT_ACTIVE = 3
static const int AGENT_SUSPENDED = 4
static const int AGENT_TRANSIT = 5
static const int AGENT_WAITING = 6
static const int AGENT_DELETED = 7
static const int AGENT_WAKING = 8
struct MigrationTarget

Public Members

std::string ip
int port = -1

AgentCore

class AgentCore

Public Static Functions

static void initAgentSystem()
static void stopAgentSystem()
static void syncAgentSystem()
static void initEnvironnementSystem(gagent::Environnement&)

AgentID

class AgentID

Public Functions

AgentID()
void setName(std::string)
void setAddresse(std::string)
std::string getAgentName()
std::string getAgentID()
virtual ~AgentID()

Behaviour

class Behaviour

Subclassed by gagent::CompositeBehaviour, gagent::SimpleBehaviour, gagent::protocols::ContractNetInitiator, gagent::protocols::ContractNetParticipant, gagent::protocols::RequestInitiator, gagent::protocols::RequestParticipant, gagent::protocols::SubscribeInitiator, gagent::protocols::SubscribeParticipant, gagent::python::PythonBehaviour

Public Functions

Behaviour()
Behaviour(Agent*)
virtual void action()
virtual bool done()
virtual void onStart()
virtual void onEnd()
inline virtual int exitValue()
virtual int doDelete()
virtual int doActivate()
virtual int doSuspend()
virtual int doWait()
virtual int doWake()
virtual int doMove()
int doAction(const int)
virtual ~Behaviour()

Public Members

Agent *this_agent
class OneShotBehaviour : public gagent::SimpleBehaviour

Public Functions

OneShotBehaviour()
OneShotBehaviour(Agent*)
virtual void action()
virtual bool done() final
virtual ~OneShotBehaviour()
class CyclicBehaviour : public gagent::SimpleBehaviour

Public Functions

CyclicBehaviour()
CyclicBehaviour(Agent*)
virtual void action()
virtual bool done() final
virtual ~CyclicBehaviour()
class TickerBehaviour : public gagent::SimpleBehaviour

Public Functions

TickerBehaviour()
TickerBehaviour(Agent*, unsigned int)
virtual void action() final
virtual bool done() final
virtual void onTick()
virtual ~TickerBehaviour()
class WakerBehaviour : public gagent::SimpleBehaviour

Public Functions

WakerBehaviour()
WakerBehaviour(Agent*, unsigned int)
virtual void action() final
virtual bool done() final
virtual void onWake()
virtual ~WakerBehaviour()

BehaviourFactory

class BehaviourFactory

Factory for creating Behaviour instances.

Implements the Factory pattern to create behaviour objects dynamically. Supports registration of custom behaviour types.

Example usage:

auto factory = BehaviourFactory::getInstance();
factory.registerBehaviour("MyBehaviour", 
    [](Agent* ag) { return std::make_unique<MyBehaviour>(ag); });

auto behaviour = factory.create("MyBehaviour", agent);

Public Types

using BehaviourCreator = std::function<std::unique_ptr<Behaviour>(Agent*)>

Public Functions

inline void registerBehaviour(const std::string &name, BehaviourCreator creator)

Register a new behaviour type.

Paramètres:
  • name – Type name identifier

  • creator – Function to create the behaviour

inline std::unique_ptr<Behaviour> create(const std::string &name, Agent *agent)

Create a behaviour instance.

Paramètres:
  • name – Type name

  • agentAgent owner

Déclenche:

BehaviourException – if type not found

Renvoie:

Unique pointer to created behaviour

inline bool isRegistered(const std::string &name) const

Check if behaviour type is registered.

Paramètres:

name – Type name

Renvoie:

true if registered

BehaviourFactory(const BehaviourFactory&) = delete
BehaviourFactory &operator=(const BehaviourFactory&) = delete

Public Static Functions

static inline BehaviourFactory &getInstance()

Get singleton instance.

Renvoie:

Reference to factory instance

DFService

class DFService

Public Functions

DFService()
virtual ~DFService()

Public Static Functions

static void registerService(const Agent*, const DFAgentDescription*)