00001 #ifndef _DHT_VALUE_H_
00002 #define _DHT_VALUE_H_
00003
00004 #include "store_data.h"
00005 #include "name_value_map.h"
00006
00007 namespace dht {
00027 class value : public store_data {
00028 name_value_map _meta;
00029 public:
00035 inline value();
00042 inline value(const void *data, size_t len, bool aht = true);
00048 inline value(const char *str, bool aht = true);
00054 inline value(const std::string &str, bool aht = true);
00055 virtual ~value();
00056
00065 inline dht::name_value_map &meta();
00072 inline const dht::name_value_map &meta() const;
00073 };
00074
00075 inline value::value()
00076 : store_data(true) {}
00077 inline value::value(const void *data, size_t len, bool aht)
00078 : store_data(data, len, aht) {}
00079 inline value::value(const char *str, bool aht)
00080 : store_data(str, aht) {}
00081 inline value::value(const std::string &str, bool aht)
00082 : store_data(str, aht) {}
00083
00084 inline name_value_map &value::meta() {
00085 return _meta; }
00086
00087 inline const name_value_map &value::meta() const {
00088 return _meta; }
00089
00090 }
00091
00092 #endif //_DHT_VALUE_H_