otsdaq_components  v2_02_00
FirmwareSequence.h
1 #ifndef _ots_FirmwareSequence_h
2 #define _ots_FirmwareSequence_h
3 
4 #include <vector>
5 
6 namespace ots
7 {
8 template <typename T>
10 {
11 public:
12  typedef std::vector<std::pair<T,std::vector<T> > > Sequence;//It is a vector of pairs of addresses and data to send to the Firmware
13  typedef typename Sequence::iterator iterator;
14  typedef typename Sequence::const_iterator const_iterator ;
15 
16  FirmwareSequence(void){;}
17  virtual ~FirmwareSequence(void){;}
18 
19  //Getters
20  const Sequence& getSequence(void) const {return theSequence_;}
21 
22  inline void pushBack(std::pair<T,std::vector<T> > entry) {theSequence_.push_back(entry);}
23  inline void pushBack(T address, const std::vector<T>& data) {theSequence_.push_back(std::pair<T,std::vector<T> >(address, data));}
24  inline void pushBack(T address, const T& data) {theSequence_.push_back(std::pair<T,std::vector<T> >(address, std::vector<T>(1,data)));}
25  void clear (void) {theSequence_.clear();}
26 
27  iterator begin(void){return theSequence_.begin();}
28  iterator end (void){return theSequence_.end();}
29 
30  const const_iterator begin(void) const {return theSequence_.begin();}
31  const const_iterator end (void) const {return theSequence_.end();}
32 
33 private:
34  Sequence theSequence_;
35 };
36 
37 }
38 
39 #endif