WEBCAMSchedule-Klasse
Die CAMSchedule -Klasse implementiert einen Scheduler für Verweisuhren.
| Öffentliche Methoden | BESCHREIBUNG |
|---|---|
| CAMSchedule | Konstruktormethode. |
| ~WEBCAMSchedule | Destruktormethode. Virtuellen. |
| GetAdviseCount | Ruft die Anzahl ausstehender Beratungsanforderungen ab. |
| GetNextAdviseTime | Ruft den Zeitpunkt der nächsten Empfehlungsanforderung ab. |
| AddAdvisePacket | Fügt der Liste der ausstehenden Anforderungen eine Empfehlungsanforderung hinzu. |
| Unadvise | Entfernt eine Empfehlungsanforderung. |
| Beraten | Verteilt alle Anforderungen, die für einen bestimmten Zeitraum oder früher geplant sind. |
| Getevent | Ruft ein Ereignishandle ab, das verwendet wird, um eine Änderung im nächsten Empfehlungszeitpunkt zu signalisieren. |
Bemerkungen
Dieses Hilfsobjekt verwaltet eine Liste von Beratungsanforderungen für eine Referenzuhr. Die CBaseReferenceClock-Klasse verwendet sie, um Beratungsanforderungen zu planen. Uhren verwenden dieses Objekt wie folgt:
- Die Uhr erstellt einen Arbeitsthread für die Planung.
- Der Arbeitsthread ruft die METHODE CABSchedule::GetEvent auf, um ein Ereignishandle vom Scheduler abzurufen. Es wartet auf dieses Ereignis, anfänglich mit einem unendlichen Time out.
- Um eine neue Empfehlungsanforderung zu planen, ruft die Uhr die METHODE CABSchedule::AddAdvisePacket auf. Eine Empfehlungsanfrage kann einmalig oder regelmäßig erfolgen. Der Scheduler speichert die Liste der Anforderungen in der Zeitreihenfolge.
- Wenn am Ende der Liste eine Anforderung hinzugefügt wird, signalisiert der Scheduler das Ereignis. (Die Liste ist zunächst leer, sodass die erste Anforderung garantiert das Ereignis signalisiert.)
- Wenn das Ereignis signalisiert wird, ruft der Arbeitsthread die METHODE CABSchedule::Advise auf und gibt die aktuelle Referenzzeit an. Wenn ausstehende Anforderungen abgelaufen sind, werden sie vom Planer gesendet.
- Die Advise-Methode gibt den Zeitpunkt der nächsten Anforderung zurück. Der Arbeitsthread verwendet diesen Wert, um einen neuen Time out-Wert zu berechnen.
- Die Schritte 2 6 werden unbegrenzt wiederholt.
- Um den Arbeitsthread zu beenden, legt die Uhr ein internes Flag fest und signalisiert das Ereignis.
In Schritt 2 wird entweder das Ereignis signalisiert, oder die Wartezeit tritt auf. Wenn das Ereignis signalisiert wird, bedeutet dies, dass am Ende der Liste eine neue Anforderung hinzugefügt wurde. Der Arbeitsthread muss einen neuen Time out-Wert berechnen. Andererseits bedeutet dies, dass eine Empfehlungsanforderung fällig ist und gesendet werden muss, wenn bei der Wartezeit ein Zeit überschritten wird. Der Aufruf von Advise in Schritt 5 behandelt beide Fälle.
Requirements (Anforderungen)
| Anforderung | Wert |
|---|---|
| Header |
|
| Bibliothek |
|