24#ifndef __mqtt_buffer_ref_h
25#define __mqtt_buffer_ref_h
72 using blob = std::basic_string<value_type>;
139 sizeof(char) ==
sizeof(T),
"can only use C arr with char or byte buffers"
186 sizeof(char) ==
sizeof(T),
"can only use C arr with char or byte buffers"
200 template <
typename OT>
203 sizeof(OT) ==
sizeof(T),
"Can only assign buffers if values the same size"
219 explicit operator bool()
const {
return bool(data_); }
233 bool empty()
const {
return !data_ || data_->empty(); }
243 size_t size()
const {
return data_->size(); }
248 size_t length()
const {
return data_->length(); }
264 const char*
c_str()
const {
return data_->c_str(); }
Definition buffer_ref.h:61
buffer_ref(const char *buf)
Definition buffer_ref.h:136
buffer_ref(pointer_type &&p)
Definition buffer_ref.h:124
T value_type
Definition buffer_ref.h:67
buffer_ref & operator=(blob &&b)
Definition buffer_ref.h:175
buffer_ref & operator=(const buffer_ref &rhs)=default
buffer_ref & operator=(buffer_ref &&rhs)=default
buffer_ref(const buffer_ref &buf)=default
const char * c_str() const
Definition buffer_ref.h:264
size_t size() const
Definition buffer_ref.h:243
buffer_ref & operator=(const buffer_ref< OT > &rhs)
Definition buffer_ref.h:201
bool is_null() const
Definition buffer_ref.h:227
buffer_ref & operator=(const blob &b)
Definition buffer_ref.h:163
const value_type * data() const
Definition buffer_ref.h:238
const blob & to_string() const
Definition buffer_ref.h:258
std::basic_string< value_type > blob
Definition buffer_ref.h:72
const value_type & operator[](size_t i) const
Definition buffer_ref.h:275
const blob & str() const
Definition buffer_ref.h:253
std::shared_ptr< const blob > pointer_type
Definition buffer_ref.h:77
const pointer_type & ptr() const
Definition buffer_ref.h:269
size_t length() const
Definition buffer_ref.h:248
buffer_ref(const blob &b)
Definition buffer_ref.h:102
buffer_ref & operator=(const char *cstr)
Definition buffer_ref.h:184
buffer_ref(const value_type *buf, size_t n)
Definition buffer_ref.h:130
buffer_ref(buffer_ref &&buf)=default
void reset()
Definition buffer_ref.h:211
buffer_ref(const pointer_type &p)
Definition buffer_ref.h:116
bool empty() const
Definition buffer_ref.h:233
buffer_ref(blob &&b)
Definition buffer_ref.h:108
Definition async_client.h:60
buffer_ref< char > binary_ref
Definition buffer_ref.h:305
std::ostream & operator<<(std::ostream &os, const buffer_ref< T > &buf)
Definition buffer_ref.h:286
buffer_ref< char > string_ref
Definition buffer_ref.h:297