hmbdc
simplify-high-performance-messaging-programming
|
power a netmap port sending functions More...
#include <SendTransportEngine.hpp>
Public Member Functions | |
void | rotate () |
if the user choose no to have a Context to manage and run the engine this method can be called from any thread from time to time to have the engine do its job More... | |
void | messageDispatchingStartedCb (uint16_t threadSerialNumber) override |
called before any messages got dispatched - only once More... | |
bool | droppedCb () override |
callback called after the Client is safely taken out of the Context More... | |
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... | |
void | stoppedCb (std::exception const &e) override |
callback called when this Client is taken out of message dispatching 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 | ~Client () |
trivial | |
void | stopped (std::exception const &e) noexcept |
the following are for internal use, don't change or override | |
Friends | |
struct | hmbdc::app::netmap::NetContext |
struct | hmbdc::app::netmap::Sender |
Additional Inherited Members | |
![]() | |
void | batchDone () |
the derived user's Client has the option to stop the current batch of event dispatching. More... | |
power a netmap port sending functions
this needs to be created using NetContext and start in an app::Context
|
overridevirtual |
callback called after the Client is safely taken out of the Context
exception thrown here is ignored and return true is assumed
Reimplemented from hmbdc::app::Client< SendTransportEngine >.
|
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
threadSerialNumber | the number indicating which thread is in action |
Reimplemented from hmbdc::app::Client< SendTransportEngine >.
|
inlineoverridevirtual |
called before any messages got dispatched - only once
this is the place some preparation code goes to
threadSerialNumber | normally the number indicating which thread is in action, except when INTERESTS_SIZE == 0 it is another undefined value |
Reimplemented from hmbdc::app::Client< SendTransportEngine >.
|
inline |
|
overridevirtual |
callback called when this Client is taken out of message dispatching
after this call the Client is still at hook from the Context point of view (until droppedCb is called), so don't delete this Client yet or add it back to the Context. any exception thrown here is ignored,
e | the exception that caused the Client to be taken out of message dispatching e could be thrown by the Client itself in a callback function to voluntarily take itself out |
Reimplemented from hmbdc::app::Client< SendTransportEngine >.