BusBoy  2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
DataKey.h
Go to the documentation of this file.
1 
17 #ifndef __BUSBOY_DATA_KEY_H__
18 #define __BUSBOY_DATA_KEY_H__
19 
20 #include <set>
21 #include <string>
22 #include <ostream>
23 
24 #include "DataKeyDimension.h"
25 #include "DataKeyElement.h"
26 
27 namespace BUSBOY {
28 
29 class DataKeyImpl;
30 
36 class DataKey {
37 
38  public:
39 
44  DataKey();
45 
49  DataKey(const DataKeyElement& element);
50 
54  DataKey(
55  const DataKeyElement& element1,
56  const DataKeyElement& element2
57  );
58 
62  DataKey(
63  const DataKeyElement& element1,
64  const DataKeyElement& element2,
65  const DataKeyElement& element3
66  );
67 
71  DataKey(const std::set<DataKeyElement>& elements);
72 
73  DataKey(const DataKey& key);
74 
75  std::set<DataKeyDimension> getDimensions() const;
76 
77  size_t getElementCount() const;
78 
79  bool hasDimension(const DataKeyDimension& dim) const;
80 
81  bool hasElement(const DataKeyElement& element) const;
82 
83  std::set<DataKeyElement> getElements() const;
84 
85  DataKeyElement getElement(const DataKeyDimension& dim) const;
86 
87  std::string str() const;
88 
92  std::string toName(const std::string& delim) const;
93 
94  ~DataKey();
95 
96  DataKey& operator=(const DataKey& key);
97 
98  bool operator==(const DataKey& key) const;
99  bool operator!=(const DataKey& key) const;
100  bool operator<(const DataKey& key) const;
101 
102  private:
103 
104  DataKeyImpl* m_impl;
105 
106 
107 };
108 
109 std::ostream& operator<<(std::ostream& os, const DataKey& key);
110 
111 }
112 
113 #endif

Copyright 2014 Google Inc. All rights reserved.