2 #include <msp/parser/parser.h>
11 Track *Catalogue::get_track(unsigned art_nr)
13 TrackMap::const_iterator i=tracks.find(art_nr);
21 void Catalogue::load(const string &fn)
23 ifstream in(fn.c_str());
25 throw Exception("File not found");
27 Parser::Parser parser(in, fn);
32 Catalogue::~Catalogue()
34 for(TrackMap::iterator i=tracks.begin(); i!=tracks.end(); ++i)
38 Catalogue::Loader::Loader(Catalogue &c):
41 add("track", &Loader::track);
44 void Catalogue::Loader::track(unsigned art_no)
46 TrackMap::iterator i=cat.tracks.find(art_no);
47 if(i!=cat.tracks.end())
48 throw Exception("Duplicate track number");
50 Track *trk=new Track(art_no);
55 catch(const Msp::Exception &)
60 cat.tracks.insert(TrackMap::value_type(trk->get_article_number(), trk));
63 } // namespace Marklin