31#include <boost/optional/optional.hpp>
59 void append(
const char *ptr,
size_t len);
67 void split(std::vector<wipeable_string> &fields)
const;
69 template<
typename T>
inline bool hex_to_pod(
T &pod)
const;
88 static_assert(std::is_pod<T>::value,
"expected pod type");
89 if (
size() !=
sizeof(
T) * 2)
91 boost::optional<epee::wipeable_string> blob =
parse_hexstr();
94 if (blob->size() !=
sizeof(
T))
96 pod = *(
const T*)blob->data();
103 template<>
struct hash<
epee::wipeable_string>
#define s(x, c)
Definition aesb.c:47
Definition wipeable_string.h:41
bool hex_to_pod(T &pod) const
Definition wipeable_string.h:86
void reserve(size_t sz)
Definition wipeable_string.cpp:240
void grow(size_t sz, size_t reserved=0)
Definition wipeable_string.cpp:106
const char * data() const noexcept
Definition wipeable_string.h:61
void split(std::vector< wipeable_string > &fields) const
Definition wipeable_string.cpp:183
char pop_back()
Definition wipeable_string.cpp:226
bool operator==(const wipeable_string &other) const noexcept
Definition wipeable_string.h:74
void push_back(char c)
Definition wipeable_string.cpp:133
void append(const char *ptr, size_t len)
Definition wipeable_string.cpp:144
bool hex_to_pod(tools::scrubbed< T > &pod) const
Definition wipeable_string.h:70
char * data() noexcept
Definition wipeable_string.h:62
boost::optional< wipeable_string > parse_hexstr() const
Definition wipeable_string.cpp:203
wipeable_string & operator=(wipeable_string &&other)
Definition wipeable_string.cpp:250
bool empty() const noexcept
Definition wipeable_string.h:65
void wipe()
Definition wipeable_string.cpp:100
void trim()
Definition wipeable_string.cpp:168
void operator+=(char c)
Definition wipeable_string.cpp:139
void resize(size_t sz)
Definition wipeable_string.cpp:235
size_t length() const noexcept
Definition wipeable_string.h:64
wipeable_string()
Definition wipeable_string.h:45
void clear()
Definition wipeable_string.cpp:245
bool operator!=(const wipeable_string &other) const noexcept
Definition wipeable_string.h:75
std::vector< char > buffer
Definition wipeable_string.h:83
~wipeable_string()
Definition wipeable_string.cpp:95
char value_type
Definition wipeable_string.h:43
size_t size() const noexcept
Definition wipeable_string.h:63
#define const
Definition ipfrdr.c:80
static const struct @232337312001244222165163271265076325023137136054 reserved[]
uint64_t FNV1a(const char *ptr, size_t sz)
Definition fnv1.h:37
TODO: (mj-xmr) This will be reduced in an another PR.
Definition byte_slice.h:40
T & unwrap(mlocked< T > &src)
Definition mlocker.h:81
size_t operator()(const epee::wipeable_string &s) const
Definition wipeable_string.h:105