From 4a13df61b92b8bf673f8a71d5fa0abf0356a4899 Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Thu, 10 Mar 2022 12:39:04 +0500 Subject: add Doxygen docs --- include/winapi/buffer.hpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'include/winapi/buffer.hpp') diff --git a/include/winapi/buffer.hpp b/include/winapi/buffer.hpp index 4d47930..10ff479 100644 --- a/include/winapi/buffer.hpp +++ b/include/winapi/buffer.hpp @@ -16,33 +16,45 @@ namespace winapi { +/** + * @brief Binary data container. + * + * This class wraps a blob of binary data. + */ class Buffer : public std::vector { public: typedef std::vector Parent; Buffer() = default; + /** Construct a buffer from an explicit list of byte values. */ Buffer(std::initializer_list lst) : Parent{lst} {} + /** Construct a buffer from an instance of `std::vector`. */ explicit Buffer(Parent&& src) : Parent{std::move(src)} {} + /** Construct a buffer from an instance of `std::basic_string`. */ template explicit Buffer(const std::basic_string& src) { set(src); } + /** Construct a buffer from a memory region. */ Buffer(const void* src, std::size_t nb) { set(src, nb); } + /** Replace the buffer's contents with the data from `std::basic_string`. */ template void set(const std::basic_string& src) { set(src.c_str(), src.length() * sizeof(std::basic_string::char_type)); } + /** Replace the buffer's contents with the data from a memory region. */ void set(const void* src, std::size_t nb) { resize(nb); std::memcpy(data(), src, nb); } + /** Interpret the buffer's contents as a `std::string`. */ std::string as_utf8() const { const auto c_str = reinterpret_cast(data()); const auto nb = size(); @@ -50,6 +62,7 @@ public: return {c_str, nch}; } + /** Interpret the buffer's contents as a `std::wstring`. */ std::wstring as_utf16() const { const auto c_str = reinterpret_cast(data()); const auto nb = size(); @@ -62,6 +75,7 @@ public: return {c_str, nch}; } + /** Append another buffer to the end of this one. */ void add(const Buffer& src) { const auto nb = size(); resize(nb + src.size()); -- cgit v1.3