BusBoy  2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Keyspace.h
Go to the documentation of this file.
1 
17 #ifndef __BUSBOY_KEYSPACE_H__
18 #define __BUSBOY_KEYSPACE_H__
19 
20 #include <set>
21 
22 #include "DataKeyDimension.h"
23 #include "KeyspaceDimension.h"
24 
25 namespace BUSBOY {
26 
27 class KeyspaceImpl;
28 
34 class Keyspace {
35 
36  public:
37 
38  Keyspace();
39 
40  Keyspace(const Keyspace& keyspace);
41 
42  Keyspace(const std::set<KeyspaceDimension>& dims);
43 
44  std::set<DataKeyDimension> getDimensions() const;
45 
46  size_t getDimensionCount() const;
47 
48  bool hasDimension(const DataKeyDimension& dim) const;
49 
55  bool includesKey(const DataKey& key) const;
56 
60  void validateKey(const DataKey& key) const;
61 
63 
64  std::string str() const;
65 
66  ~Keyspace();
67 
68  Keyspace& operator=(const Keyspace& keyspace);
69 
70  bool operator==(const Keyspace& keyspace) const;
71  bool operator!=(const Keyspace& keyspace) const;
72  bool operator<(const Keyspace& keyspace) const;
73 
74  private:
75 
76  KeyspaceImpl* m_impl;
77 
78 
79 };
80 
81 std::ostream& operator<<(std::ostream& os, const Keyspace& keyspace);
82 
83 }
84 
85 #endif

Copyright 2014 Google Inc. All rights reserved.