Code for MUON Station1 (I.Hrivnacova)
[u/mrichter/AliRoot.git] / MUON / AliMUONSt1IniReader.h
CommitLineData
ba030c0e 1#ifndef ALI_MUON_ST1_INI_READER_H
2#define ALI_MUON_ST1_INI_READER_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
7
8// Authors: David Guez, Ivana Hrivnacova, Marion MacCormick; IPN Orsay
9//
10// Class AliMUONIniReader
11// ----------------------
12// General class to read data in ASCII file format,
13// similar to the Windows ".ini" files (a set of sections tagged by a
14// [ sectionName ]
15// and values defined in the way:
16// parameterName = value
17//
18// comment lines can be introduced if the first non-blank character
19// is either ';' or '#'
20
21
22#include <string>
23#include <vector>
24#include <map>
25#include <utility>
26#include <fstream>
27
5f91c9e8 28#include "AliMUONSt1Types.h"
ba030c0e 29
30class AliMUONSt1IniReader
31{
32 public:
33 enum TType {kUndef,kChapter,kValue};
5f91c9e8 34
ba030c0e 35 typedef pair<string,string> TValuePair;
36 typedef vector<TValuePair> TValueList;
37 typedef pair<string,TValueList> TChapter;
38 typedef multimap <string,TValueList> TChapterList;
39
40 public:
41 AliMUONSt1IniReader();
42 AliMUONSt1IniReader(string fileName);
43 virtual ~AliMUONSt1IniReader();
44
45 bool ReadNextLine();
46 TType GetCurrentType() const {return fCurrentType; }
47 string GetCurrentName() const {return fCurrentName; }
48 string GetCurrentValue() const {return fCurrentValue;}
49 TChapter MakeCurrentChapter();
50 TValueList MakeCurrentValueList();
51 TChapterList MakeChapterList();
52 bool Eof() {return fEndOfFile;}
53 void Reset() ;
54
55 private:
56 string trail(const string& s) const;
57
58 ifstream fFile; // the file to be read
59 TType fCurrentType; // current type of line (either kChapter or kValue)
60 string fCurrentName; // name of chapter / name of parameter pair
61 string fCurrentValue;// value of the parameter pair if the type is kValue
62 bool fEndOfFile; // true if the file is entirely read
63};
64
65#endif //ALI_MUON_ST1_INI_READER_H