00001 #ifndef _DHT_STORE_DATA_H_
00002 #define _DHT_STORE_DATA_H_
00003 
00004 #include "basic_data.h"
00005 
00006 namespace dht {
00019     class store_data : public basic_data {
00020         bool _allow_hash_transform;
00021 
00022         
00023         
00024         
00025         inline store_data(bool aht);
00026         inline store_data(const void *data, size_t len, bool aht);
00027         inline store_data(const char *str, bool aht);
00028         inline store_data(const std::string &str, bool aht);
00029         
00030 
00031         virtual ~store_data();
00032         
00033         friend class key;
00034         friend class value;
00035     public:     
00039         inline bool allow_hash_transform() const;
00043         inline void allow_hash_transform(bool a);
00044         
00045         
00046     };
00047     
00048     inline store_data::store_data(bool aht) : basic_data() { 
00049         _allow_hash_transform = aht;
00050     }
00051     
00052     inline store_data::store_data(const void *data, size_t len, bool aht) 
00053         : basic_data(data, len) { _allow_hash_transform = aht; }
00054 
00055     inline store_data::store_data(const char *str, bool aht) 
00056         : basic_data(str) 
00057     {
00058         _allow_hash_transform = aht;
00059     }
00060         
00061     inline store_data::store_data(const std::string &str, bool aht) 
00062         : basic_data(str) 
00063     {
00064         _allow_hash_transform = aht;
00065     }
00066 
00067 
00068 
00069 
00070 
00071 
00072     inline bool 
00073     store_data::allow_hash_transform() const { return _allow_hash_transform; }
00074     inline void
00075     store_data::allow_hash_transform(bool a) { _allow_hash_transform = a; }
00076 
00077 
00078 
00079 
00080 
00081 
00082 
00083     
00084     
00085 }
00086 
00087 #endif //_VALUE_H_