nl::Weave::System::Platform::Layer

Podsumowanie

Funkcje

DidInit(Layer & aLayer, void *aContext, Error aStatus)
NL_DLL_EXPORT void
Jest to specyficzny dla platformy haczyk warstwa po zainicjowaniu systemu Weave System.
DidShutdown(Layer & aLayer, void *aContext, Error aStatus)
NL_DLL_EXPORT void
Jest to specyficzny dla platformy element zaczepienia warstwa Weave System.
DispatchEvent(Layer & aLayer, void *aContext, Event aEvent)
NL_DLL_EXPORT Error
Jest to specyficzny punkt zaczepienia zdarzenia / wiadomości na danej platformie.
DispatchEvents(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
Jest to specyficzny punkt zaczepienia zdarzenia / wiadomości na danej platformie.
GetClock_Monotonic(void)
uint64_t
Związana z platformą funkcja pobierania czasu systemu monotonnego w mikrosekundach.
GetClock_MonotonicHiRes(void)
uint64_t
Funkcja zależna od platformy, która określa czas systemu monotonnego o wysokiej rozdzielczości w mikrosekundach.
GetClock_MonotonicMS(void)
uint64_t
Związana z platformą funkcja pobierania czasu systemu monotonnego w milisekundach.
GetClock_RealTime(uint64_t & curTime)
Error
Związana z platformą funkcja pobierania bieżącego czasu rzeczywistego (cywilnego) w mikrosekundowym formacie czasu uniksowego.
GetClock_RealTimeMS(uint64_t & curTimeMS)
Error
Zintegrowana z platformą funkcja pobierania bieżącego czasu rzeczywistego (cywilnego) w milisekundowym formacie czasu uniksowego.
PostEvent(Layer & aLayer, void *aContext, Object & aTarget, EventType aType, uintptr_t aArgument)
NL_DLL_EXPORT Error
Jest to punkt zaczepienia zdarzenia / wiadomości na danej platformie.
SetClock_RealTime(uint64_t newCurTime)
Error
Funkcja związana z platformą do ustawiania bieżącego czasu rzeczywistego (cywilnego).
StartTimer(Layer & aLayer, void *aContext, uint32_t aMilliseconds)
NL_DLL_EXPORT Error
Jest to specyficzny punkt zaczepienia zdarzenia / wiadomości na danej platformie.
WillInit(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
Jest to specyficzny dla platformy haczyk wstępnego inicjowania systemu Warstwa Weave System.
WillShutdown(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
Jest to specyficzny dla platformy element zaczepienia warstwa Weave System.

Funkcje

DidInit

NL_DLL_EXPORT void DidInit(
  Layer & aLayer,
  void *aContext,
  Error aStatus
)

Jest to specyficzny dla platformy haczyk warstwa po zainicjowaniu systemu Weave System.

Można go zastąpić, zapisując definicję preprocesora WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

Szczegóły
Parametry
[in,out] aLayer
Odwołanie do inicjowanej instancji warstwy Weave System.
[in,out] aContext
Dane kontekstowe z konkretnej platformy przekazywane do metody inicjowania warstwy, ::Init.
[in] anError
Ogólny stan zwracany za pomocą metody Layer systemu Weave ::Init.

DidShutdown

NL_DLL_EXPORT void DidShutdown(
  Layer & aLayer,
  void *aContext,
  Error aStatus
)

Jest to specyficzny dla platformy element zaczepienia warstwa Weave System.

Można go zastąpić, zapisując definicję preprocesora WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

Szczegóły
Parametry
[in,out] aLayer
Informacja o zamykaniu instancji Layer systemu Weave.
[in,out] aContext
Dane kontekstowe związane z platformą przekazywane do metody inicjowania warstwy, ::disable.
[in] anError
Ogólny stan zwracany przez metodę Warstwa systemu Weave ::disabledown.
Zwroty
WEAVE_SYSTEM_NO_ERROR po powodzeniu; w przeciwnym razie określony błąd wskazujący przyczynę niepowodzenia wyłączenia. Zwrócenie stanu nieudanego spowoduje przerwanie zamykania.

DispatchEvent

NL_DLL_EXPORT Error DispatchEvent(
  Layer & aLayer,
  void *aContext,
  Event aEvent
)

Jest to specyficzny punkt zaczepienia zdarzenia / wiadomości na danej platformie.

Można go zastąpić, zapisując definicję preprocesora WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.

Powoduje to wysłanie określonego zdarzenia do obsługi przez usunięcie zgrupowania typu i argumentów ze zdarzenia w celu przekazania do systemu Weave Layer::HandleEvent na potrzeby rzeczywistego wysyłki.

Szczegóły
Parametry
[in,out] aLayer
Odwołanie do instancji warstwy, dla której są wysyłane zdarzenia / wiadomości.
[in,out] aContext
Dane kontekstowe z konkretnej platformy przekazywane do metody inicjowania warstwy, ::Init.
[in] anEvent
Obiekt zdarzenia na danej platformie do wysłania w celu obsługi.
Zwracane wartości
#WEAVE_SYSTEM_ERROR_BAD_ARGS
Jeśli #aLayer lub cel zdarzenia ma wartość NULL.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
Jeśli nie udało się rozpoznać typu zdarzenia.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Gdy stan obiektu Warstwa systemu Weave jest nieoczekiwany.
WEAVE_SYSTEM_NO_ERROR
Powodzenie.

DispatchEvents

NL_DLL_EXPORT Error DispatchEvents(
  Layer & aLayer,
  void *aContext
)

Jest to specyficzny punkt zaczepienia zdarzenia / wiadomości na danej platformie.

Można go zastąpić, zapisując definicję preprocesora WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.

Powoduje to pętlę zdarzeń, oczekiwanie na kolejkę obsługującą tę instancję, pobieranie zdarzeń z tej kolejki i wysyłanie ich do obsługi.

Szczegóły
Parametry
[in,out] aLayer
Odwołanie do instancji warstwy, dla której są wysyłane zdarzenia / wiadomości.
[in,out] aContext
Dane kontekstowe z konkretnej platformy przekazywane do metody inicjowania warstwy, ::Init.
Zwracane wartości
#WEAVE_SYSTEM_ERROR_BAD_ARGS
Jeśli #aLayer lub #aContext ma wartość NULL.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Gdy stan obiektu Warstwa systemu Weave jest nieoczekiwany.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
Jeśli nie udało się rozpoznać typu zdarzenia.
WEAVE_SYSTEM_NO_ERROR
Powodzenie.

GetClock_Monotonic

uint64_t GetClock_Monotonic(
  void
)

Związana z platformą funkcja pobierania czasu systemu monotonnego w mikrosekundach.

Ta funkcja powinna zwracać czas upływający w mikrosekundach od dowolnej epoki zdefiniowanej przez platformę. Implementacje platform są zobowiązane do zwrócenia wartości, która stale rośnie (czyli nigdy się nie zawija) między restartami systemu. Dodatkowo odpowiednie źródło czasu musi być stale aktywne w trybie uśpienia systemu, który nie wiąże się z ponownym uruchomieniem po wybudzeniu.

epoka czasu zwracana przez tę funkcję nie musi być taka sama jak w przypadku innych funkcji GetClock..., w tym GetClock_MonotonicMS().

Ta funkcja powinna być bezpieczna w przypadku wątków na wszystkich platformach korzystających z wątków.

Szczegóły
Zwroty
Czas, który upłynął w mikrosekundach od dowolnego okresu zdefiniowanego przez platformę.

GetClock_MonotonicHiRes

uint64_t GetClock_MonotonicHiRes(
  void
)

Funkcja zależna od platformy, która określa czas systemu monotonnego o wysokiej rozdzielczości w mikrosekundach.

Ta funkcja powinna zwracać czas upływający w mikrosekundach od dowolnej epoki zdefiniowanej przez platformę. Wartości zwracane przez funkcję GetClock_MonotonicHiRes() muszą stale rosnąć (czyli nigdy nie zawijać). Jednak bazowy licznik czasu nie musi być stale włączony w stanie głębokiego uśpienia systemu.

Zachęcamy do wdrożenia na platformie funkcji GetClock_MonotonicHiRes() z wykorzystaniem licznika czasu o wysokiej rozdzielczości, który nie podlega stopniowej korektie zegara (czyli obrotom). Na platformach bez takiego licznika funkcja GetClock_MonotonicHiRes() może zwrócić taką samą wartość jak funkcja GetClock_Monotonic().

Epoka czasu zwracana przez tę funkcję nie musi być taka sama jak w przypadku innych funkcji GetClock...

Ta funkcja powinna być bezpieczna w przypadku wątków na wszystkich platformach korzystających z wątków.

Szczegóły
Zwroty
Czas, który upłynął w mikrosekundach od dowolnego okresu zdefiniowanego przez platformę.

GetClock_MonotonicMS

uint64_t GetClock_MonotonicMS(
  void
)

Związana z platformą funkcja pobierania czasu systemu monotonnego w milisekundach.

Ta funkcja powinna zwracać czas (w milisekundach) od dowolnej epoki zdefiniowanej przez platformę. Implementacje platform są zobowiązane do zwrócenia wartości, która stale rośnie (czyli nigdy się nie zawija) między restartami systemu. Dodatkowo odpowiednie źródło czasu musi być stale aktywne w trybie uśpienia systemu, który nie wiąże się z ponownym uruchomieniem po wybudzeniu.

epoka czasu zwracana przez tę funkcję nie musi być taka sama jak w przypadku innych funkcji GetClock..., w tym GetClock_Monotonic().

Ta funkcja powinna być bezpieczna w przypadku wątków na wszystkich platformach korzystających z wątków.

Szczegóły
Zwroty
Czas, który upłynął w milisekundach od dowolnego okresu zdefiniowanego przez platformę.

GetClock_RealTime

Error GetClock_RealTime(
  uint64_t & curTime
)

Związana z platformą funkcja pobierania bieżącego czasu rzeczywistego (cywilnego) w mikrosekundowym formacie czasu uniksowego.

Ta funkcja powinna zwrócić pojęcie bieżącego czasu rzeczywistego na platformie lokalnej, wyrażone jako wartość czasu uniksowego skalowana do mikrosekund. Zegar musi odmierzać co najmniej pełne sekundy (wartości 1 000 000), ale może tykać szybciej.

Na platformach, które mogą śledzić dane w czasie rzeczywistym, funkcja GetClock_RealTime() musi zwracać błąd WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED za każdym razem, gdy system jest niezsynchronizowany z czasem rzeczywistym.

Platformy, które nie mogą śledzić czasu rzeczywistego, nie powinny implementować funkcji GetClock_RealTime(), co wymusza błędy w czasie połączenia funkcji, które zależą od dostępu do czasu rzeczywistego. Takie platformy mogą też dostarczać implementację funkcji GetClock_RealTime(), która zwraca błąd WEAVE_SYSTEM_ERROR_NOT_SUPPORTED.

Ta funkcja powinna być bezpieczna w przypadku wątków na wszystkich platformach korzystających z wątków.

Szczegóły
Parametry
[out] curTime
Bieżący czas wyrażony jako czas uniksowy w skali do mikrosekund.
Zwracane wartości
WEAVE_SYSTEM_NO_ERROR
Jeśli przy użyciu metody się udało:
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Czy platforma może śledzić ruch w czasie rzeczywistym, ale obecnie nie jest zsynchronizowana.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Czy platforma nie może śledzić ruchu w czasie rzeczywistym.

GetClock_RealTimeMS

Error GetClock_RealTimeMS(
  uint64_t & curTimeMS
)

Zintegrowana z platformą funkcja pobierania bieżącego czasu rzeczywistego (cywilnego) w milisekundowym formacie czasu uniksowego.

Ta funkcja powinna zwrócić pojęcie bieżącego czasu rzeczywistego na platformie lokalnej, wyrażone jako wartość czasu uniksowego skalowana do milisekund.

Szczegółowe informacje o spodziewanym działaniu znajdziesz w dokumentacji funkcji GetClock_RealTime().

Szczegóły
Parametry
[out] curTime
Bieżący czas wyrażony jako czas systemu Unix skalowany do milisekund.
Zwracane wartości
WEAVE_SYSTEM_NO_ERROR
Jeśli przy użyciu metody się udało:
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Czy platforma może śledzić ruch w czasie rzeczywistym, ale obecnie nie jest zsynchronizowana.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Czy platforma nie może śledzić ruchu w czasie rzeczywistym.

PostEvent

NL_DLL_EXPORT Error PostEvent(
  Layer & aLayer,
  void *aContext,
  Object & aTarget,
  EventType aType,
  uintptr_t aArgument
)

Jest to punkt zaczepienia zdarzenia / wiadomości na danej platformie.

Można go zastąpić, zapisując definicję preprocesora WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.

Spowoduje to wysłanie zdarzenia lub komunikatu określonego typu z podanym argumentem do kolejki zdarzeń lub komunikatów tej instancji.

Szczegóły
Parametry
[in,out] aLayer
Wskaźnik do instancji warstwy, w której publikowane jest zdarzenie lub wiadomość.
[in,out] aContext
Dane kontekstowe z konkretnej platformy przekazywane do metody inicjowania warstwy, ::Init.
[in,out] aTarget
Wskaźnik do obiektu Warstwa systemu Weave wysyłającego żądanie posta.
[in] aType
Typ wydarzenia do opublikowania.
[in,out] anArg
Argument powiązany z wydarzeniem do opublikowania.
Zwroty
WEAVE_SYSTEM_NO_ERROR po powodzeniu; w przeciwnym razie pojawi się konkretny błąd wskazujący przyczynę niepowodzenia zainicjowania.

SetClock_RealTime

Error SetClock_RealTime(
  uint64_t newCurTime
)

Funkcja związana z platformą do ustawiania bieżącego czasu rzeczywistego (cywilnego).

Weave wywołuje tę funkcję, by ustawić pojęcie bieżącego czasu rzeczywistego przez platformę lokalną. Nowy bieżący czas jest wyrażony jako wartość czasu uniksowego skalowana do mikrosekund.

Po ustawieniu, podstawowy zegar platformy powinien śledzić czas w czasie rzeczywistym z dokładnością wynoszącą co najmniej pełne sekundy.

Na platformach obsługujących śledzenie w czasie rzeczywistym funkcja SetClock_RealTime() musi zwracać błąd WEAVE_SYSTEM_ERROR_ACCESS_DENIED, jeśli aplikacja wywołująca nie ma uprawnień do ustawiania bieżącej godziny.

Platformy, które nie mogą śledzić czasu rzeczywistego lub nie oferują możliwości ustawiania czasu rzeczywistego w czasie rzeczywistym, nie powinny implementować funkcji SetClock_RealTime(). W związku z tym wymuszanie w przypadku połączeń funkcji zależnych od ustawień czasu rzeczywistego może powodować błędy. Takie platformy mogą też dostarczać implementację funkcji SetClock_RealTime(), która zwraca błąd WEAVE_SYSTEM_ERROR_NOT_SUPPORTED.

Ta funkcja powinna być bezpieczna w przypadku wątków na wszystkich platformach korzystających z wątków.

Szczegóły
Parametry
[in] newCurTime
Nowy bieżący czas wyrażony jako czas uniksowy w skali do mikrosekund.
Zwracane wartości
WEAVE_SYSTEM_NO_ERROR
Jeśli przy użyciu metody się udało:
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Czy platforma nie może śledzić ruchu w czasie rzeczywistym.
#WEAVE_SYSTEM_ERROR_ACCESS_DENIED
Jeśli aplikacja wywołująca nie ma uprawnień do ustawienia bieżącej godziny.

StartTimer

NL_DLL_EXPORT Error StartTimer(
  Layer & aLayer,
  void *aContext,
  uint32_t aMilliseconds
)

Jest to specyficzny punkt zaczepienia zdarzenia / wiadomości na danej platformie.

Można go zastąpić, zapisując definicję preprocesora WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.

Szczegóły
Parametry
[in,out] aLayer
Odwołanie do instancji warstwy, dla której są wysyłane zdarzenia / wiadomości.
[in,out] aContext
Dane kontekstowe z konkretnej platformy przekazywane do metody inicjowania warstwy, ::Init.
[in] aMilliseconds
Ustawiony minutnik w milisekundach.
Zwracane wartości
WEAVE_SYSTEM_NO_ERROR
Ta opcja jest stosowana zawsze, chyba że zostanie zastąpiona.

WillInit

NL_DLL_EXPORT Error WillInit(
  Layer & aLayer,
  void *aContext
)

Jest to specyficzny dla platformy haczyk wstępnego inicjowania systemu Warstwa Weave System.

Można go zastąpić, zapisując definicję preprocesora WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

Szczegóły
Parametry
[in,out] aLayer
Odwołanie do inicjowanej instancji warstwy Weave System.
[in,out] aContext
Dane kontekstowe z konkretnej platformy przekazywane do metody inicjowania warstwy, ::Init.
Zwroty
WEAVE_SYSTEM_NO_ERROR po powodzeniu; w przeciwnym razie pojawi się konkretny błąd wskazujący przyczynę niepowodzenia zainicjowania. Zwrócenie stanu nieudanego spowoduje przerwanie inicjowania.

WillShutdown

NL_DLL_EXPORT Error WillShutdown(
  Layer & aLayer,
  void *aContext
)

Jest to specyficzny dla platformy element zaczepienia warstwa Weave System.

Można go zastąpić, zapisując definicję preprocesora WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

Szczegóły
Parametry
[in,out] aLayer
Wskaźnik do zamykanej instancji Warstwa systemu Weave.
[in,out] aContext
Dane kontekstowe związane z platformą przekazywane do metody inicjowania warstwy, ::disable.
Zwroty
WEAVE_SYSTEM_NO_ERROR po powodzeniu; w przeciwnym razie określony błąd wskazujący przyczynę niepowodzenia wyłączenia. Zwrócenie stanu nieudanego spowoduje przerwanie zamykania.