call-Klasse
Ein call
-Meldungsblock ist ein geordneter target_block
mit mehreren Quellen, der eine bestimmte Funktion aufruft, wenn eine Nachricht empfangen wird.
Syntax
template<class T, class _FunctorType = std::function<void(T const&)>>
class call : public target_block<multi_link_registry<ISource<T>>>;
Parameter
T
Der Nutzlasttyp der an diesen Block verteilten Nachrichten.
_FunctorType
Die Signatur von Funktionen, die dieser Block akzeptieren kann.
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
call | Überladen. Erstellt einen call -Meldungsblock. |
~Call Destructor | Zerstört den call Nachrichtenblock. |
Geschützte Methoden
Name | Beschreibung |
---|---|
process_input_messages | Führt die Aufruffunktion für die Eingabemeldungen aus. |
process_message | Verarbeitet eine Nachricht, die von diesem call Nachrichtenblock akzeptiert wurde. |
propagate_message | Eine Nachricht wird asynchron von einem ISource Block an diesen call Nachrichtenblock übergeben. Sie wird von der propagate Methode aufgerufen, wenn sie von einem Quellblock aufgerufen wird. |
send_message | Übergibt eine Nachricht synchron von einem ISource Block an diesen call Nachrichtenblock. Sie wird von der send Methode aufgerufen, wenn sie von einem Quellblock aufgerufen wird. |
supports_anonymous_source | Überschreibt die supports_anonymous_source Methode, um anzugeben, dass dieser Block Nachrichten akzeptieren kann, die von einer Quelle angeboten werden, die nicht verknüpft ist. (Außerkraftsetzungen ITarget::supports_anonymous_source.) |
Hinweise
Weitere Informationen finden Sie unter "Asynchrone Nachrichtenblöcke".
Vererbungshierarchie
call
Anforderungen
Header: agents.h
Namespace: Parallelität
call
Erstellt einen call
-Meldungsblock.
call(
_Call_method const& _Func);
call(
_Call_method const& _Func,
filter_method const& _Filter);
call(
Scheduler& _PScheduler,
_Call_method const& _Func);
call(
Scheduler& _PScheduler,
_Call_method const& _Func,
filter_method const& _Filter);
call(
ScheduleGroup& _PScheduleGroup,
_Call_method const& _Func);
call(
ScheduleGroup& _PScheduleGroup,
_Call_method const& _Func,
filter_method const& _Filter);
Parameter
_Func
Eine Funktion, die für jede akzeptierte Nachricht aufgerufen wird.
_Filter
Eine Filterfunktion, die bestimmt, ob angebotene Nachrichten akzeptiert werden sollen.
_PScheduler
Das Scheduler
-Objekt, in dem die Weiterleitungsaufgabe für den call
-Meldungsblock geplant ist.
_PScheduleGroup
Das ScheduleGroup
-Objekt, in dem die Weiterleitungsaufgabe für den call
-Meldungsblock geplant ist. Das verwendete Scheduler
-Objekt wird von der Planungsgruppe impliziert.
Hinweise
Die Runtime verwendet das Standardplanungsprogramm, wenn Sie den _PScheduler
-Parameter oder den _PScheduleGroup
-Parameter nicht angeben.
Der Typ _Call_method
ist ein Functor mit Signatur void (T const &)
, der von diesem call
Nachrichtenblock aufgerufen wird, um eine Nachricht zu verarbeiten.
Der Typ filter_method
ist ein Functor mit Signatur bool (T const &)
, der von diesem call
Messagingblock aufgerufen wird, um zu bestimmen, ob eine angebotene Nachricht akzeptiert werden soll.
~rufen
Zerstört den call
Nachrichtenblock.
~call();
process_input_messages
Führt die Aufruffunktion für die Eingabemeldungen aus.
virtual void process_input_messages(_Inout_ message<T>* _PMessage);
Parameter
_PMessage
Ein Zeiger auf die Nachricht, die behandelt werden soll.
process_message
Verarbeitet eine Nachricht, die von diesem call
Nachrichtenblock akzeptiert wurde.
virtual void process_message(_Inout_ message<T>* _PMessage);
Parameter
_PMessage
Ein Zeiger auf die Nachricht, die behandelt werden soll.
propagate_message
Eine Nachricht wird asynchron von einem ISource
Block an diesen call
Nachrichtenblock übergeben. Sie wird von der propagate
Methode aufgerufen, wenn sie von einem Quellblock aufgerufen wird.
virtual message_status propagate_message(
_Inout_ message<T>* _PMessage,
_Inout_ ISource<T>* _PSource);
Parameter
_PMessage
Ein Zeiger auf das message
-Objekt.
_PSource
Ein Zeiger auf den Quellblock, der die Nachricht anbietet.
Rückgabewert
Ein message_status Hinweis darauf, was das Ziel mit der Nachricht zu tun hat.
send_message
Übergibt eine Nachricht synchron von einem ISource
Block an diesen call
Nachrichtenblock. Sie wird von der send
Methode aufgerufen, wenn sie von einem Quellblock aufgerufen wird.
virtual message_status send_message(
_Inout_ message<T>* _PMessage,
_Inout_ ISource<T>* _PSource);
Parameter
_PMessage
Ein Zeiger auf das message
-Objekt.
_PSource
Ein Zeiger auf den Quellblock, der die Nachricht anbietet.
Rückgabewert
Ein message_status Hinweis darauf, was das Ziel mit der Nachricht zu tun hat.
supports_anonymous_source
Überschreibt die supports_anonymous_source
Methode, um anzugeben, dass dieser Block Nachrichten akzeptieren kann, die von einer Quelle angeboten werden, die nicht verknüpft ist.
virtual bool supports_anonymous_source();
Rückgabewert
true
da der Block die angebotenen Nachrichten nicht verschiebt.