00001 00013 #ifndef IPATHFINDER_H_INCLUDED 00014 #define IPATHFINDER_H_INCLUDED 00015 00016 #include <boost/noncopyable.hpp> 00017 #include <boost/shared_ptr.hpp> 00018 #include <vector> 00019 00020 class StationsDB; 00021 class PathResult; 00022 class Station; 00023 typedef boost::shared_ptr<const Station> SharedConstStation; 00024 00026 00029 class IPathFinder : boost::noncopyable 00030 { 00031 public: 00032 virtual ~IPathFinder() {} 00041 virtual void init( 00042 const StationsDB &stationDB, 00043 int stepDuration, 00044 int changeLineDuration) = 0; 00045 00056 virtual boost::shared_ptr<PathResult> find( 00057 const StationsDB &stationDB, 00058 SharedConstStation startStation, 00059 const std::vector<SharedConstStation> &interStations, 00060 SharedConstStation endStation, 00061 bool isOptim) const = 0; 00062 }; 00063 00064 #endif // IPATHFINDER_H_INCLUDED