Bitstream Interpretation Library (BIL)  0.1
Instance.hpp
Go to the documentation of this file.
1 
6 #pragma once
7 #ifndef BIL_INSTANCE_HPP
8 #define BIL_INSTANCE_HPP
9 
10 #include <cstring>
11 #include <string>
12 #include <vector>
13 
14 
15 namespace bil {
16 
26  class Instance {
27  public:
28 
29  /**********************************************************************/
30  /* CONSTRUCTION / DESTRUCTION */
31  /**********************************************************************/
32 
36  Instance();
37 
38 
39  /**********************************************************************/
40  /* NAME */
41  /**********************************************************************/
42 
47  std::string& name();
48 
53  const std::string& name() const;
54 
55 
56  /**********************************************************************/
57  /* PRIMITIVE TYPE INDEX */
58  /**********************************************************************/
59 
64  void primitiveTypeIndex(size_t index);
65 
70  size_t primitiveTypeIndex() const;
71 
72 
73  /**********************************************************************/
74  /* PLACEMENT FLAG */
75  /**********************************************************************/
76 
81  void placed(bool placed);
82 
87  bool placed() const;
88 
89 
90  /**********************************************************************/
91  /* BONDED FLAG */
92  /**********************************************************************/
93 
99  void bonded(bool bonded);
100 
106  bool bonded() const;
107 
108 
109  /**********************************************************************/
110  /* TILE INDEX */
111  /**********************************************************************/
112 
117  void tileIndex(size_t index);
118 
123  size_t tileIndex() const;
124 
125 
126  /**********************************************************************/
127  /* PRIMITIVE SITE INDEX */
128  /**********************************************************************/
129 
134  void primitiveSiteIndex(size_t index);
135 
140  size_t primitiveSiteIndex() const;
141 
142 
143  /**********************************************************************/
144  /* ATTRIBUTE STRING */
145  /**********************************************************************/
146 
151  std::string& attributes();
152 
157  const std::string& attributes() const;
158 
159 
160  /**********************************************************************/
161  /* MODIFICATORS */
162  /**********************************************************************/
163 
167  void clear();
168 
169 
170  private:
171 
172  std::string m_name;
173  std::string m_attributes;
174  size_t m_tileIndex;
175  size_t m_primitiveTypeIndex;
176  size_t m_primitiveSiteIndex;
177  bool m_placed;
178  bool m_bonded;
179 
180  };
181 
182 
184  typedef std::vector<Instance> Instances;
185 
186 }
187 
188 #endif