ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
FlagSavev1.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file FlagSavev1.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef FFAOBJECTS_FLAGSAVEV1_H
4 #define FFAOBJECTS_FLAGSAVEV1_H
5 
6 #include "FlagSave.h"
7 
8 #include <iostream>
9 #include <map>
10 #include <string>
11 
12 class PHFlag;
13 class PHObject;
14 
16 class FlagSavev1 : public FlagSave
17 {
18  public:
20  FlagSavev1() = default;
22  ~FlagSavev1() override = default;
23 
24  PHObject *CloneMe() const override;
25 
27  void Reset() override {}
28  int isValid() const override;
29 
33  void identify(std::ostream &os = std::cout) const override;
34 
35  int FillFromPHFlag(const PHFlag *flags) override;
36  int PutFlagsBack(PHFlag *flags) override;
37 
38  private:
39  int FillIntFromPHFlag(const PHFlag *flags);
40  int FillDoubleFromPHFlag(const PHFlag *flags);
41  int FillFloatFromPHFlag(const PHFlag *flags);
42  int FillCharFromPHFlag(const PHFlag *flags);
43 
44  int PutIntToPHFlag(PHFlag *flags);
45  int PutDoubleToPHFlag(PHFlag *flags);
46  int PutFloatToPHFlag(PHFlag *flags);
47  int PutCharToPHFlag(PHFlag *flags);
48 
49  void PrintIntFlag(std::ostream &os) const;
50  void PrintDoubleFlag(std::ostream &os) const;
51  void PrintFloatFlag(std::ostream &os) const;
52  void PrintStringFlag(std::ostream &os) const;
53 
54  std::map<std::string, int> intflag;
55  std::map<std::string, double> doubleflag;
56  std::map<std::string, float> floatflag;
57  std::map<std::string, std::string> stringflag;
58 
59  ClassDefOverride(FlagSavev1, 1)
60 
61 };
62 
63 #endif