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
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
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
00106
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
00114 _data.assign(str);
00115 }
00116 inline void basic_data::set(const char *str) {
00117
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
00132
00133
00134
00135
00136 }
00137 #endif // _DHT_BASIC_DATA_H_