Bitstream Interpretation Library (BIL)  0.1
Device.hpp
Go to the documentation of this file.
1 
6 #pragma once
7 #ifndef BIL_DEVICE_HPP
8 #define BIL_DEVICE_HPP
9 
12 #include <xdlrc/model/Tile.hpp>
13 #include <xdlrc/model/TileType.hpp>
14 
15 
16 namespace bil {
17 
27  class Device {
28  public:
29 
30  /**********************************************************************/
31  /* CONSTRUCTION / DESTRUCTION */
32  /**********************************************************************/
33 
37  Device();
38 
39 
40  /**********************************************************************/
41  /* DEVICE NAME */
42  /**********************************************************************/
43 
48  std::string& name();
49 
54  const std::string& name() const;
55 
56 
57  /**********************************************************************/
58  /* TILES */
59  /**********************************************************************/
60 
65  Tiles& tiles();
66 
71  const Tiles& tiles() const;
72 
73 
78  unsigned maxRowIndex() const;
79 
84  unsigned maxColumnIndex() const;
85 
86 
87  /**********************************************************************/
88  /* TILE TYPES */
89  /**********************************************************************/
90 
96 
101  const TileTypes& tileTypes() const;
102 
103 
104  /**********************************************************************/
105  /* PRIMITIVE TYPES */
106  /**********************************************************************/
107 
113 
118  const PrimitiveTypes& primitiveTypes() const;
119 
120 
121  /**********************************************************************/
122  /* MODIFICATORS */
123  /**********************************************************************/
124 
128  void clear();
129 
130 
131  private:
132 
133  friend void writeBinary(const Device& data, std::ostream& outputStream);
134  friend void readBinary(Device& data, std::istream& inputStream);
135 
136  std::string m_name;
137  Tiles m_tiles;
138  TileTypes m_tileTypes;
139  PrimitiveTypes m_primitiveTypes;
140 
141  };
142 
143 }
144 
145 #endif