Bitstream Interpretation Library (BIL)  0.1
Net.hpp
Go to the documentation of this file.
1 
6 #pragma once
7 #ifndef BIL_NET_HPP
8 #define BIL_NET_HPP
9 
10 #include <string>
11 #include <xdl/model/NetType.hpp>
12 #include <xdl/model/PinRef.hpp>
13 #include <xdl/model/PIPRef.hpp>
14 
15 
16 namespace bil {
17 
23  class Net {
24  public:
25 
26  /**********************************************************************/
27  /* CONSTRUCTION / DESTRUCTION */
28  /**********************************************************************/
29 
33  Net();
34 
35 
36  /**********************************************************************/
37  /* NAME */
38  /**********************************************************************/
39 
44  std::string& name();
45 
50  const std::string& name() const;
51 
52 
53  /**********************************************************************/
54  /* NET TYPE */
55  /**********************************************************************/
56 
61  void type(NetType::net_t type);
62 
67  NetType::net_t type() const;
68 
69 
70  /**********************************************************************/
71  /* ATTATCHED PINS */
72  /**********************************************************************/
73 
78  PinRefs& pinRefs();
79 
84  const PinRefs& pinRefs() const;
85 
86 
87  /**********************************************************************/
88  /* PIPS IN THE NET */
89  /**********************************************************************/
90 
95  PIPRefs& pipRefs();
96 
101  const PIPRefs& pipRefs() const;
102 
103 
104  /**********************************************************************/
105  /* ATTRIBUTE STRING */
106  /**********************************************************************/
107 
112  std::string& attributes();
113 
118  const std::string& attributes() const;
119 
120 
121  /**********************************************************************/
122  /* MODIFICATORS */
123  /**********************************************************************/
124 
128  void clear();
129 
130 
131  private:
132 
133  std::string m_name;
134  std::string m_attributes;
135  PinRefs m_pinRefs;
136  PIPRefs m_pipRefs;
137  NetType::net_t m_type;
138 
139  };
140 
141 
143  typedef std::vector<Net> Nets;
144 
145 }
146 
147 #endif