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

#include <MSContainerControl.h>

Inheritance diagram for MSContainerControl:
GUIContainerControl

Public Types

typedef std::vector
< MSContainer * > 
ContainerVector
 

Public Member Functions

void abortWaiting ()
 aborts the plan for any container that is still waiting for a ride More...
 
bool add (const std::string &id, MSContainer *container)
 adds a single container, returns false if an id clash occured More...
 
void addWaiting (const MSEdge *edge, MSContainer *container)
 adds a container to the list of containers waiting for a vehicle on the specified edge More...
 
virtual MSContainerbuildContainer (const SUMOVehicleParameter *pars, const MSVehicleType *vtype, MSContainer::MSContainerPlan *plan) const
 Builds a new container. More...
 
void checkWaitingContainers (MSNet *net, const SUMOTime time)
 checks whether any containers waiting time is over More...
 
virtual void erase (MSContainer *container)
 removes a single container More...
 
bool hasContainers () const
 checks whether any container waits to finish her plan More...
 
bool hasNonWaiting () const
 checks whether any container is still engaged in walking / stopping More...
 
bool loadAnyWaiting (MSEdge *edge, MSVehicle *vehicle, MSVehicle::Stop *stop)
 load any applicable containers Loads any container that is waiting on that edge for the given vehicle and removes them from myWaiting More...
 
 MSContainerControl ()
 constructor More...
 
void setDeparture (SUMOTime time, MSContainer *container)
 sets the arrival time for a waiting container More...
 
void setTranship (MSContainer *c)
 adds a container to myTranship More...
 
void setWaitEnd (SUMOTime time, MSContainer *container)
 sets the arrival time for a waiting container More...
 
void unsetTranship (MSContainer *c)
 removes a container from myTranship More...
 
virtual ~MSContainerControl ()
 destructor More...
 

Private Attributes

std::map< std::string,
MSContainer * > 
myContainers
 all containers by id More...
 
std::map< std::string,
MSContainer * > 
myTranship
 all containers being transhiped More...
 
std::map< SUMOTime,
ContainerVector
myWaiting4Departure
 Containers waiting for departure. More...
 
std::map< const MSEdge
*, ContainerVector
myWaiting4Vehicle
 the lists of waiting containers More...
 
std::map< SUMOTime,
ContainerVector
myWaitingUntil
 the lists of walking / stopping containers More...
 

Detailed Description

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

Definition at line 57 of file MSContainerControl.h.

Member Typedef Documentation

Definition at line 60 of file MSContainerControl.h.

Constructor & Destructor Documentation

MSContainerControl::MSContainerControl ( )

constructor

Definition at line 50 of file MSContainerControl.cpp.

MSContainerControl::~MSContainerControl ( )
virtual

destructor

Definition at line 53 of file MSContainerControl.cpp.

References myContainers, and myWaiting4Vehicle.

Member Function Documentation

void MSContainerControl::abortWaiting ( )

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

Definition at line 220 of file MSContainerControl.cpp.

References erase(), MSContainer::getID(), myWaiting4Vehicle, MSEdge::removeContainer(), and WRITE_WARNING.

Referenced by MSNet::simulationState().

bool MSContainerControl::add ( const std::string &  id,
MSContainer container 
)

adds a single container, returns false if an id clash occured

Definition at line 63 of file MSContainerControl.cpp.

References myContainers.

void MSContainerControl::addWaiting ( const MSEdge edge,
MSContainer container 
)

adds a container to the list of containers waiting for a vehicle on the specified edge

Definition at line 142 of file MSContainerControl.cpp.

References myWaiting4Vehicle.

Referenced by MSContainer::MSContainerStage_Driving::proceed().

MSContainer * MSContainerControl::buildContainer ( const SUMOVehicleParameter pars,
const MSVehicleType vtype,
MSContainer::MSContainerPlan plan 
) const
virtual

Builds a new container.

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

Reimplemented in GUIContainerControl.

Definition at line 235 of file MSContainerControl.cpp.

Referenced by MSRouteHandler::closeContainer().

