hmbdc
simplify-high-performance-messaging-programming
Public Member Functions | List of all members
hmbdc::app::udpcast::recvtransportengine_detail::RecvTransportImpl< OutputBuffer, MsgArbitrator > Class Template Reference

impl class More...

#include <RecvTransportEngine.hpp>

Inheritance diagram for hmbdc::app::udpcast::recvtransportengine_detail::RecvTransportImpl< OutputBuffer, MsgArbitrator >:
hmbdc::app::udpcast::RecvTransport hmbdc::app::MessageHandler< RecvTransportImpl< OutputBuffer, MsgArbitrator >, Subscribe, Unsubscribe > hmbdc::app::udpcast::Transport hmbdc::app::udpcast::EpollFd hmbdc::app::utils::EpollFd hmbdc::app::udpcast::recvtransportengine_detail::RecvTransportEngineImpl< OutputBuffer, MsgArbitrator >

Public Member Functions

 RecvTransportImpl (Config const &cfg, OutputBuffer &outputBuffer, MsgArbitrator arb=NoOpArb())
 ctor More...
 
void start ()
 start the show by schedule the mesage recv
 
void handleMessageCb (Subscribe const &t)
 only used by MH
 
void handleMessageCb (Unsubscribe const &t)
 only used by MH
 

Detailed Description

template<typename OutputBuffer, typename MsgArbitrator = RecvTransport::NoOpArb>
class hmbdc::app::udpcast::recvtransportengine_detail::RecvTransportImpl< OutputBuffer, MsgArbitrator >

impl class

Template Parameters
OutputBuffertype of buffer to hold resulting network messages
MsgArbitratorarbitrator to decide drop or keep messages, suited to arbitrate between different recv transport. By default, keeping all

Constructor & Destructor Documentation

◆ RecvTransportImpl()

template<typename OutputBuffer , typename MsgArbitrator = RecvTransport::NoOpArb>
hmbdc::app::udpcast::recvtransportengine_detail::RecvTransportImpl< OutputBuffer, MsgArbitrator >::RecvTransportImpl ( Config const &  cfg,
OutputBuffer &  outputBuffer,
MsgArbitrator  arb = NoOpArb() 
)
inline

ctor

io_service could be passed in by user, in this case NO more than two threads should power this io_service instance since that would violate the thread garantee of Client, which is no callbacks are called in parallel

Parameters
cfgspecify the details of the udpcast transport
outputBufferholding the results
arbarbitrator instance to decide which messages to drop and keep; it supports either raw udp packet (BEFORE topic filtering) or hmbdc udpcast message (AFTER topic filtering) level arbitration depending on which one of int operator()(void* bytes, size_t len) or int operator()(TransportMessageHeader const* header) presents in the arb

The documentation for this class was generated from the following file: