Bitstream Interpretation Library (BIL)  0.1
TileType.hpp
Go to the documentation of this file.
1 
6 #pragma once
7 #ifndef BIL_TILETYPE_HPP
8 #define BIL_TILETYPE_HPP
9 
11 #include <xdlrc/model/PIP.hpp>
13 #include <xdlrc/model/Wire.hpp>
14 
15 
16 namespace bil {
17 
27  class TileType {
28  public:
29 
30  /**********************************************************************/
31  /* CONSTRUCTION / DESTRUCTION */
32  /**********************************************************************/
33 
37  TileType();
38 
39 
40  /**********************************************************************/
41  /* TYPE NAME */
42  /**********************************************************************/
43 
48  std::string& name();
49 
54  const std::string& name() const;
55 
56 
57  /**********************************************************************/
58  /* PRIMITIVE SITE TYPES */
59  /**********************************************************************/
60 
66 
71  const PrimitiveSiteTypes& siteTypes() const;
72 
73 
74  /**********************************************************************/
75  /* WIRES */
76  /**********************************************************************/
77 
82  Wires& wires();
83 
88  const Wires& wires() const;
89 
90 
91  /**********************************************************************/
92  /* PIPS */
93  /**********************************************************************/
94 
99  PIPs& pips();
100 
105  const PIPs& pips() const;
106 
107 
108  /**********************************************************************/
109  /* MULTI-PURPOSE-TAG */
110  /**********************************************************************/
111 
116  void tag(size_t t);
117 
122  size_t tag() const;
123 
124 
125  /**********************************************************************/
126  /* MODIFICATORS */
127  /**********************************************************************/
128 
132  void clear();
133 
134 
135  private:
136 
137  friend void writeBinary(const TileType& data, std::ostream& outputStream);
138  friend void readBinary(TileType& data, std::istream& inputStream);
139 
140  std::string m_name;
141  PrimitiveSiteTypes m_siteTypes;
142  Wires m_wires;
143  PIPs m_pips;
144  size_t m_tag;
145 
146  };
147 
149  typedef std::vector<TileType> TileTypes;
150 
151 }
152 
153 #endif