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 | tryTopicSource (TopicSource const &s) |
in the environment that multicast cannot be enabled on either the sender or the receiver side, the sender info cannot be automatically detected by the receiver. User can use this method to explicitedly tell the receiver about the sender information 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 > >.
|
inline |
in the environment that multicast cannot be enabled on either the sender or the receiver side, the sender info cannot be automatically detected by the receiver. User can use this method to explicitedly tell the receiver about the sender information
not like additionalTopicSources config which will periodically retry, this call has no effect if the sender is not up and fully ready
s | describing the sender |