| 1 | /** @file | 
| 2 | * $Author: nagni $ | 
| 3 | * $Date: 2004/03/16 10:18:28 $ | 
| 4 | * $Revision: 1.6 $ | 
| 5 | * | 
| 6 | * Header file for the algorithms used to read the techmodel data file. | 
| 7 | */ | 
| 8 |  | 
| 9 | #include "TechmodelPamelaRun.h" | 
| 10 | #include "TechmodelAlgorithm.h" | 
| 11 |  | 
| 12 | namespace pamela { | 
| 13 | namespace techmodel { | 
| 14 | /** | 
| 15 | * Main event reader algorithm. It handles all other specific | 
| 16 | * reader algorithms. | 
| 17 | */ | 
| 18 | class EventReader: public TechmodelAlgorithm { | 
| 19 | private: | 
| 20 | /** | 
| 21 | * A map with an algorithm to read the techmodel file with the packet | 
| 22 | * type as key. | 
| 23 | */ | 
| 24 | typedef std::map<const PacketType *, TechmodelAlgorithm *> AlgorithmMap; | 
| 25 | /** | 
| 26 | * The map that links every packet type to an algorithm that reads it. | 
| 27 | */ | 
| 28 | AlgorithmMap TechmodelAlgorithmMap; //! | 
| 29 | /** | 
| 30 | * The event header. | 
| 31 | */ | 
| 32 | EventHeader* Header; //! | 
| 33 | /** | 
| 34 | * The Run that is processed. | 
| 35 | */ | 
| 36 | TechmodelPamelaRun *Run; //! | 
| 37 | int  UnpackPscuHeader(void) throw (std::exception); | 
| 38 | void UnpackPscuTrailer(void) throw (std::exception); | 
| 39 | public: | 
| 40 | EventReader(void); | 
| 41 | virtual void Init(PamelaRun *); | 
| 42 | virtual void RunEvent(int); | 
| 43 | virtual std::string GetVersionInfo(void) const; | 
| 44 | virtual int FindStart(void) throw (std::exception); | 
| 45 | ClassDef(EventReader, 1) | 
| 46 | }; | 
| 47 | } | 
| 48 | } |