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 Nachrichten, die an diesen Block propagiert werden.
_FunctorType
Die Signatur von Funktionen, die dieser Block akzeptieren kann.
Mitglieder
Öffentliche Konstruktoren
| Name | Beschreibung |
|---|---|
| Anruf | Überladen. Erstellt einen call -Meldungsblock. |
| ~Aufruf des Destruktors | Zerstört den call Nachrichtenblock. |
Geschützte Methoden
| Name | Beschreibung |
|---|---|
| verarbeite_eingabe_nachrichten | 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. |
| unterstützt_anonyme_Quelle | Ü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. (Überschreibt ITarget::supports_anonymous_source.) |
Hinweise
Weitere Informationen finden Sie unter "Asynchrone Nachrichtenblöcke".
Vererbungshierarchie
call
Anforderungen
Header: agents.h
Namespace: Parallelität
Aufruf
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();
VerarbeiteEingabemeldungen
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.
Nachricht_verbreiten
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 übermittelt.
Rückgabewert
Eine message_status-Angabe darüber, was das Ziel mit der Nachricht vorhat.
Nachricht_senden
Ü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 übermittelt.
Rückgabewert
Eine message_status-Angabe darüber, was das Ziel mit der Nachricht vorhat.
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.