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
[in,out] aLayer
Ein Verweis auf die Layer-Instanz von Weave System, die initialisiert wird.
[in,out] aContext
Plattformspezifische Kontextdaten, die an die Ebeneninitialisierungsmethode ::Init übergeben werden.
[in] anError
Der über die Weave System Layer ::Init-Methode zurückgegebene Gesamtstatus.

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
[in,out] aLayer
Ein Verweis auf die Weave System Layer-Instanz, die heruntergefahren wird.
[in,out] aContext
Plattformspezifische Kontextdaten, die an die Ebene-Initialisierungsmethode ::Shutdown übergeben werden.
[in] anError
Der Gesamtstatus, der über die Weave System-Methode Layer ::Shutdown zurückgegeben wird.
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
[in,out] aLayer
Ein Verweis auf die Ebeneninstanz, für die Ereignisse / Nachrichten gesendet werden.
[in,out] aContext
Plattformspezifische Kontextdaten, die an die Ebeneninitialisierungsmethode ::Init übergeben werden.
[in] anEvent
Das plattformspezifische Ereignisobjekt, das zur Verarbeitung weitergeleitet werden soll.
Rückgabewerte
#WEAVE_SYSTEM_ERROR_BAD_ARGS
Wenn #aLayer oder das Ereignisziel NULL ist.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
Wenn der Ereignistyp nicht erkannt wurde.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Wenn der Status des Layer-Objekts von Weave System unerwartet ist.
WEAVE_SYSTEM_NO_ERROR
Bei Erfolg.

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
[in,out] aLayer
Ein Verweis auf die Ebeneninstanz, für die Ereignisse / Nachrichten gesendet werden.
[in,out] aContext
Plattformspezifische Kontextdaten, die an die Ebeneninitialisierungsmethode ::Init übergeben werden.
Rückgabewerte
#WEAVE_SYSTEM_ERROR_BAD_ARGS
Wenn #aLayer oder #aContext NULL ist.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Wenn der Status des Layer-Objekts von Weave System unerwartet ist.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
Wenn ein Ereignistyp nicht erkannt wurde.
WEAVE_SYSTEM_NO_ERROR
Bei Erfolg.

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
[out] curTime
Die aktuelle Zeit, ausgedrückt als Unix-Zeit in Mikrosekunden.
Rückgabewerte
WEAVE_SYSTEM_NO_ERROR
Wenn die Methode erfolgreich war.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Ob die Plattform in Echtzeit verfolgen kann, aber derzeit nicht synchronisiert ist.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Ob die Plattform kein Echtzeit-Tracking ermöglichen kann

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
[out] curTime
Die aktuelle Zeit, ausgedrückt als Unix-Zeit in Millisekunden.
Rückgabewerte
WEAVE_SYSTEM_NO_ERROR
Wenn die Methode erfolgreich war.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Ob die Plattform in Echtzeit verfolgen kann, aber derzeit nicht synchronisiert ist.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Ob die Plattform kein Echtzeit-Tracking ermöglichen kann

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
[in,out] aLayer
Ein Zeiger auf die Ebeneninstanz, auf der das Ereignis / die Nachricht gepostet wird.
[in,out] aContext
Plattformspezifische Kontextdaten, die an die Ebeneninitialisierungsmethode ::Init übergeben werden.
[in,out] aTarget
Ein Zeiger auf das Layer-Objekt des Weave System, von dem die Übermittlungsanfrage stammt.
[in] aType
Die Art des Ereignisses, das gepostet werden soll.
[in,out] anArg
Das Argument, das mit dem zu postenden Ereignis verknüpft ist.
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
[in] newCurTime
Die neue aktuelle Zeit, ausgedrückt als Unix-Zeit in Mikrosekunden.
Rückgabewerte
WEAVE_SYSTEM_NO_ERROR
Wenn die Methode erfolgreich war.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Ob die Plattform kein Echtzeit-Tracking ermöglichen kann
#WEAVE_SYSTEM_ERROR_ACCESS_DENIED
Wenn die aufrufende Anwendung nicht über die Berechtigung zum Festlegen der aktuellen Uhrzeit verfügt.

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
[in,out] aLayer
Ein Verweis auf die Ebeneninstanz, für die Ereignisse / Nachrichten gesendet werden.
[in,out] aContext
Plattformspezifische Kontextdaten, die an die Ebeneninitialisierungsmethode ::Init übergeben werden.
[in] aMilliseconds
Die Anzahl der Millisekunden, die für den Timer eingestellt werden soll.
Rückgabewerte
WEAVE_SYSTEM_NO_ERROR
Ist immer erfolgreich, sofern nicht überschrieben.

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
[in,out] aLayer
Ein Verweis auf die Layer-Instanz von Weave System, die initialisiert wird.
[in,out] aContext
Plattformspezifische Kontextdaten, die an die Ebeneninitialisierungsmethode ::Init übergeben werden.
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
[in,out] aLayer
Ein Zeiger auf die Layer-Instanz von Weave System, die heruntergefahren wird.
[in,out] aContext
Plattformspezifische Kontextdaten, die an die Ebene-Initialisierungsmethode ::Shutdown übergeben werden.
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.