MSRouteLoader Class Reference

#include <MSRouteLoader.h>


Detailed Description

Definition at line 45 of file MSRouteLoader.h.


Public Member Functions

void init ()
 resets the reader
void loadUntil (SUMOTime time, MSEmitControl *into)
bool moreAvailable () const
 returns the information whether new data is available
 MSRouteLoader (MSNet &net, MSRouteHandler *handler)
 constructor
 ~MSRouteLoader ()
 destructor

Private Attributes

MSRouteHandlermyHandler
bool myMoreAvailable
 information whether more vehicles should be available
SAX2XMLReader * myParser
 the used SAX2XMLReader
XMLPScanToken myToken
 the token for saving the current position

Constructor & Destructor Documentation

MSRouteLoader::MSRouteLoader ( MSNet net,
MSRouteHandler handler 
)

constructor

Definition at line 45 of file MSRouteLoader.cpp.

References XMLSubSys::getSAXReader(), myHandler, and myParser.

00047         : myParser(0), myMoreAvailable(true), myHandler(handler) {
00048     myParser = XMLSubSys::getSAXReader(*myHandler);
00049 }

MSRouteLoader::~MSRouteLoader (  ) 

destructor

Definition at line 52 of file MSRouteLoader.cpp.

References myHandler, and myParser.

00052                               {
00053     delete myParser;
00054     delete myHandler;
00055 }


Member Function Documentation

void MSRouteLoader::init (  ) 

resets the reader

Definition at line 59 of file MSRouteLoader.cpp.

References GenericSAXHandler::getFileName(), myHandler, myMoreAvailable, myParser, and myToken.

00059                     {
00060     myMoreAvailable = true;
00061     if (!myParser->parseFirst(myHandler->getFileName().c_str(), myToken)) {
00062         throw ProcessError("Can not read XML-file '" + myHandler->getFileName() + "'.");
00063     }
00064 }

void MSRouteLoader::loadUntil ( SUMOTime  time,
MSEmitControl into 
)

loads vehicles until a vehicle is read that starts after the specified time

Definition at line 68 of file MSRouteLoader.cpp.

References MSRouteHandler::getLastDepart(), myHandler, myMoreAvailable, myParser, myToken, and MSRouteHandler::retrieveLastReadVehicle().

00068                                                            {
00069     // read only when further data is available, no error occured
00070     //  and vehicles may be found in the between the departure time of
00071     //  the last read vehicle and the time to read until
00072     if (!myMoreAvailable || time+DELTA_T < myHandler->getLastDepart()) {
00073         return;
00074     }
00075 
00076     // if a vehicle was read before the call but was not yet added,
00077     //  add it now
00078     myHandler->retrieveLastReadVehicle(into);
00079     // read vehicles until specified time or the period to read vehicles
00080     //  until is reached
00081     while (myParser->parseNext(myToken)) {
00082         // return when the last read vehicle is beyond the period
00083         if (myHandler->getLastDepart()>=time) {
00084             return;
00085         }
00086         // otherwise add the last vehicle read (if any)
00087         myHandler->retrieveLastReadVehicle(into);
00088     }
00089 
00090     // no data are available anymore
00091     myMoreAvailable = false;
00092     return;
00093 }

bool MSRouteLoader::moreAvailable (  )  const

returns the information whether new data is available

Definition at line 97 of file MSRouteLoader.cpp.

References myMoreAvailable.

00097                                    {
00098     return myMoreAvailable;
00099 }


Field Documentation

Definition at line 73 of file MSRouteLoader.h.

Referenced by init(), loadUntil(), MSRouteLoader(), and ~MSRouteLoader().

information whether more vehicles should be available

Definition at line 71 of file MSRouteLoader.h.

Referenced by init(), loadUntil(), and moreAvailable().

SAX2XMLReader* MSRouteLoader::myParser [private]

the used SAX2XMLReader

Definition at line 65 of file MSRouteLoader.h.

Referenced by init(), loadUntil(), MSRouteLoader(), and ~MSRouteLoader().

XMLPScanToken MSRouteLoader::myToken [private]

the token for saving the current position

Definition at line 68 of file MSRouteLoader.h.

Referenced by init(), and loadUntil().


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

Generated on Wed May 5 00:06:49 2010 for Sumo - Simulation of Urban MObility by  doxygen 1.5.6