CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DCCBlockPrototype.h
Go to the documentation of this file.
1 // Date : 25/05/2005
2 // Author : N.Almeida (LIP)
3 
4 #ifndef DCCTBBLOCKPROTOTYPE_HH
5 #define DCCTBBLOCKPROTOTYPE_HH
6 
7 
8 #include <iostream>
9 #include <string>
10 #include <vector>
11 #include <map>
12 #include <utility>
13 #include <set>
14 #include <iostream>
15 #include <iomanip>
16 #include <stdint.h>
17 
18 class DCCTBDataParser;
19 class DCCTBDataField;
21 
22 
24 
25  public :
26 
30  uint32_t* buffer,
31  uint32_t numbBytes,
32  uint32_t wordsToEndOfEvent,
33  uint32_t wordEventOffset = 0
34  );
35 
37 
38  virtual void parseData();
39  virtual void increment(uint32_t numb, std::string msg="");
40  virtual void seeIfIsPossibleToIncrement(uint32_t numb, std::string msg="");
41  virtual uint32_t getDataWord(uint32_t wordPosition, uint32_t bitPosition, uint32_t mask);
42  virtual uint32_t getDataField(std::string name);
43  virtual void setDataField(std::string name, uint32_t data);
44 
45  virtual std::pair<bool,std::string> checkDataField(std::string name, uint32_t data);
46  virtual void displayData(std::ostream & os=std::cout);
47  virtual std::pair<bool,std::string> compare(DCCTBBlockPrototype * block);
48 
49  std::map<std::string,uint32_t> & errorCounters(){ return errors_; }
50 
51  // Block Name
52  std::string name(){ return name_;}
53 
54  // Block Size in Bytes
55  uint32_t size(){ return blockSize_; }
56 
58 
59  //Word Block Offest inside event
60  uint32_t wOffset(){ return wordEventOffset_;}
61 
62  bool blockError(){return blockError_;}
63 
68 
69  protected :
70 
71  std::string formatString(std::string myString,uint32_t minPositions);
72 
73  uint32_t * dataP_;
74  uint32_t * beginOfBuffer_;
75 
76  uint32_t blockSize_;
77  uint32_t wordCounter_;
78  uint32_t wordEventOffset_;
80 
82 
87 
89 
90  std::map<std::string,uint32_t> dataFields_;
91  std::map<std::string,uint32_t> errors_;
92 
93  std::set<DCCTBDataField *,DCCTBDataFieldComparator> * mapperFields_;
94 
95 
96 };
97 
98 
99 
100 #endif
101 
102 
103 
virtual std::pair< bool, std::string > checkDataField(std::string name, uint32_t data)
virtual uint32_t getDataField(std::string name)
std::set< DCCTBDataField *, DCCTBDataFieldComparator > * mapperFields_
virtual void increment(uint32_t numb, std::string msg="")
virtual void parseData()
DCCTBDataParser * parser_
std::map< std::string, uint32_t > dataFields_
DCCTBBlockPrototype(DCCTBDataParser *parser, std::string name, uint32_t *buffer, uint32_t numbBytes, uint32_t wordsToEndOfEvent, uint32_t wordEventOffset=0)
std::string processingString_
virtual uint32_t getDataWord(uint32_t wordPosition, uint32_t bitPosition, uint32_t mask)
virtual ~DCCTBBlockPrototype()
virtual void displayData(std::ostream &os=std::cout)
std::map< std::string, uint32_t > & errorCounters()
std::map< std::string, uint32_t > errors_
DCCTBDataParser * getParser()
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
virtual void seeIfIsPossibleToIncrement(uint32_t numb, std::string msg="")
tuple cout
Definition: gather_cfg.py:121
virtual void setDataField(std::string name, uint32_t data)
virtual std::pair< bool, std::string > compare(DCCTBBlockPrototype *block)
std::string formatString(std::string myString, uint32_t minPositions)
std::string & errorString()