SUMO - Simulation of Urban MObility
|
#include <MSContainerControl.h>
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 MSContainer * | buildContainer (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... | |
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.
typedef std::vector<MSContainer*> MSContainerControl::ContainerVector |
Definition at line 60 of file MSContainerControl.h.
MSContainerControl::MSContainerControl | ( | ) |
constructor
Definition at line 50 of file MSContainerControl.cpp.
|
virtual |
destructor
Definition at line 53 of file MSContainerControl.cpp.
References myContainers, and myWaiting4Vehicle.
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().
|
virtual |
Builds a new container.
[in] | pars | The parameter |
[in] | vtype | The type (reusing vehicle type container here) |
[in] | plan | This container's plan |
Reimplemented in GUIContainerControl.
Definition at line 235 of file MSContainerControl.cpp.
Referenced by MSRouteHandler::closeContainer().
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().
|
virtual |
removes a single container
Definition at line 73 of file MSContainerControl.cpp.
References OutputDevice::closeTag(), MSContainer::getDesiredDepart(), OutputDevice::getDeviceByOption(), MSContainer::getID(), MSNet::getInstance(), OptionsCont::getOptions(), myContainers, OutputDevice::openTag(), MSContainer::routeOutput(), time2string(), MSContainer::tripInfoOutput(), and OutputDevice::writeAttr().
Referenced by abortWaiting(), checkWaitingContainers(), MSContainer::MSContainerStage_Tranship::moveToNextEdge(), MSDevice_Container::notifyLeave(), and MSDevice_Container::notifyMove().
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
[in] | the | edge on which the loading should take place |
[in] | the | vehicle which is taking on containers |
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().
|
private |
all containers by id
Definition at line 126 of file MSContainerControl.h.
Referenced by add(), erase(), hasContainers(), and ~MSContainerControl().
|
private |
all containers being transhiped
Definition at line 129 of file MSContainerControl.h.
Referenced by hasNonWaiting(), setTranship(), and unsetTranship().
|
private |
Containers waiting for departure.
Definition at line 132 of file MSContainerControl.h.
Referenced by checkWaitingContainers(), hasNonWaiting(), and setDeparture().
|
private |
the lists of waiting containers
Definition at line 138 of file MSContainerControl.h.
Referenced by abortWaiting(), addWaiting(), loadAnyWaiting(), and ~MSContainerControl().
|
private |
the lists of walking / stopping containers
Definition at line 135 of file MSContainerControl.h.
Referenced by checkWaitingContainers(), hasNonWaiting(), and setWaitEnd().