Freigeben über


ordered_message_processor-Klasse

Ein ordered_message_processor ist ein message_processor, mit dem Meldungsblöcke Meldungen in der Reihenfolge verarbeiten können, in der sie empfangen wurden.

Syntax

template<class T>
class ordered_message_processor : public message_processor<T>;

Parameter

T
Der Nutzlasttyp von Nachrichten, die vom Prozessor verarbeitet werden.

Mitglieder

Öffentliche Typedefs

Name Beschreibung
type Ein Typalias für T.

Öffentliche Konstruktoren

Name Beschreibung
Sortierter_Nachrichtprozessor Erstellt ein ordered_message_processor-Objekt.
~ordered_message_processor Destruktor Zerstört das ordered_message_processor-Objekt.

Öffentliche Methoden

Name Beschreibung
async_send Nachrichten werden asynchron in die Warteschlange gestellt, und eine Verarbeitungsaufgabe wird gestartet, sofern dies noch nicht geschehen ist. (Überschreibt message_processor::async_send.)
initialisieren Initialisiert das ordered_message_processor Objekt mit der entsprechenden Rückruffunktion, dem Zeitplan und der Zeitplangruppe.
initialisiere_gebündelte_Verarbeitung Initialisieren der Verarbeitung von Batchnachrichten
sync_send Stellt Nachrichten synchron in die Warteschlange und startet eine Verarbeitungsaufgabe, wenn dies noch nicht erfolgt ist. (Überschreibt message_processor::sync_send.)
wait Eine prozessorspezifische Drehwartezeit, die in Destruktoren von Nachrichtenblöcken verwendet wird, um sicherzustellen, dass alle asynchronen Verarbeitungsaufgaben Zeit haben, um abgeschlossen zu werden, bevor der Block gelöscht wird. (Überschreibt message_processor::wait.)

Geschützte Methoden

Name Beschreibung
process_incoming_message Die Verarbeitungsfunktion, die asynchron aufgerufen wird. Nachrichten werden aus der Warteschlange entfernt, und die Verarbeitung beginnt. (Überschreibt message_processor::process_incoming_message.)

Vererbungshierarchie

message_processor

ordered_message_processor

Anforderungen

Header: agents.h

Namespace: Parallelität

async_send

Nachrichten werden asynchron in die Warteschlange gestellt und eine Verarbeitungsaufgabe wird gestartet, falls dies nicht bereits geschehen ist.

virtual void async_send(_Inout_opt_ message<T>* _Msg);

Parameter

_Msg
Ein Zeiger auf eine Nachricht.

initialisieren

Initialisiert das ordered_message_processor Objekt mit der entsprechenden Rückruffunktion, dem Zeitplan und der Zeitplangruppe.

void initialize(
    _Inout_opt_ Scheduler* _PScheduler,
    _Inout_opt_ ScheduleGroup* _PScheduleGroup,
    _Handler_method const& _Handler);

Parameter

_PScheduler
Ein Zeiger auf den Planer, der für die Planung von leichtgewichtigen Vorgängen verwendet werden soll.

_PScheduleGroup
Ein Zeiger auf die Zeitplangruppe, die für die Planung von Vorgängen mit geringem Gewicht verwendet werden soll.

_Handler
Der Handler-Functor, der während des Rückrufs aufgerufen wird.

initialisiere_gebündelte_Verarbeitung

Initialisieren der Verarbeitung von Batchnachrichten

virtual void initialize_batched_processing(
    _Handler_method const& _Processor,
    _Propagator_method const& _Propagator);

Parameter

_Prozessor
Der Prozessor-Functor, der während des Rückrufs aufgerufen wurde.

_Propagator
Der Propagator-Functor, der während des Callback aufgerufen wird.

geordneter_Nachrichtenprozessor

Erstellt ein ordered_message_processor-Objekt.

ordered_message_processor();

Hinweise

Die ordered_message_processor planen keine asynchronen oder synchronen Handler, bis die initialize Funktion aufgerufen wird.

~ordered_message_processor

Zerstört das ordered_message_processor-Objekt.

virtual ~ordered_message_processor();

Hinweise

Wartet auf alle ausstehenden asynchronen Vorgänge, bevor der Prozessor zerstört wird.

Nachricht_verarbeiten

Die Verarbeitungsfunktion, die asynchron aufgerufen wird. Nachrichten werden aus der Warteschlange entfernt, und die Verarbeitung beginnt.

virtual void process_incoming_message();

sync_send

Stellt Nachrichten synchron in die Warteschlange und startet eine Verarbeitungsaufgabe, wenn dies noch nicht erfolgt ist.

virtual void sync_send(_Inout_opt_ message<T>* _Msg);

Parameter

_Msg
Ein Zeiger auf eine Nachricht.

warten

Eine prozessorspezifische Drehwartezeit, die in Destruktoren von Nachrichtenblöcken verwendet wird, um sicherzustellen, dass alle asynchronen Verarbeitungsaufgaben Zeit haben, um abgeschlossen zu werden, bevor der Block gelöscht wird.

virtual void wait();

Siehe auch

Concurrency-Namespace