BusBoy  2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
MetadataMap.h
Go to the documentation of this file.
1 
17 #ifndef __BUSBOY_METADATA_MAP_H__
18 #define __BUSBOY_METADATA_MAP_H__
19 
20 #include <set>
21 #include <string>
22 
23 #include "MetadataElement.h"
24 
25 namespace BUSBOY {
26 
27 class MetadataMapImpl;
28 
33 class MetadataMap : public MetadataElement {
34 
35  public:
36 
37  MetadataMap();
38 
44  void putElement(const std::string& name, const CloneableMetadataElement& element);
45 
52  void putElement(const std::string& name, MetadataElement* element);
53 
57  MetadataElement* getElement(const std::string& name) const;
58 
59  bool contains(const std::string& name) const;
60 
61  size_t getSize() const;
62 
63  std::set<std::string> getAllNames() const;
64 
66 
67  bool operator==(const MetadataMap& map) const;
68 
69  bool operator==(const MetadataElement& element) const;
70 
71  bool operator!=(const MetadataMap& map) const;
72 
73  bool operator!=(const MetadataElement& element) const;
74 
75  ~MetadataMap();
76 
77  static const MetadataMap* castToMap(const MetadataElement* element);
78 
79  static MetadataMap* castToMap(MetadataElement* element);
80 
81  static const MetadataMap& castToMap(const MetadataElement& element);
82 
83  static MetadataMap& castToMap(MetadataElement& element);
84 
85  private:
86 
87  MetadataMapImpl* m_impl;
88 
89  // prevent calling these
90  MetadataMap(const MetadataMap& map);
91  MetadataMap& operator=(const MetadataMap& map);
92 
93 };
94 
95 }
96 #endif
97 

Copyright 2014 Google Inc. All rights reserved.