Program Listing for File SendMessageBuffered.hpp

Return to documentation for file (BackendAsyncmsg/SendMessageBuffered.hpp)

#ifndef NETIO3BACKEND_BACKENDASYNCMSG_SENDMESSAGEBUFFERED_HPP
#define NETIO3BACKEND_BACKENDASYNCMSG_SENDMESSAGEBUFFERED_HPP

#include <cstdint>
#include <span>
#include <vector>

#include <boost/asio/buffer.hpp>

#include "Buffer.hpp"
#include "SendMessage.hpp"

namespace netio3::asyncmsg {
  class SendMessageBuffered : public SendMessage
  {
  public:
    explicit SendMessageBuffered(const Buffer* buffer);

    void toBuffers(std::vector<boost::asio::const_buffer>& buffers) const override;

    [[nodiscard]] std::uint64_t key() const override { return m_key; };

  private:
    std::span<const std::uint8_t> m_buffer;
    std::uint64_t m_key{};
  };
}  // namespace netio3::asyncmsg

#endif  // NETIO3BACKEND_BACKENDASYNCMSG_SENDMESSAGEBUFFERED_HPP