Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse 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.