SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MSPersonControl Class Reference

#include <MSPersonControl.h>

Inheritance diagram for MSPersonControl:
GUIPersonControl

Public Types

typedef std::map< std::string,
MSTransportable * >
::const_iterator 
constVehIt
 Definition of the internal persons map iterator. More...
 
typedef std::vector
< MSTransportable * > 
PersonVector
 Definition of a list of persons. More...
 

Public Member Functions

void abortWaiting ()
 aborts the plan for any person that is still waiting for a ride More...
 
bool add (const std::string &id, MSPerson *person)
 Adds a single person, returns false if an id clash occured. More...
 
void addWaiting (const MSEdge *edge, MSTransportable *person)
 adds a person to the list of persons waiting for a vehicle on the specified edge More...
 
bool boardAnyWaiting (MSEdge *edge, MSVehicle *vehicle, MSVehicle::Stop *stop)
 board any applicable persons Boards any people who wait on that edge for the given vehicle and removes them from myWaiting More...
 
virtual MSPerson * buildPerson (const SUMOVehicleParameter *pars, const MSVehicleType *vtype, MSTransportable::MSTransportablePlan *plan) const
 Builds a new person. More...
 
void checkWaitingPersons (MSNet *net, const SUMOTime time)
 checks whether any persons waiting or walking time is over More...
 
virtual void erase (MSTransportable *person)
 removes a single person More...
 
MSTransportable * get (const std::string &id) const
 Returns the named person, if existing. More...
 
bool hasNonWaiting () const
 checks whether any person is still engaged in walking / stopping More...
 
bool hasPersons () const
 checks whether any person waits to finish her plan More...
 
bool isWaiting4Vehicle (const MSEdge *const edge, MSPerson *p) const
 returns whether the the given person is waiting for a vehicle on the given edge More...
 
constVehIt loadedPersonsBegin () const
 Returns the begin of the internal persons map. More...
 
constVehIt loadedPersonsEnd () const
 Returns the end of the internal persons map. More...
 
 MSPersonControl ()
 Constructor. More...
 
void setDeparture (SUMOTime time, MSPerson *person)
 sets the arrival time for a waiting or walking person More...
 
void setWaitEnd (SUMOTime time, MSTransportable *person)
 sets the arrival time for a waiting or walking person More...
 
void setWalking (MSTransportable *p)
 
unsigned int size () const
 Returns the number of known persons. More...
 
void unsetWalking (MSTransportable *p)
 
virtual ~MSPersonControl ()
 Destructor. More...
 

Protected Attributes

std::map< std::string,
MSTransportable * > 
myPersons
 all persons by id More...
 
std::map< SUMOTime, PersonVector > myWaiting4Departure
 Persons waiting for departure. More...
 
std::map< const MSEdge
*, PersonVector > 
myWaiting4Vehicle
 the lists of waiting persons More...
 
std::map< SUMOTime, PersonVector > myWaitingUntil
 the lists of walking / stopping persons More...
 
std::map< std::string,
MSTransportable * > 
myWalking
 all persons by id More...
 

Detailed Description

The class is used to handle persons who are not using a transportation system but are walking or waiting. Both is processed by waiting for the arrival time / the time the waiting is over.

Definition at line 59 of file MSPersonControl.h.

Member Typedef Documentation

typedef std::map<std::string, MSTransportable*>::const_iterator MSPersonControl::constVehIt

Definition of the internal persons map iterator.

Definition at line 65 of file MSPersonControl.h.

Definition of a list of persons.

Definition at line 62 of file MSPersonControl.h.

Constructor & Destructor Documentation

MSPersonControl::MSPersonControl ( )

Constructor.

Definition at line 52 of file MSPersonControl.cpp.

MSPersonControl::~MSPersonControl ( )
virtual

Destructor.

Definition at line 55 of file MSPersonControl.cpp.

References myPersons, and myWaiting4Vehicle.

Member Function Documentation

void MSPersonControl::abortWaiting ( )

aborts the plan for any person that is still waiting for a ride

Definition at line 234 of file MSPersonControl.cpp.

References erase(), MSTransportable::getID(), myWaiting4Vehicle, MSEdge::removePerson(), and WRITE_WARNING.

Referenced by MSNet::simulationState().

bool MSPersonControl::add ( const std::string &  id,
MSPerson *  person 
)

Adds a single person, returns false if an id clash occured.

Parameters
[in]idThe id of the person
[in]personThe person to add
Returns
Whether the person could be added (none with the same id existed before)

Definition at line 65 of file MSPersonControl.cpp.

References myPersons.

void MSPersonControl::addWaiting ( const MSEdge *  edge,
MSTransportable *  person 
)

adds a person to the list of persons waiting for a vehicle on the specified edge

Definition at line 154 of file MSPersonControl.cpp.

References myWaiting4Vehicle.

Referenced by MSPerson::MSPersonStage_Driving::proceed().

bool MSPersonControl::boardAnyWaiting ( MSEdge *  edge,
MSVehicle *  vehicle,
MSVehicle::Stop *  stop 
)

board any applicable persons Boards any people who wait on that edge for the given vehicle and removes them from myWaiting

Parameters
[in]theedge on which the boarding should take place
[in]thevehicle which is taking on passengers
[in]thestop at which the vehicle is stopping
Returns
Whether any persons have been boarded

Definition at line 169 of file MSPersonControl.cpp.

