Bitstream Interpretation Library (BIL)  0.1
Wire.hpp
Go to the documentation of this file.
1 
6 #pragma once
7 #ifndef BIL_WIRE_HPP
8 #define BIL_WIRE_HPP
9 
10 #include <string>
11 #include <serialization/WireBS.hpp>
13 
14 
15 namespace bil {
16 
23  class Wire {
24  public:
25 
26  /**********************************************************************/
27  /* CONSTRUCTION / DESTRUCTION */
28  /**********************************************************************/
29 
33  Wire();
34 
35 
36  /**********************************************************************/
37  /* WIRE NAME */
38  /**********************************************************************/
39 
44  std::string& name();
45 
50  const std::string& name() const;
51 
52 
53  /**********************************************************************/
54  /* WIRE CONNECTIONS */
55  /**********************************************************************/
56 
62 
67  const WireConnections& connections() const;
68 
69 
70  /**********************************************************************/
71  /* MODIFICATORS */
72  /**********************************************************************/
73 
77  void clear();
78 
79 
80  private:
81 
82  friend void writeBinary(const Wire& data, std::ostream& outputStream);
83  friend void readBinary(Wire& data, std::istream& inputStream);
84 
85  std::string m_name;
86  WireConnections m_connections;
87 
88  };
89 
91  typedef std::vector<Wire> Wires;
92 
93 }
94 
95 #endif