Freigeben über


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

ITarget

target_block

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.

Siehe auch

Concurrency-Namespace
transformer-Klasse