basic_data.h

00001 #ifndef _DHT_BASIC_DATA_H_
00002 #define _DHT_BASIC_DATA_H_
00003 
00004 #include <ace/Log_Msg.h>
00005 #include <stddef.h>
00006 
00007 #include <string>
00008 
00009 namespace dht {
00018     class basic_data {
00019         std::string _data;
00020     public:
00024         inline basic_data();
00032         inline basic_data(const void *data, size_t len);
00039         inline basic_data(const std::string &str);
00046         inline basic_data(const char *str);
00047 
00048         // inline basic_data(const basic_data &o);
00049 
00055         virtual ~basic_data();
00056 
00064         inline void set(const void *data, size_t len);
00071         inline void set(const std::string &str);
00078         inline void set(const char *str);
00079         
00084         inline const void *data() const;
00089         inline const char *c_str() const;
00094         inline size_t size() const;             
00095 
00096         // inline basic_data &operator=(const basic_data &o);
00097 
00098     };
00099 
00100     inline basic_data::basic_data() {}
00101     inline basic_data::basic_data(const void *data, size_t len) { 
00102         set((const char *)data, len); }
00103     inline basic_data::basic_data(const std::string &str)         { set(str); }
00104     inline basic_data::basic_data(const char   *str)         { set(str); }
00105 /*    inline basic_data::basic_data(const basic_data &o)       { 
00106         _data = o._data;
00107     }
00108 */    
00109     inline void basic_data::set(const void *data, size_t len) {
00110         _data.assign((const char *)data, len);
00111     }
00112     inline void basic_data::set(const std::string &str) {
00113         // ACE_DEBUG((LM_DEBUG, "basic_data::set string: %s\n", str.c_str()));
00114         _data.assign(str);
00115     }
00116     inline void basic_data::set(const char *str) {
00117         // ACE_DEBUG((LM_DEBUG, "basic_data::set C string: %s\n", str));
00118         _data.assign(str);
00119     }
00120     inline const void *basic_data::data() const {
00121         return (const void *)_data.data();
00122     }
00123     inline const char *basic_data::c_str() const {
00124         return _data.c_str();
00125     }
00126     inline size_t basic_data::size() const {
00127         return _data.size();
00128     }   
00129 
00130 /*
00131     inline basic_data &basic_data::operator=(const basic_data &o) {     
00132         _data = o._data;
00133         return *this;
00134     } */
00135 
00136 } // ns dht
00137 #endif // _DHT_BASIC_DATA_H_

Generated on Thu Mar 1 16:18:47 2007 for libdht by  doxygen 1.5.1