Bitstream Interpretation Library (BIL)  0.1
PIPControlSet.hpp
Go to the documentation of this file.
1 
6 #pragma once
7 #ifndef BIL_PIPCONTROLSET_HPP
8 #define BIL_PIPCONTROLSET_HPP
9 
12 
13 
14 namespace bil {
15 
16  typedef std::vector<size_t> BitPositions;
17 
18 
27  class PIPControlSet {
28  public:
29 
30  /**********************************************************************/
31  /* CONSTRUCTION / DESTRUCTION */
32  /**********************************************************************/
33 
37  PIPControlSet();
38 
39 
40  /**********************************************************************/
41  /* BIT POSITIONS */
42  /**********************************************************************/
43 
49 
54  const BitPositions& bitPositions() const;
55 
56 
57  /**********************************************************************/
58  /* PIP BIT VALUES */
59  /**********************************************************************/
60 
66 
71  const PIPBitValues& pipBitValues() const;
72 
73 
74  /**********************************************************************/
75  /* MODIFICATORS */
76  /**********************************************************************/
77 
81  void clear();
82 
83 
84  private:
85 
86  friend void writeBinary(const PIPControlSet& data, std::ostream& outputStream);
87  friend void readBinary(PIPControlSet& data, std::istream& inputStream);
88 
89  BitPositions m_bitPositions;
90  PIPBitValues m_pipBitValues;
91 
92  };
93 
94 
96  typedef std::vector<PIPControlSet> PIPControlSets;
97 
98 }
99 
100 #endif