Bitstream Interpretation Library (BIL)  0.1
Element.hpp
Go to the documentation of this file.
1 
6 #pragma once
7 #ifndef BIL_ELEMENT_HPP
8 #define BIL_ELEMENT_HPP
9 
10 #include <string>
11 #include <vector>
13 
14 
15 namespace bil {
16 
18  typedef std::vector<std::string> ConfigurationOptions;
19 
20 
28  class Element {
29  public:
30 
31  /**********************************************************************/
32  /* CONSTRUCTION / DESTRUCTION */
33  /**********************************************************************/
34 
38  Element();
39 
40 
41  /**********************************************************************/
42  /* ELEMENT NAME */
43  /**********************************************************************/
44 
49  std::string& name();
50 
55  const std::string& name() const;
56 
57 
58  /**********************************************************************/
59  /* CONFIGURATION OPTIONS */
60  /**********************************************************************/
61 
67 
72  const ConfigurationOptions& options() const;
73 
74 
75  /**********************************************************************/
76  /* MODIFICATORS */
77  /**********************************************************************/
78 
82  void clear();
83 
84 
85  private:
86 
87  friend void writeBinary(const Element& data, std::ostream& outputStream);
88  friend void readBinary(Element& data, std::istream& inputStream);
89 
90  std::string m_name;
91  ConfigurationOptions m_options;
92 
93  };
94 
96  typedef std::vector<Element> Elements;
97 
98 }
99 
100 #endif