PrivMX Endpoint v2.8.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:
22 static Buffer from(const std::string& str) { return Buffer(str); }
23
32 static Buffer from(const char* data, std::size_t size) { return Buffer({data, size}); }
33
37 Buffer() = default;
38
44 const std::string& stdString() const { return _data; }
45
52 std::string& stdString() { return _data; }
53
60 std::size_t size() const { return _data.size(); }
61
68 const char* data() const { return _data.data(); }
69
70 bool operator==(const Buffer& obj) const { return this->_data == obj._data; }
71
72private:
73 Buffer(const std::string& str) : _data(str) {}
74
75 std::string _data;
76};
77
78} // namespace core
79} // namespace endpoint
80} // namespace privmx
81
82#endif // _PRIVMXLIB_ENDPOINT_CORE_BUFFER_HPP_
Definition Buffer.hpp:13
const std::string & stdString() const
Definition Buffer.hpp:44
std::size_t size() const
Definition Buffer.hpp:60
static Buffer from(const char *data, std::size_t size)
Definition Buffer.hpp:32
static Buffer from(const std::string &str)
Definition Buffer.hpp:22
std::string & stdString()
Definition Buffer.hpp:52
const char * data() const
Definition Buffer.hpp:68