nl:: Weave:: System:: Platform:: Layer
Zusammenfassung
Funktionen |
|
---|---|
DidInit(Layer & aLayer, void *aContext, Error aStatus)
|
NL_DLL_EXPORT void
Dies ist ein plattformspezifischer Weave System-Layer-Hook nach der Initialisierung.
|
DidShutdown(Layer & aLayer, void *aContext, Error aStatus)
|
NL_DLL_EXPORT void
Dies ist ein plattformspezifischer Weave System Layer-Hook vor dem Herunterfahren.
|
DispatchEvent(Layer & aLayer, void *aContext, Event aEvent)
|
NL_DLL_EXPORT Error
Dies ist ein plattformspezifischer Ereignis-/Nachrichten-Weiterleitungs-Hook.
|
DispatchEvents(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
Dies ist ein plattformspezifischer Ereignis-/Nachrichten-Weiterleitungs-Hook.
|
GetClock_Monotonic(void)
|
uint64_t
Plattformspezifische Funktion zum Abrufen der monotonen Systemzeit in Mikrosekunden
|
GetClock_MonotonicHiRes(void)
|
uint64_t
Plattformspezifische Funktion zum Abrufen einer hochauflösenden monotonen Systemzeit in Mikrosekunden.
|
GetClock_MonotonicMS(void)
|
uint64_t
Plattformspezifische Funktion zum Abrufen der monotonen Systemzeit in Millisekunden.
|
GetClock_RealTime(uint64_t & curTime)
|
Error
Plattformspezifische Funktion zum Abrufen der aktuellen realen Zeit im Unix-Zeitformat im Mikrosekundenformat.
|
GetClock_RealTimeMS(uint64_t & curTimeMS)
|
Error
Plattformspezifische Funktion zum Abrufen der aktuellen realen Zeit im Unix-Zeitformat im Millisekundenbereich
|
PostEvent(Layer & aLayer, void *aContext, Object & aTarget, EventType aType, uintptr_t aArgument)
|
NL_DLL_EXPORT Error
Dies ist ein plattformspezifischer Event-/Nachrichten-Post-Hook.
|
SetClock_RealTime(uint64_t newCurTime)
|
Error
Plattformspezifische Funktion zum Festlegen der aktuellen reellen Zeit.
|
StartTimer(Layer & aLayer, void *aContext, uint32_t aMilliseconds)
|
NL_DLL_EXPORT Error
Dies ist ein plattformspezifischer Ereignis-/Nachrichten-Weiterleitungs-Hook.
|
WillInit(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
Dies ist ein plattformspezifischer Hook zur Vorinitialisierung des Weave System Layer-Elements.
|
WillShutdown(Layer & aLayer, void *aContext)
|
NL_DLL_EXPORT Error
Dies ist ein plattformspezifischer Weave System Layer-Hook vor dem Herunterfahren.
|
Funktionen
DidInit
NL_DLL_EXPORT void DidInit( Layer & aLayer, void *aContext, Error aStatus )
Dies ist ein plattformspezifischer Weave System-Layer-Hook nach der Initialisierung.
Dies kann überschrieben werden, indem die Präprozessordefinition WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS bestätigt wird.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
DidShutdown
NL_DLL_EXPORT void DidShutdown( Layer & aLayer, void *aContext, Error aStatus )
Dies ist ein plattformspezifischer Weave System Layer-Hook vor dem Herunterfahren.
Dies kann überschrieben werden, indem die Präprozessordefinition WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS bestätigt wird.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabe |
WEAVE_SYSTEM_NO_ERROR bei Erfolg; Andernfalls ein bestimmter Fehler, der den Grund für das Fehlschlagen des Herunterfahrens angibt. Wird der Status „Nicht erfolgreich“ zurückgegeben, wird das Herunterfahren abgebrochen.
|
DispatchEvent
NL_DLL_EXPORT Error DispatchEvent( Layer & aLayer, void *aContext, Event aEvent )
Dies ist ein plattformspezifischer Ereignis-/Nachrichten-Weiterleitungs-Hook.
Dies kann überschrieben werden, indem die Präprozessordefinition WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS bestätigt wird.
Dadurch wird das angegebene Ereignis zur Verarbeitung ausgelöst, wobei der Typ und die Argumente aus dem Ereignis zur Übergabe an das Weave System Layer::HandleEvent für die eigentliche Weiterleitung entfernt werden.
Details | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Rückgabewerte |
|
DispatchEvents
NL_DLL_EXPORT Error DispatchEvents( Layer & aLayer, void *aContext )
Dies ist ein plattformspezifischer Ereignis-/Nachrichten-Weiterleitungs-Hook.
Dies kann überschrieben werden, indem die Präprozessordefinition WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS bestätigt wird.
Dies wirkt sich auf eine Ereignisschleife aus, bei der auf eine Warteschlange gewartet wird, die diese Instanz bedient, Ereignisse aus dieser Warteschlange herauszuziehen und sie dann zur Verarbeitung weiterzuleiten.
Details | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Rückgabewerte |
|
GetClock_Monotonic
uint64_t GetClock_Monotonic( void )
Plattformspezifische Funktion zum Abrufen der monotonen Systemzeit in Mikrosekunden
Es wird erwartet, dass diese Funktion die verstrichene Zeit seit einer beliebigen, plattformdefinierten Epoche in Mikrosekunden zurückgibt. Plattformimplementierungen müssen einen Wert zurückgeben, der zwischen Neustarts des Systems immer größer wird, d.h. nie umgebrochen wird. Darüber hinaus muss die zugrunde liegende Zeitquelle in allen System-Ruhemodusmodi, die keinen Neustart nach dem Aufwachen enthalten, kontinuierlich aktiv sein.
Die von dieser Funktion zurückgegebene Epoche muss nicht mit der Epoche der anderen GetClock...-Funktionen wie GetClock_MonotonicMS() übereinstimmen.
Es wird erwartet, dass diese Funktion auf jeder Plattform, die Threading verwendet, threadsicher ist.
Details | |
---|---|
Rückgabe |
Verstrichene Zeit in Mikrosekunden seit einer beliebigen, plattformdefinierten Epoche.
|
GetClock_MonotonicHiRes
uint64_t GetClock_MonotonicHiRes( void )
Plattformspezifische Funktion zum Abrufen einer hochauflösenden monotonen Systemzeit in Mikrosekunden.
Es wird erwartet, dass diese Funktion die verstrichene Zeit seit einer beliebigen, plattformdefinierten Epoche in Mikrosekunden zurückgibt. Von GetClock_MonotonicHiRes() zurückgegebene Werte müssen kontinuierlich ansteigen, d.h. nie umgebrochen werden. Der zugrunde liegende Timer muss jedoch im Tiefschlafmodus des Systems nicht kontinuierlich ausgelöst werden.
Es wird empfohlen, GetClock_MonotonicHiRes() mit einem Timer mit hoher Auflösung zu implementieren, der keine graduellen Uhranpassungen (Drehbewegungen) durchführt. Auf Plattformen ohne einen solchen Timer kann GetClock_MonotonicHiRes() denselben Wert wie GetClock_Monotonic() zurückgeben.
Die von dieser Funktion zurückgegebene Epoche muss nicht mit der Epoche der anderen GetClock...-Funktionen übereinstimmen.
Es wird erwartet, dass diese Funktion auf jeder Plattform, die Threading verwendet, threadsicher ist.
Details | |
---|---|
Rückgabe |
Verstrichene Zeit in Mikrosekunden seit einer beliebigen, plattformdefinierten Epoche.
|
GetClock_MonotonicMS
uint64_t GetClock_MonotonicMS( void )
Plattformspezifische Funktion zum Abrufen der monotonen Systemzeit in Millisekunden.
Es wird erwartet, dass diese Funktion die verstrichene Zeit seit einer beliebigen, plattformdefinierten Epoche in Millisekunden zurückgibt. Plattformimplementierungen müssen einen Wert zurückgeben, der zwischen Neustarts des Systems immer größer wird, d.h. nie umgebrochen wird. Darüber hinaus muss die zugrunde liegende Zeitquelle in allen System-Ruhemodusmodi, die keinen Neustart nach dem Aufwachen enthalten, kontinuierlich aktiv sein.
Die von dieser Funktion zurückgegebene Epoche muss nicht mit der Epoche der anderen GetClock...-Funktionen wie GetClock_Monotonic() übereinstimmen.
Es wird erwartet, dass diese Funktion auf jeder Plattform, die Threading verwendet, threadsicher ist.
Details | |
---|---|
Rückgabe |
Verstrichene Zeit in Millisekunden seit einer beliebigen plattformdefinierten Epoche.
|
GetClock_RealTime
Error GetClock_RealTime( uint64_t & curTime )
Plattformspezifische Funktion zum Abrufen der aktuellen realen Zeit im Unix-Zeitformat im Mikrosekundenformat.
Es wird erwartet, dass diese Funktion den Begriff der aktuellen Echtzeit der lokalen Plattform zurückgibt, ausgedrückt als Unix-Zeitwert, der auf Mikrosekunden skaliert ist. Die zugrunde liegende Uhr muss mindestens eine ganze Sekunde (Werte von 1.000.000) ticken, kann aber schneller ticken.
Auf Plattformen, die Echtzeit-Tracking unterstützen, muss GetClock_RealTime() den Fehler WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED zurückgeben, wenn das System nicht mit Echtzeit synchronisiert ist.
Plattformen, die keine Echtzeit-Tracking-Funktion verwenden können, sollten die Funktion GetClock_RealTime() nicht implementieren, um Verbindungszeitfehler bei Funktionen zu erzwingen, die auf Echtzeitzugriff angewiesen sind. Alternativ können solche Plattformen eine Implementierung von GetClock_RealTime() liefern, die den Fehler WEAVE_SYSTEM_ERROR_NOT_SUPPORTED zurückgibt.
Es wird erwartet, dass diese Funktion auf jeder Plattform, die Threading verwendet, threadsicher ist.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabewerte |
|
GetClock_RealTimeMS
Error GetClock_RealTimeMS( uint64_t & curTimeMS )
Plattformspezifische Funktion zum Abrufen der aktuellen realen Zeit im Unix-Zeitformat im Millisekundenbereich
Es wird erwartet, dass diese Funktion den Begriff der aktuellen Echtzeit der lokalen Plattform zurückgibt, ausgedrückt als Unix-Zeitwert, der auf Millisekunden skaliert wird.
Details zum erwarteten Verhalten finden Sie in der Dokumentation zu GetClock_RealTime().
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabewerte |
|
PostEvent
NL_DLL_EXPORT Error PostEvent( Layer & aLayer, void *aContext, Object & aTarget, EventType aType, uintptr_t aArgument )
Dies ist ein plattformspezifischer Event-/Nachrichten-Post-Hook.
Dies kann überschrieben werden, indem die Präprozessordefinition WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS bestätigt wird.
Damit wird ein Ereignis / Nachricht des angegebenen Typs mit dem angegebenen Argument in die plattformspezifische Ereignis-/Nachrichtenwarteschlange dieser Instanz gepostet.
Details | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||
Rückgabe |
WEAVE_SYSTEM_NO_ERROR bei Erfolg; Andernfalls ein bestimmter Fehler, der den Grund für das Fehlschlagen der Initialisierung angibt.
|
SetClock_RealTime
Error SetClock_RealTime( uint64_t newCurTime )
Plattformspezifische Funktion zum Festlegen der aktuellen reellen Zeit.
Weave ruft diese Funktion auf, um das Konzept der lokalen Plattform für die aktuelle Echtzeit festzulegen. Die neue aktuelle Zeit wird als Unix-Zeitwert ausgedrückt, der auf Mikrosekunden skaliert ist.
Nach der Einstellung verfolgt die zugrunde liegende Plattformuhr voraussichtlich in Echtzeit eine Genauigkeit von mindestens ganzen Sekunden.
Auf Plattformen, die das Tracking in Echtzeit unterstützen, muss die Funktion „SetClock_RealTime()“ den Fehler WEAVE_SYSTEM_ERROR_ACCESS_DENIED zurückgeben, wenn die aufrufende Anwendung nicht über die Berechtigung zum Einstellen der aktuellen Uhrzeit verfügt.
Plattformen, die keine Echtzeit-Tracking-Funktion bzw. keine Echtzeiteinstellung bieten, sollten die Funktion „SetClock_RealTime()“ nicht implementieren, um Verbindungszeitfehler bei Funktionen zu erzwingen, die von der Einstellung in Echtzeit abhängen. Alternativ können solche Plattformen eine Implementierung von SetClock_RealTime() liefern, die den Fehler WEAVE_SYSTEM_ERROR_NOT_SUPPORTED zurückgibt.
Es wird erwartet, dass diese Funktion auf jeder Plattform, die Threading verwendet, threadsicher ist.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabewerte |
|
StartTimer
NL_DLL_EXPORT Error StartTimer( Layer & aLayer, void *aContext, uint32_t aMilliseconds )
Dies ist ein plattformspezifischer Ereignis-/Nachrichten-Weiterleitungs-Hook.
Dies kann überschrieben werden, indem die Präprozessordefinition WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS bestätigt wird.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabewerte |
|
WillInit
NL_DLL_EXPORT Error WillInit( Layer & aLayer, void *aContext )
Dies ist ein plattformspezifischer Hook zur Vorinitialisierung des Weave System Layer-Elements.
Dies kann überschrieben werden, indem die Präprozessordefinition WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS bestätigt wird.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabe |
WEAVE_SYSTEM_NO_ERROR bei Erfolg; Andernfalls ein bestimmter Fehler, der den Grund für das Fehlschlagen der Initialisierung angibt. Wenn Sie den Status „Nicht erfolgreich“ zurückgeben, wird die Initialisierung abgebrochen.
|
WillShutdown
NL_DLL_EXPORT Error WillShutdown( Layer & aLayer, void *aContext )
Dies ist ein plattformspezifischer Weave System Layer-Hook vor dem Herunterfahren.
Dies kann überschrieben werden, indem die Präprozessordefinition WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS bestätigt wird.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabe |
WEAVE_SYSTEM_NO_ERROR bei Erfolg; Andernfalls ein bestimmter Fehler, der den Grund für das Fehlschlagen des Herunterfahrens angibt. Wird der Status „Nicht erfolgreich“ zurückgegeben, wird das Herunterfahren abgebrochen.
|