proxies call to the original hanlder, applying tag-specific actions More...
#include <handler.h>
Public Member Functions | |
handler_intercepted_t (handler_ptr_t backend_, const void *tag_) noexcept | |
constructs handler_intercepted_t by proxying original hander | |
handler_ptr_t | upgrade (const void *tag) noexcept override |
"upgrades" handler by tagging it | |
void | call (message_ptr_t &) noexcept override |
attempt to delivery message to the handler | |
bool | select (message_ptr_t &message) noexcept override |
returns true if the message can be handled by the handler | |
void | call_no_check (message_ptr_t &message) noexcept override |
unconditionally invokes the handler for the message | |
const void * | message_type () const noexcept override |
unique per-message-type pointer used for routing | |
Public Member Functions inherited from rotor::handler_base_t | |
handler_base_t (actor_base_t &actor, const void *handler_type_) noexcept | |
constructs handler_base_t from raw pointer to actor, raw pointer to message type and raw pointer to handler type | |
bool | operator== (const handler_base_t &rhs) const noexcept |
compare two handler for equality | |
Additional Inherited Members | |
Public Attributes inherited from rotor::handler_base_t | |
const void * | handler_type |
pointer to unique handler type ( typeid(Handler).name() ) | |
actor_base_t * | actor_ptr |
non-null pointer to actor_base_t the actor of the handler, | |
size_t | precalc_hash |
precalculated hash for the handler | |
proxies call to the original hanlder, applying tag-specific actions
|
overridevirtualnoexcept |
attempt to delivery message to the handler
The message is delivered only if its type matches to the handler message type, otherwise it is silently ignored
Implements rotor::handler_base_t.
|
overridevirtualnoexcept |
unconditionally invokes the handler for the message
It assumes that the handler is able to handle the message. See select
method.
Implements rotor::handler_base_t.
|
overridevirtualnoexcept |
unique per-message-type pointer used for routing
Implements rotor::handler_base_t.
|
overridevirtualnoexcept |
returns true
if the message can be handled by the handler
Implements rotor::handler_base_t.
|
overridevirtualnoexcept |
"upgrades" handler by tagging it
Conceptually it intercepts handler call and does tag-specific actions
Reimplemented from rotor::handler_base_t.