References MSVehicle::addPerson(), DELTA_T, MSVehicle::Stop::duration, MSVehicle::Stop::endPos, MSVehicleType::getBoardingDuration(), MSNet::getCurrentTimeStep(), MSNet::getInstance(), MSBaseVehicle::getParameter(), MSVehicleType::getPersonCapacity(), MSVehicle::getPersonNumber(), MSBaseVehicle::getVehicleType(), SUMOVehicleParameter::id, SUMOVehicleParameter::line, myWaiting4Vehicle, MSEdge::removePerson(), MSVehicle::Stop::startPos, and MSVehicle::Stop::timeToBoardNextPerson.

Referenced by MSVehicle::processNextStop().

MSPerson * MSPersonControl::buildPerson ( const SUMOVehicleParameter *  pars,
const MSVehicleType *  vtype,
MSTransportable::MSTransportablePlan *  plan 
) const
virtual

Builds a new person.

Parameters
[in]parsThe parameter
[in]vtypeThe type (reusing vehicle type container here)
[in]planThis person's plan

Reimplemented in GUIPersonControl.

Definition at line 249 of file MSPersonControl.cpp.

Referenced by MSRouteHandler::closePerson().

void MSPersonControl::checkWaitingPersons ( MSNet *  net,
const SUMOTime  time 
)

checks whether any persons waiting or walking time is over

Definition at line 129 of file MSPersonControl.cpp.

References erase(), myWaiting4Departure, and myWaitingUntil.

Referenced by MSNet::simulationStep().

MSTransportable * MSPersonControl::get ( const std::string &  id) const

Returns the named person, if existing.

Parameters
[in]idThe id of the person
Returns
The named person, if existing, otherwise 0

Definition at line 75 of file MSPersonControl.cpp.

References myPersons.

Referenced by TraCIServerAPI_Person::getPosition(), TraCIServerAPI_Person::processGet(), and TraCIServerAPI_Person::processSet().

bool MSPersonControl::hasNonWaiting ( ) const

checks whether any person is still engaged in walking / stopping

Definition at line 213 of file MSPersonControl.cpp.

References myWaiting4Departure, myWaitingUntil, and myWalking.

Referenced by MSNet::simulationState().

bool MSPersonControl::hasPersons ( ) const

checks whether any person waits to finish her plan

Definition at line 207 of file MSPersonControl.cpp.

References myPersons.

Referenced by MSNet::simulationStep().

bool MSPersonControl::isWaiting4Vehicle ( const MSEdge *const  edge,
MSPerson *  p 
) const

returns whether the the given person is waiting for a vehicle on the given edge

Definition at line 163 of file MSPersonControl.cpp.

References myWaiting4Vehicle.

constVehIt MSPersonControl::loadedPersonsBegin ( ) const
inline

Returns the begin of the internal persons map.

Returns
The begin of the internal persons map

Definition at line 143 of file MSPersonControl.h.

References myPersons.

Referenced by TraCIServerAPI_Person::processGet().

constVehIt MSPersonControl::loadedPersonsEnd ( ) const
inline

Returns the end of the internal persons map.

Returns
The end of the internal persons map

Definition at line 151 of file MSPersonControl.h.

References myPersons.

Referenced by TraCIServerAPI_Person::processGet().

void MSPersonControl::setDeparture ( SUMOTime  time,
MSPerson *  person 
)

sets the arrival time for a waiting or walking person

Definition at line 109 of file MSPersonControl.cpp.

References DELTA_T, and myWaiting4Departure.

Referenced by MSRouteHandler::closePerson().

void MSPersonControl::setWaitEnd ( SUMOTime  time,
MSTransportable *  person 
)

sets the arrival time for a waiting or walking person

Definition at line 119 of file MSPersonControl.cpp.

References DELTA_T, and myWaitingUntil.

Referenced by MSPerson::MSPersonStage_Waiting::proceed().

void MSPersonControl::setWalking ( MSTransportable *  p)

Definition at line 219 of file MSPersonControl.cpp.

References MSTransportable::getID(), and myWalking.

Referenced by MSPerson::MSPersonStage_Walking::proceed().

unsigned int MSPersonControl::size ( ) const
inline

Returns the number of known persons.

Returns
The number of stored persons

Definition at line 159 of file MSPersonControl.h.

References myPersons.

Referenced by TraCIServerAPI_Person::processGet().

void MSPersonControl::unsetWalking ( MSTransportable *  p)

Field Documentation

std::map<std::string, MSTransportable*> MSPersonControl::myPersons
protected
std::map<SUMOTime, PersonVector> MSPersonControl::myWaiting4Departure
protected

Persons waiting for departure.

Definition at line 172 of file MSPersonControl.h.

Referenced by checkWaitingPersons(), hasNonWaiting(), and setDeparture().

std::map<const MSEdge*, PersonVector> MSPersonControl::myWaiting4Vehicle
protected

the lists of waiting persons

Definition at line 178 of file MSPersonControl.h.

Referenced by abortWaiting(), addWaiting(), boardAnyWaiting(), isWaiting4Vehicle(), and ~MSPersonControl().

std::map<SUMOTime, PersonVector> MSPersonControl::myWaitingUntil
protected

the lists of walking / stopping persons

Definition at line 175 of file MSPersonControl.h.

Referenced by checkWaitingPersons(), hasNonWaiting(), and setWaitEnd().

std::map<std::string, MSTransportable*> MSPersonControl::myWalking
protected

all persons by id

Definition at line 169 of file MSPersonControl.h.

Referenced by hasNonWaiting(), setWalking(), and unsetWalking().


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