Building a Railroad Trip
Another way to use the server is to build complex trips with multiple stops and various options. For example, you could generate two trips from New York to San Diego via Chicago and Phoenix, using PRACTICAL routing for one and SHORTEST for the other, and then compare them.
To use a trip, you must first ask the server for a new trip. A Trip identifier is defined as a four-byte pointer:
HRESULT PCRSNewTrip (Trip *tripID)
PCRSNewTrip()
places a handle to the new trip in the pointer argument passed in (tripID
). The return code is the same as all other DLL functions (used for error handling).
You can create up to eight simultaneous trips. When finished with a trip, you should call PCRSDeleteTrip()
to clean up the trip’s memory. If you don’t, you may not be able to create more trips if you have eight trips open at once.
HRESULT PCRSDeleteTrip(Trip trip)
PCRSDeleteTrip()
returns a negative error code on error.
Once the trip is created, you can do simple calculations with a trip, or more complex ones. PCRSCalcTrip
remains an all-in-one function, while complex, multi-stop trips can be built using PCRSAddStop
/ PCRSDeleteStop
and calculated using PCRSCalculate
.