hmbdc
simplify-high-performance-messaging-programming
|
impl class More...
#include <RecvTransportEngine.hpp>
Public Member Functions | |
RecvTransportEngine (Config const &cfg, OutputBuffer &outputBuffer, MsgArbitrator arb=NoOpArb()) | |
ctor More... | |
void | messageDispatchingStartedCb (uint16_t threadSerialNumber) override |
start the show by schedule the message recv | |
void | stoppedCb (std::exception const &e) override |
should not happen ever unless an exception thrown More... | |
void | invokedCb (uint16_t threadSerialNumber) HMBDC_RESTRICT override |
power the io_service and other things | |
void | handleMessageCb (Subscribe const &t) |
only used by MH | |
void | handleMessageCb (Unsubscribe const &t) |
only used by MH | |
void | handleMessageCb (TopicSource const &t) |
only used by MH | |
![]() | |
void | cancel (Timer &timer) |
cancel a timer previously scheduled with the TimerManager More... | |
![]() | |
char const * | hmbdcName () const |
return the name of thread that runs this client, override if necessary More... | |
std::tuple< char const *, int > | schedSpec () const |
an overrideable method. returns the schedule policy and priority, override if necessary priority is only used when policy is "SCHED_RR", or "SCHED_FIFO" More... | |
size_t | maxBatchMessageCount () const |
an overridable method. client receives events in batches and the max batch size is controllable when running in direct mode Context. Here is to specify the max size. More... | |
virtual bool | droppedCb () |
callback called after the Client is safely taken out of the Context More... | |
virtual | ~Client () |
trivial | |
void | stopped (std::exception const &e) noexcept |
internal use, don't change or override | |
impl class
this needs to be created using NetContext and start in an app::Context
OutputBuffer | type of buffer to hold resulting network messages |
|
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
cfg | specify the details of the tcpcast transport |
outputBuffer | holding the results |
arb | arbitrator instance to decide which messages to drop and keep; it ONLY supports hmbdc message (AFTER topic filtering) level (NO packet level since it is tcp) |
|
inlineoverridevirtual |
should not happen ever unless an exception thrown
e | exception thown |
Reimplemented from hmbdc::app::Client< RecvTransportEngine< OutputBuffer, MsgArbitrator > >.