transformer Class
A transformer messaging block is a single-target, multi-source, ordered propagator_block which can accept messages of one type and is capable of storing an unbounded number of messages of a different type.
template<
class _Input,
class _Output
>
class transformer : public propagator_block<single_link_registry<ITarget<_Output>>, multi_link_registry<ISource<_Input>>>;
Parameters
_Input
The payload type of the messages accepted by the buffer._Output
The payload type of the messages stored and propagated out by the buffer.
Members
Public Constructors
Name |
Description |
---|---|
Overloaded. Constructs a transformer messaging block. |
|
Destroys the transformer messaging block. |
Protected Methods
Name |
Description |
---|---|
Accepts a message that was offered by this transformer messaging block, transferring ownership to the caller. |
|
Consumes a message previously offered by the transformer and reserved by the target, transferring ownership to the caller. |
|
A callback that notifies that a new target has been linked to this transformer messaging block. |
|
Asynchronously passes a message from an ISource block to this transformer messaging block. It is invoked by the propagate method, when called by a source block. |
|
Executes the transformer function on the input message and tries to offer the resulting message to all of the linked targets. |
|
Releases a previous message reservation. (Overrides source_block::release_message.) |
|
Reserves a message previously offered by this transformer messaging block. (Overrides source_block::reserve_message.) |
|
Resumes propagation after a reservation has been released. (Overrides source_block::resume_propagation.) |
|
Synchronously passes a message from an ISource block to this transformer messaging block. It is invoked by the send method, when called by a source block. |
Remarks
For more information, see Asynchronous Message Blocks.
Inheritance Hierarchy
Requirements
Header: agents.h
Namespace: Concurrency