00001 #ifndef CAJUN_MDF_PARSER_H
00002 #define CAJUN_MDF_PARSER_H
00003
00004
00005
00006
00007
00008
00009 #include <string>
00010
00011
00012 namespace cajun
00013 {
00014
00015
00016 class mdf_builder_t
00017 {
00018 public:
00019 virtual ~mdf_builder_t () {}
00020
00021 virtual void mdf_name (std::string const &name_) = 0;
00022 virtual void rndf (std::string const &name_) = 0;
00023 virtual void format_version (std::string const &version_) = 0;
00024 virtual void creation_date (std::string const &date_) = 0;
00025 virtual void end_file () = 0;
00026
00027
00028 virtual void checkpoints () = 0;
00029 virtual void num_checkpoints (unsigned num_) = 0;
00030 virtual void checkpoint (unsigned id_) = 0;
00031 virtual void end_checkpoints () = 0;
00032
00033
00034 virtual void speed_limits () = 0;
00035 virtual void num_speed_limits (unsigned num_) = 0;
00036 virtual void speed_limit (unsigned id_,
00037 double min_, double max_) = 0;
00038 virtual void end_speed_limits () = 0;
00039 };
00040
00041
00042 class mdf_parser_t
00043 {
00044 public:
00045 bool parse (std::string const &path_, mdf_builder_t *builder_);
00046
00047 private:
00048 };
00049
00050
00051 };
00052
00053
00054 #endif