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

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

#include <Agent.hpp>

Public Member Functions

 Agent (std::time_t const &spawnTime, std::optional< Id > itineraryId=std::nullopt, std::optional< Id > srcNodeId=std::nullopt)
 Construct a new Agent object.
 
 Agent (std::time_t const &spawnTime, std::vector< Id > const &trip, std::optional< Id > srcNodeId=std::nullopt)
 Construct a new Agent object.
 
void setSrcNodeId (Id srcNodeId)
 
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 (std::time_t 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 (std::time_t const &spawnTime)
 Reset the agent.
 
std::time_t const & spawnTime () const noexcept
 Get the agent's spawn time.
 
std::time_t const & freeTime () const noexcept
 Get the agent's free time.
 
Id id () const noexcept
 Get the agent's id.
 
Id itineraryId () const
 Get the agent's itinerary.
 
std::vector< Id > const & trip () const noexcept
 Get the agent's trip.
 
std::optional< Id > streetId () const noexcept
 Get the id of the street currently occupied by the agent.
 
std::optional< Id > srcNodeId () const noexcept
 Get the id of the source node of the agent.
 
std::optional< Id > nextStreetId () const noexcept
 Get the id of the next street.
 
double speed () const noexcept
 Get the agent's speed.
 
double distance () const noexcept
 Get the agent's travelled distance.
 
bool isRandom () const noexcept
 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]

dsf::Agent::Agent ( std::time_t const & spawnTime,
std::optional< Id > itineraryId = std::nullopt,
std::optional< Id > srcNodeId = std::nullopt )

Construct a new Agent object.

Parameters
spawnTimeThe agent's spawn time
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]

dsf::Agent::Agent ( std::time_t const & spawnTime,
std::vector< Id > const & trip,
std::optional< Id > srcNodeId = std::nullopt )

Construct a new Agent object.

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

Member Function Documentation

◆ distance()

double dsf::Agent::distance ( ) const
inlinenoexcept

Get the agent's travelled distance.

Returns
The agent's travelled distance

◆ freeTime()

std::time_t const & dsf::Agent::freeTime ( ) const
inlinenoexcept

Get the agent's free time.

Returns
The agent's free time

◆ id()

Id dsf::Agent::id ( ) const
inlinenoexcept

Get the agent's id.

Returns
The agent's id

◆ incrementDistance()

void dsf::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 dsf::Agent::isRandom ( ) const
inlinenoexcept

Return true if the agent is a random agent.

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

◆ itineraryId()

Id dsf::Agent::itineraryId ( ) const

Get the agent's itinerary.

Returns
The agent's itinerary
Exceptions
std::logic_errorif the agent is a random agent

◆ nextStreetId()

std::optional< Id > dsf::Agent::nextStreetId ( ) const
inlinenoexcept

Get the id of the next street.

Returns
The id of the next street

◆ reset()

void dsf::Agent::reset ( std::time_t 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 dsf::Agent::setFreeTime ( std::time_t const & freeTime)

Set the agent's free time.

Parameters
freeTimeThe agent's free time

◆ setNextStreetId()

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

Set the id of the next street.

Parameters
nextStreetIdThe id of the next street

◆ setSpeed()

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

Set the agent's speed.

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

◆ setStreetId()

void dsf::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()

std::time_t const & dsf::Agent::spawnTime ( ) const
inlinenoexcept

Get the agent's spawn time.

Returns
The agent's spawn time

◆ speed()

double dsf::Agent::speed ( ) const
inlinenoexcept

Get the agent's speed.

Returns
The agent's speed

◆ srcNodeId()

std::optional< Id > dsf::Agent::srcNodeId ( ) const
inlinenoexcept

Get the id of the source node of the agent.

Returns
The id of the source node of the agent

◆ streetId()

std::optional< Id > dsf::Agent::streetId ( ) const
inlinenoexcept

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 & dsf::Agent::trip ( ) const
inlinenoexcept

Get the agent's trip.

Returns
The agent's trip

◆ updateItinerary()

void dsf::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: