#pragma once #include "cmixprotofunctor.hpp" #include "protobufclient.hpp" /*! * \file */ /*! * \brief forward declaration for SenderReceiver to allow for the friend declaration. */ struct SenderReceiver; /*! * \brief The Sender struct is a shim around ProtobufClient and only exposes things needed * for sending messages. */ struct Sender : private ProtobufClient { /*! * The friend declaration that allows for the Sender to be upgraded to a SenderReceiver. */ friend SenderReceiver; using ProtobufClient::ProtobufClient; using ProtobufClient::operator=; using ProtobufClient::async_send; using ProtobufClient::async_connect; using ProtobufClient::close; using ProtobufClient::on_done; using ProtobufClient::is_open; }; /*! * \brief forward declaration for SenderReceiver to allow for the friend declaration. */ struct SSLSenderReceiver; /*! * \brief The Sender struct is a shim around ProtobufClient and only exposes things needed * for sending messages. */ struct SSLSender : private SSLProtobufClient { /*! * The friend declaration that allows for the Sender to be upgraded to a SenderReceiver. */ friend SSLSenderReceiver; using SSLProtobufClient::SSLProtobufClient; using SSLProtobufClient::operator=; using SSLProtobufClient::async_send; using SSLProtobufClient::async_connect; using SSLProtobufClient::close; using SSLProtobufClient::on_done; using SSLProtobufClient::is_open; };