void MSContainerControl::checkWaitingContainers ( MSNet net,
const SUMOTime  time 
)

checks whether any containers waiting time is over

Definition at line 117 of file MSContainerControl.cpp.

References erase(), myWaiting4Departure, and myWaitingUntil.

Referenced by MSNet::simulationStep().

bool MSContainerControl::hasContainers ( ) const

checks whether any container waits to finish her plan

Definition at line 193 of file MSContainerControl.cpp.

References myContainers.

bool MSContainerControl::hasNonWaiting ( ) const

checks whether any container is still engaged in walking / stopping

Definition at line 199 of file MSContainerControl.cpp.

References myTranship, myWaiting4Departure, and myWaitingUntil.

Referenced by MSNet::simulationState().

bool MSContainerControl::loadAnyWaiting ( MSEdge edge,
MSVehicle vehicle,
MSVehicle::Stop stop 
)

load any applicable containers Loads any container that is waiting on that edge for the given vehicle and removes them from myWaiting

Parameters
[in]theedge on which the loading should take place
[in]thevehicle which is taking on containers
Returns
Whether any containers have been loaded

Definition at line 157 of file MSContainerControl.cpp.

References MSVehicle::addContainer(), MSVehicle::Stop::duration, MSVehicle::Stop::endPos, MSVehicleType::getContainerCapacity(), MSVehicle::getContainerNumber(), MSNet::getCurrentTimeStep(), MSNet::getInstance(), MSVehicleType::getLoadingDuration(), MSBaseVehicle::getParameter(), MSBaseVehicle::getVehicleType(), SUMOVehicleParameter::id, SUMOVehicleParameter::line, myWaiting4Vehicle, MSEdge::removeContainer(), MSVehicle::Stop::startPos, and MSVehicle::Stop::timeToLoadNextContainer.

Referenced by MSVehicle::processNextStop().

void MSContainerControl::setDeparture ( SUMOTime  time,
MSContainer container 
)

sets the arrival time for a waiting container

Definition at line 97 of file MSContainerControl.cpp.

References DELTA_T, and myWaiting4Departure.

Referenced by MSRouteHandler::closeContainer().

void MSContainerControl::setTranship ( MSContainer c)

adds a container to myTranship

Definition at line 205 of file MSContainerControl.cpp.

References MSContainer::getID(), and myTranship.

Referenced by MSContainer::MSContainerStage_Tranship::proceed().

void MSContainerControl::setWaitEnd ( SUMOTime  time,
MSContainer container 
)

sets the arrival time for a waiting container

Definition at line 107 of file MSContainerControl.cpp.

References DELTA_T, and myWaitingUntil.

Referenced by MSContainer::MSContainerStage_Waiting::proceed().

void MSContainerControl::unsetTranship ( MSContainer c)

removes a container from myTranship

Definition at line 211 of file MSContainerControl.cpp.

References MSContainer::getID(), and myTranship.

Referenced by MSContainer::MSContainerStage_Tranship::moveToNextEdge().

Field Documentation

std::map<std::string, MSContainer*> MSContainerControl::myContainers
private

all containers by id

Definition at line 126 of file MSContainerControl.h.

Referenced by add(), erase(), hasContainers(), and ~MSContainerControl().

std::map<std::string, MSContainer*> MSContainerControl::myTranship
private

all containers being transhiped

Definition at line 129 of file MSContainerControl.h.

Referenced by hasNonWaiting(), setTranship(), and unsetTranship().

std::map<SUMOTime, ContainerVector> MSContainerControl::myWaiting4Departure
private

Containers waiting for departure.

Definition at line 132 of file MSContainerControl.h.

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

std::map<const MSEdge*, ContainerVector> MSContainerControl::myWaiting4Vehicle
private

the lists of waiting containers

Definition at line 138 of file MSContainerControl.h.

Referenced by abortWaiting(), addWaiting(), loadAnyWaiting(), and ~MSContainerControl().

std::map<SUMOTime, ContainerVector> MSContainerControl::myWaitingUntil
private

the lists of walking / stopping containers

Definition at line 135 of file MSContainerControl.h.

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


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