|
void | messageDispatchingStartedCb (size_t const *) override |
| called before any messages got dispatched - only once More...
|
|
void | invokedCb (size_t) 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...
|
|
| SendTransport (Config cfg, size_t maxMessageSize) |
| ctor More...
|
|
| SendTransport (Config cfg, size_t maxMessageSize) |
| ctor More...
|
|
void | schedule (SysTime fireAt, Timer &timer) |
| schedule the timer to start at a specific time More...
|
|
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 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 |
| the following are for internal use, don't change or override
|
|
|
void | batchDone () |
| the derived user's Client has the option to stop the current batch of event dispatching. More...
|
|
◆ droppedCb()
bool hmbdc::tips::rmcast::sendtransportengine_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 >.
◆ invokedCb()
void hmbdc::tips::rmcast::sendtransportengine_detail::SendTransportEngine::invokedCb |
( |
size_t |
dispatched | ) |
|
|
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
-
dispatched | the number of messages dispatched since last invokedCb called |
Reimplemented from hmbdc::app::Client< SendTransportEngine >.
◆ messageDispatchingStartedCb()
void hmbdc::tips::rmcast::sendtransportengine_detail::SendTransportEngine::messageDispatchingStartedCb |
( |
size_t const * |
pClientDispatchingStarted | ) |
|
|
inlineoverridevirtual |
called before any messages got dispatched - only once
this is the place some preparation code goes to
- Parameters
-
pClientDispatchingStarted | pointer to the Client count that has started displatching within its Context; its value could change if you repeatedly check - might be used to sync with other Clients within the same Context (particularly IPC Context) at starting up stage of the system. When doing the sync, just be aware the Client might be running in a pool - do not hog the pool thread if possible. Note: Since ipc_creator Context has an implicitly purger Client, this value would be 1 greater than the user Clients count |
Reimplemented from hmbdc::app::Client< SendTransportEngine >.
◆ SendTransport()
hmbdc::tips::rmcast::sendtransportengine_detail::SendTransport::SendTransport |
|
inline |
ctor
- Parameters
-
cfg | jason specifing the transport - see example, perf-rmcast.cpp |
maxMessageSize | max messafe size in bytes to be sent hold the message in buffer until buffer is full to start sending |
The documentation for this struct was generated from the following file: