00001 #ifndef _ots_FirmwareSequence_h
00002 #define _ots_FirmwareSequence_h
00003
00004 #include <vector>
00005
00006 namespace ots
00007 {
00008 template <typename T>
00009 class FirmwareSequence
00010 {
00011 public:
00012 typedef std::vector<std::pair<T,std::vector<T> > > Sequence;
00013 typedef typename Sequence::iterator iterator;
00014 typedef typename Sequence::const_iterator const_iterator ;
00015
00016 FirmwareSequence(void){;}
00017 virtual ~FirmwareSequence(void){;}
00018
00019
00020 const Sequence& getSequence(void) const {return theSequence_;}
00021
00022 inline void pushBack(std::pair<T,std::vector<T> > entry) {theSequence_.push_back(entry);}
00023 inline void pushBack(T address, const std::vector<T>& data) {theSequence_.push_back(std::pair<T,std::vector<T> >(address, data));}
00024 inline void pushBack(T address, const T& data) {theSequence_.push_back(std::pair<T,std::vector<T> >(address, std::vector<T>(1,data)));}
00025 void clear (void) {theSequence_.clear();}
00026
00027 iterator begin(void){return theSequence_.begin();}
00028 iterator end (void){return theSequence_.end();}
00029
00030 const const_iterator begin(void) const {return theSequence_.begin();}
00031 const const_iterator end (void) const {return theSequence_.end();}
00032
00033 private:
00034 Sequence theSequence_;
00035 };
00036
00037 }
00038
00039 #endif