Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.