Bitstream Interpretation Library (BIL)  0.1
Type2Packet.hpp
Go to the documentation of this file.
1 
6 #pragma once
7 #ifndef BIL_TYPE2PACKET_HPP
8 #define BIL_TYPE2PACKET_HPP
9 
10 #include <vector>
11 #include <cstring>
12 #include <boost/cstdint.hpp>
13 #include <bitstream/Packet.hpp>
15 
16 
17 namespace bil {
18 
30  class Type2Packet: public Packet {
31  public:
32 
33  /**********************************************************************/
34  /* CONSTRUCTION / DESTRUCTION */
35  /**********************************************************************/
36 
40  Type2Packet();
41 
46  virtual Type2Packet* clone() const;
47 
48 
49  /**********************************************************************/
50  /* VISITOR INTERFACE */
51  /**********************************************************************/
52 
57  virtual void accept(PacketVisitor& visitor) const;
58 
59 
60  /**********************************************************************/
61  /* PACKET CONTENT */
62  /**********************************************************************/
63 
70 
76 
77 
87  void wordCount(size_t count);
88 
93  size_t wordCount() const;
94 
95 
101  boost::uint32_t* dataWords();
102 
108  const boost::uint32_t* dataWords() const;
109 
110 
111  /**********************************************************************/
112  /* MODIFIERS */
113  /**********************************************************************/
114 
118  virtual void clear();
119 
120 
121  private:
122 
123  std::vector<boost::uint32_t> m_data;
124  size_t m_wordCount;
125 
126  PacketOpcode::opcode_t m_opcode;
127 
128  };
129 
130 }
131 
132 #endif