PrivMX Endpoint v2.7.0
Loading...
Searching...
No Matches
Buffer.hpp
1#ifndef _PRIVMXLIB_ENDPOINT_CORE_BUFFER_HPP_
2#define _PRIVMXLIB_ENDPOINT_CORE_BUFFER_HPP_
3
4#include <string>
5
6namespace privmx {
7namespace endpoint {
8namespace core {
9
13class Buffer {
14public:
15
23 static Buffer from(const std::string& str) { return Buffer(str); }
24
33 static Buffer from(const char* data, std::size_t size) { return Buffer({data, size}); }
34
38 Buffer() = default;
39
45 const std::string& stdString() const { return _data; }
46
53 std::string& stdString() { return _data; }
54
61 std::size_t size() const { return _data.size(); }
62
63
70 const char* data() const { return _data.data(); }
71
72 bool operator==(const Buffer& obj) const {return this->_data == obj._data;}
73
74private:
75 Buffer(const std::string& str) : _data(str) {}
76
77 std::string _data;
78};
79
80} // namespace core
81} // namespace endpoint
82} // namespace privmx
83
84#endif // _PRIVMXLIB_ENDPOINT_CORE_BUFFER_HPP_
Definition Buffer.hpp:13
const std::string & stdString() const
Definition Buffer.hpp:45
std::size_t size() const
Definition Buffer.hpp:61
static Buffer from(const char *data, std::size_t size)
Definition Buffer.hpp:33
static Buffer from(const std::string &str)
Definition Buffer.hpp:23
std::string & stdString()
Definition Buffer.hpp:53
const char * data() const
Definition Buffer.hpp:70