|
size_t | maxMessageSize () const |
|
template<typename M0 , typename M1 , typename... Messages> |
enable_if<!std::is_integral< M1 >::value, void >::type | send (M0 &&m0, M1 &&m1, Messages &&...msgs) |
| try send a batch of messages to the Context or attached ipc Contexts More...
|
|
template<typename M0 , typename M1 , typename... Messages> |
enable_if<!std::is_integral< M1 >::value, bool >::type | trySend (M0 &&m0, M1 &&m1, Messages &&...msgs) |
| try to send a batch of message to the Context or attached ipc Contexts More...
|
|
template<typename ForwardIt > |
void | send (ForwardIt begin, size_t n) |
| send a range of messages to the Context or attached ipc Contexts More...
|
|
template<typename ForwardIt > |
bool | trySend (ForwardIt begin, size_t n) |
| try send a range of messages to the Context or attached ipc Contexts More...
|
|
template<typename Message > |
void | send (Message &&m) |
| send a message to the Context or attached ipc Contexts More...
|
|
template<typename Message > |
bool | trySend (Message &&m) |
| try to send a message to the Context or attached ipc Contexts More...
|
|
template<typename Message , typename... Args> |
void | sendInPlace (Args &&...args) |
| send a message to all Clients in the Context or attached ipc Contexts More...
|
|
Buffer & | buffer () |
| accessor - mostly used internally More...
|
|
template<size_t MaxMessageSize, typename... ContextProperties>
class hmbdc::app::context_detail::ThreadCommBase< MaxMessageSize, ContextProperties >
covers the inter-thread and ipc communication fascade
this type's interface is exposed thru Context and the type itself is not directly used by users
- Template Parameters
-
MaxMessageSize | What is the max message size, need at compile time if the value can only be determined at runtime, set this to 0. Things can still work but will lost some compile time checking advantages, see maxMessageSizeRuntime below |
ContextProperties | see types in context_property namespace |
template<size_t MaxMessageSize, typename... ContextProperties>
template<typename M0 , typename M1 , typename... Messages>
try send a batch of messages to the Context or attached ipc Contexts
only the Clients that handles the Message will get it of course This function is threadsafe, which means you can call it anywhere in the code
- Parameters
-
- Template Parameters
-
template<size_t MaxMessageSize, typename... ContextProperties>
template<typename ForwardIt >
send a range of messages to the Context or attached ipc Contexts
only the Clients that handles the Message will get it of course This function is threadsafe, which means you can call it anywhere in the code
- Parameters
-
begin | a forward iterator point at the start of the range |
n | length of the range |
template<size_t MaxMessageSize, typename... ContextProperties>
template<typename Message >
send a message to the Context or attached ipc Contexts
only the Clients that handles the Message will get it of course This function is threadsafe, which means you can call it anywhere in the code
- Parameters
-
- Template Parameters
-
template<size_t MaxMessageSize, typename... ContextProperties>
template<typename Message , typename... Args>
send a message to all Clients in the Context or attached ipc Contexts
construct the Message in buffer directly This function is threadsafe, which means you can call it anywhere in the code
- Parameters
-
- Template Parameters
-
Message | type |
typename | ... Args args |
template<size_t MaxMessageSize, typename... ContextProperties>
template<typename M0 , typename M1 , typename... Messages>
try to send a batch of message to the Context or attached ipc Contexts
this call does not block and it is transactional - send all or none This function is threadsafe, which means you can call it anywhere in the code
- Parameters
-
- Template Parameters
-
- Returns
- true if send successfully
template<size_t MaxMessageSize, typename... ContextProperties>
template<typename ForwardIt >
try send a range of messages to the Context or attached ipc Contexts
this call does not block and it is transactional - send all or none This function is threadsafe, which means you can call it anywhere in the code
- Parameters
-
begin | a forward iterator point at the start of the range |
n | length of the range |
template<size_t MaxMessageSize, typename... ContextProperties>
template<typename Message >
try to send a message to the Context or attached ipc Contexts
this call does not block - return false when buffer is full This function is threadsafe, which means you can call it anywhere in the code
- Parameters
-
- Template Parameters
-
- Returns
- true if send successfully