Dynamical system model
Loading...
Searching...
No Matches
dsm::Agent Class Reference

The Agent class represents an agent in the network. More...

#include <Agent.hpp>

Public Member Functions

 Agent (Time const &spawnTime, Id id, std::optional< Id > itineraryId=std::nullopt, std::optional< Id > srcNodeId=std::nullopt)
 Construct a new Agent object.
 
 Agent (Time const &spawnTime, Id id, std::vector< Id > const &trip, std::optional< Id > srcNodeId=std::nullopt)
 Construct a new Agent object.
 
void setStreetId (std::optional< Id > streetId=std::nullopt)
 Set the street occupied by the agent.
 
void setNextStreetId (Id nextStreetId)
 Set the id of the next street.
 
void setSpeed (double speed)
 Set the agent's speed.
 
void setFreeTime (Time const &freeTime)
 Set the agent's free time.
 
void incrementDistance (double distance)
 Increment the agent's distance by a given value.
 
void updateItinerary ()
 Update the agent's itinerary.
 
void reset (Time const &spawnTime)
 Reset the agent.
 
Time const & spawnTime () const
 Get the agent's spawn time.
 
Time const & freeTime () const
 Get the agent's free time.
 
Id id () const
 Get the agent's id.
 
Id itineraryId () const
 Get the agent's itinerary.
 
std::vector< Id > const & trip () const
 Get the agent's trip.
 
std::optional< Id > streetId () const
 Get the id of the street currently occupied by the agent.
 
std::optional< Id > srcNodeId () const
 Get the id of the source node of the agent.
 
std::optional< Id > nextStreetId () const
 Get the id of the next street.
 
double speed () const
 Get the agent's speed.
 
double distance () const
 Get the agent's travelled distance.
 
bool isRandom () const
 Return true if the agent is a random agent.
 

Detailed Description

The Agent class represents an agent in the network.

Constructor & Destructor Documentation

◆ Agent() [1/2]

dsm::Agent::Agent ( Time const & spawnTime,
Id id,
std::optional< Id > itineraryId = std::nullopt,
std::optional< Id > srcNodeId = std::nullopt )

Construct a new Agent object.

Parameters
spawnTimeThe agent's spawn time
idThe agent's id
itineraryIdOptional, The agent's destination node. If not provided, the agent is a random agent
srcNodeIdOptional, The id of the source node of the agent

◆ Agent() [2/2]

dsm::Agent::Agent ( Time const & spawnTime,
Id id,
std::vector< Id > const & trip,
std::optional< Id > srcNodeId = std::nullopt )

Construct a new Agent object.

Parameters
spawnTimeThe agent's spawn time
idThe agent's id
itineraryIdsThe agent's itinerary
srcNodeIdOptional, The id of the source node of the agent

Member Function Documentation

◆ distance()

double dsm::Agent::distance ( ) const

Get the agent's travelled distance.

Returns
The agent's travelled distance

◆ freeTime()

Time const & dsm::Agent::freeTime ( ) const

Get the agent's free time.

Returns
The agent's free time

◆ id()

Id dsm::Agent::id ( ) const

Get the agent's id.

Returns
The agent's id

◆ incrementDistance()

void dsm::Agent::incrementDistance ( double distance)

Increment the agent's distance by a given value.

Parameters
distanceThe value to increment the agent's distance byĆ¹
Exceptions
std::invalid_argument,ifdistance is negative

◆ isRandom()

bool dsm::Agent::isRandom ( ) const

Return true if the agent is a random agent.

Returns
True if the agent is a random agent, false otherwise

◆ itineraryId()

Id dsm::Agent::itineraryId ( ) const

Get the agent's itinerary.

Returns
The agent's itinerary

◆ nextStreetId()

std::optional< Id > dsm::Agent::nextStreetId ( ) const

Get the id of the next street.

Returns
The id of the next street

◆ reset()

void dsm::Agent::reset ( Time const & spawnTime)

Reset the agent.

Reset the following values:

  • street id = std::nullopt
  • delay = 0
  • speed = 0
  • distance = 0
  • time = 0
  • itinerary index = 0

◆ setFreeTime()

void dsm::Agent::setFreeTime ( Time const & freeTime)

Set the agent's free time.

Parameters
freeTimeThe agent's free time

◆ setNextStreetId()

void dsm::Agent::setNextStreetId ( Id nextStreetId)

Set the id of the next street.

Parameters
nextStreetIdThe id of the next street

◆ setSpeed()

void dsm::Agent::setSpeed ( double speed)

Set the agent's speed.

Parameters
speed,Theagent's speed
Exceptions
std::invalid_argument,ifspeed is negative

◆ setStreetId()

void dsm::Agent::setStreetId ( std::optional< Id > streetId = std::nullopt)

Set the street occupied by the agent.

Parameters
streetIdThe id of the street currently occupied by the agent

◆ spawnTime()

Time const & dsm::Agent::spawnTime ( ) const

Get the agent's spawn time.

Returns
The agent's spawn time

◆ speed()

double dsm::Agent::speed ( ) const

Get the agent's speed.

Returns
The agent's speed

◆ srcNodeId()

std::optional< Id > dsm::Agent::srcNodeId ( ) const

Get the id of the source node of the agent.

Returns
The id of the source node of the agent

◆ streetId()

std::optional< Id > dsm::Agent::streetId ( ) const

Get the id of the street currently occupied by the agent.

Returns
The id of the street currently occupied by the agent

◆ trip()

std::vector< Id > const & dsm::Agent::trip ( ) const

Get the agent's trip.

Returns
The agent's trip

◆ updateItinerary()

void dsm::Agent::updateItinerary ( )

Update the agent's itinerary.

If possible, the agent's itinerary is updated by removing the first element from the itinerary's vector.


The documentation for this class was generated from the following file: