1#include "byte_buffer_convertible.hpp"
10std::unique_ptr<byte_buffer> byte_buffer::duplicate()
const
13 this->convert(duplicate);
14 std::unique_ptr<byte_buffer> result {
15 new byte_buffer_impl<ByteBuffer>(std::move(duplicate))
20byte_buffer_impl<std::string>::byte_buffer_impl(
const std::string& str) : m_buffer(str) {}
21byte_buffer_impl<std::string>::byte_buffer_impl(std::string&& str) : m_buffer(
std::move(str)) {}
23void byte_buffer_impl<std::string>::convert(ByteBuffer& buffer)
const
26 std::copy(m_buffer.begin(), m_buffer.end(), std::back_inserter(buffer));
29std::size_t byte_buffer_impl<std::string>::size()
const
31 return m_buffer.size();
34std::unique_ptr<byte_buffer> byte_buffer_impl<std::nullptr_t>::duplicate()
const
36 return std::unique_ptr<byte_buffer> {
new byte_buffer_impl<std::nullptr_t>() };
41ByteBufferConvertible::ByteBufferConvertible(
const ByteBufferConvertible& other) :
42 m_wrapper(other.m_wrapper->duplicate())
46ByteBufferConvertible& ByteBufferConvertible::operator=(
const ByteBufferConvertible& other)
48 m_wrapper = other.m_wrapper->duplicate();