hmbdc
simplify-high-performance-messaging-programming
Public Member Functions | List of all members
hmbdc::app::tcpcast::send_detail::SendTransportEngine Struct Reference
Inheritance diagram for hmbdc::app::tcpcast::send_detail::SendTransportEngine:
hmbdc::app::tcpcast::send_detail::SendTransport hmbdc::time::TimerManager hmbdc::time::ReoccuringTimer hmbdc::app::Client< SendTransportEngine > hmbdc::app::tcpcast::Transport hmbdc::time::Timer hmbdc::app::MessageHandler< SendTransportEngine, Messages... >

Public Member Functions

void invokedCb (uint16_t threadSerialNumber) HMBDC_RESTRICT override
 this callback is called all the time (frequently) - the exact timing is after a batch of messages are dispatched. After this call returns, the previously dispatched message's addresses are no longer valid, which means if you cache the event addresses in the previous handleMessageCb()s, you cannot use those after the return of the next invokeCb function. More...
 
bool droppedCb () override
 callback called after the Client is safely taken out of the Context More...
 
size_t sessionsRemainingActive () const
 check how many recipient sessions are still active More...
 
- Public Member Functions inherited from hmbdc::app::tcpcast::send_detail::SendTransport
 SendTransport (Config const &, size_t)
 ctor More...
 
- Public Member Functions inherited from hmbdc::time::TimerManager
void cancel (Timer &timer)
 cancel a timer previously scheduled with the TimerManager More...
 
- Public Member Functions inherited from hmbdc::app::Client< SendTransportEngine >
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 void messageDispatchingStartedCb (uint16_t threadSerialNumber)
 called before any messages got dispatched - only once More...
 
virtual void stoppedCb (std::exception const &e)
 callback called when this Client is taken out of message dispatching More...
 
virtual ~Client ()
 trivial
 
void stopped (std::exception const &e) noexcept
 internal use, don't change or override
 

Member Function Documentation

bool hmbdc::app::tcpcast::send_detail::SendTransportEngine::droppedCb ( )
inlineoverridevirtual

callback called after the Client is safely taken out of the Context

exception thrown here is ignored and return true is assumed

Returns
if false, this Client is added back to the Context to process messages otherwise, no more callback. You could even safely "delete this; return true;"

Reimplemented from hmbdc::app::Client< SendTransportEngine >.

void hmbdc::app::tcpcast::send_detail::SendTransportEngine::invokedCb ( uint16_t  threadSerialNumber)
inlineoverridevirtual

this callback is called all the time (frequently) - the exact timing is after a batch of messages are dispatched. After this call returns, the previously dispatched message's addresses are no longer valid, which means if you cache the event addresses in the previous handleMessageCb()s, you cannot use those after the return of the next invokeCb function.

you can collectively process the messages received/cached so far here, or do something needs to be done all the time like powering another message loop

Parameters
threadSerialNumberthe number indicating which thread is in action

Reimplemented from hmbdc::app::Client< SendTransportEngine >.

size_t hmbdc::app::tcpcast::send_detail::SendTransportEngine::sessionsRemainingActive ( ) const
inline

check how many recipient sessions are still active

Returns
numeric_limits<size_t>::max() if the sending hasn't started due to minRecvToStart has not been met yet

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