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

Özet

İşlevler

DidInit(Layer & aLayer, void *aContext, Error aStatus)
NL_DLL_EXPORT void
Bu, platforma özgü bir Weave System Katman başlatma sonrası kancasıdır.
DidShutdown(Layer & aLayer, void *aContext, Error aStatus)
NL_DLL_EXPORT void
Bu, platforma özgü bir Dokuma Sistemi Katman önceden kapatma kancasıdır.
DispatchEvent(Layer & aLayer, void *aContext, Event aEvent)
NL_DLL_EXPORT Error
Bu, platforma özel bir etkinlik / ileti gönderme kancasıdır.
DispatchEvents(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
Bu, platforma özel bir etkinlik / ileti gönderme kancasıdır.
GetClock_Monotonic(void)
uint64_t
Monotonik sistem süresini mikrosaniye cinsinden almak için platforma özgü işlev.
GetClock_MonotonicHiRes(void)
uint64_t
Yüksek çözünürlüklü monotonik sistem zamanını mikrosaniye cinsinden almak için platforma özgü işlev.
GetClock_MonotonicMS(void)
uint64_t
Milisaniye cinsinden monotonik sistem süresini almak için platforma özgü işlev.
GetClock_RealTime(uint64_t & curTime)
Error
Geçerli gerçek (sivil) saati mikrosaniye Unix saat biçiminde almak için platforma özgü işlev.
GetClock_RealTimeMS(uint64_t & curTimeMS)
Error
Geçerli gerçek (sivil) saati milisaniyelik Unix saat biçiminde almak için platforma özgü işlev.
PostEvent(Layer & aLayer, void *aContext, Object & aTarget, EventType aType, uintptr_t aArgument)
NL_DLL_EXPORT Error
Bu, platforma özel bir etkinlik / mesaj yayın kancasıdır.
SetClock_RealTime(uint64_t newCurTime)
Error
Geçerli gerçek (resmi) saati ayarlamak için kullanılan platforma özgü işlev.
StartTimer(Layer & aLayer, void *aContext, uint32_t aMilliseconds)
NL_DLL_EXPORT Error
Bu, platforma özel bir etkinlik / ileti gönderme kancasıdır.
WillInit(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
Bu, platforma özgü bir Weave System Katman ön başlatma kancasıdır.
WillShutdown(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
Bu, platforma özgü bir Dokuma Sistemi Katman önceden kapatma kancasıdır.

İşlevler

DidInit

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

Bu, platforma özgü bir Weave System Katman başlatma sonrası kancasıdır.

Bu işlem, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS ön işlemci tanımı onaylanarak geçersiz kılınabilir.

Ayrıntılar
Parametreler
[in,out] aLayer
Başlatılmakta olan Weave Sistem Katman örneğine referans.
[in,out] aContext
::Init adlı katman başlatma yöntemine iletilen platforma özel bağlam verileri.
[in] anError
Weave System Katman ::Init yöntemi aracılığıyla döndürülen genel durum.

DidShutdown

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

Bu, platforma özgü bir Dokuma Sistemi Katman önceden kapatma kancasıdır.

Bu işlem, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS ön işlemci tanımı onaylanarak geçersiz kılınabilir.

Ayrıntılar
Parametreler
[in,out] aLayer
Kapatılmakta olan Weave Sistem Katman örneğinin referansı.
[in,out] aContext
::Shutdown, katman başlatma yöntemine iletilen platforma özel bağlam verileri.
[in] anError
Weave System Katman ::Shutdown yöntemi aracılığıyla döndürülen genel durum.
İadeler
Başarılı olduğunda WEAVE_SYSTEM_NO_ERROR. Aksi takdirde, kapatma hatasının nedenini belirten belirli bir hata mesajı gösterilir. Başarısız durum geri döndürülmesi, kapatma işlemini iptal eder.

DispatchEvent

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

Bu, platforma özel bir etkinlik / ileti gönderme kancasıdır.

Bu işlem, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS ön işlemci tanımı belirtilerek geçersiz kılınabilir.

Bu işlem, belirtilen etkinliği işleme için gönderir, etkinlikteki tür ve bağımsız değişkenlerin gerçek dağıtım için Weave System tier::HandleEvent'e devredilmesi amacıyla kullanılır.

Ayrıntılar
Parametreler
[in,out] aLayer
Etkinliklerin / mesajların gönderildiği katman örneği için referans.
[in,out] aContext
::Init adlı katman başlatma yöntemine iletilen platforma özel bağlam verileri.
[in] anEvent
İşleme için gönderilecek platforma özgü etkinlik nesnesi.
Döndürülen Değerler
#WEAVE_SYSTEM_ERROR_BAD_ARGS
#alayer veya etkinlik hedefi NULL ise.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
Etkinlik türü tanınmıyorsa.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Weave System Katman nesnesinin durumu beklenmeyen bir durumsa.
WEAVE_SYSTEM_NO_ERROR
Başarılı olun.

DispatchEvents

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

Bu, platforma özel bir etkinlik / ileti gönderme kancasıdır.

Bu işlem, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS ön işlemci tanımı belirtilerek geçersiz kılınabilir.

Bu işlem, söz konusu örneğe hizmet veren bir sıra bekleyerek, etkinlikleri sıradan çekip işleme için göndererek bir etkinlik döngüsünü etkiler.

Ayrıntılar
Parametreler
[in,out] aLayer
Etkinliklerin / mesajların gönderildiği katman örneği için referans.
[in,out] aContext
::Init adlı katman başlatma yöntemine iletilen platforma özel bağlam verileri.
Döndürülen Değerler
#WEAVE_SYSTEM_ERROR_BAD_ARGS
#atier veya #aContext NULL ise.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Weave System Katman nesnesinin durumu beklenmeyen bir durumsa.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
Bir etkinlik türü tanınmıyorsa.
WEAVE_SYSTEM_NO_ERROR
Başarılı olun.

GetClock_Monotonic

uint64_t GetClock_Monotonic(
  void
)

Monotonik sistem süresini mikrosaniye cinsinden almak için platforma özgü işlev.

Bu işlevin, platform tanımlı rastgele bir dönemden bu yana geçen süreyi mikrosaniye cinsinden döndürmesi beklenir. Platform uygulamalarının, sistemin yeniden başlatılması arasında sürekli artan (yani asla sarmalamayan) bir değer döndürmesi gerekir. Buna ek olarak, uyandıktan sonra yeniden başlatma gerektirmeyen sistem uyku modları sırasında temel zaman kaynağının sürekli olarak işaretlenmesi gerekir.

Bu işlev tarafından döndürülen zaman alanının, GetClock_MonotonicMS() dahil diğer GetClock... işlevlerinden herhangi biriyle aynı olması gerekmez.

Bu işlevin, ileti dizisi kullanılan tüm platformlarda iş parçacığı güvenli olması beklenir.

yöntemini çağırmalıdır.

Ayrıntılar
İadeler
Rastgele, platform tanımlı bir dönemden bu yana geçen süre (mikrosaniye cinsinden).

GetClock_MonotonicHiRes

uint64_t GetClock_MonotonicHiRes(
  void
)

Yüksek çözünürlüklü monotonik sistem zamanını mikrosaniye cinsinden almak için platforma özgü işlev.

Bu işlevin, platform tanımlı rastgele bir dönemden bu yana geçen süreyi mikrosaniye cinsinden döndürmesi beklenir. GetClock_MonotonicHiRes() tarafından döndürülen değerlerin sürekli artması gerekir (yani asla sarmalamaz). Ancak altta yatan zamanlayıcının sistem derin uyku durumları sırasında sürekli olarak ayarlanması gerekmez.

Platformun, kademeli saat ayarlamalarına (saptırmaya) tabi olmayan yüksek çözünürlüklü bir zamanlayıcı kullanarak GetClock_MonotonicHiRes() yöntemini uygulaması önerilir. Böyle bir zamanlayıcının olmadığı platformlarda GetClock_MonotonicHiRes(), GetClock_Monotonic() ile aynı değeri döndürebilir.

Bu işlev tarafından döndürülen zaman zamanının, diğer herhangi bir GetClock... işleviyle aynı olması gerekmez.

Bu işlevin, ileti dizisi kullanılan tüm platformlarda iş parçacığı güvenli olması beklenir.

yöntemini çağırmalıdır.

Ayrıntılar
İadeler
Rastgele, platform tanımlı bir dönemden bu yana geçen süre (mikrosaniye cinsinden).

GetClock_MonotonicMS

uint64_t GetClock_MonotonicMS(
  void
)

Milisaniye cinsinden monotonik sistem süresini almak için platforma özgü işlev.

Bu işlevin, platform tanımlı rastgele bir dönemden bu yana geçen süreyi milisaniye cinsinden döndürmesi beklenir. Platform uygulamalarının, sistemin yeniden başlatılması arasında sürekli artan (yani asla sarmalamayan) bir değer döndürmesi gerekir. Buna ek olarak, uyandıktan sonra yeniden başlatma gerektirmeyen sistem uyku modları sırasında temel zaman kaynağının sürekli olarak işaretlenmesi gerekir.

Bu işlev tarafından döndürülen zaman diliminin, GetClock_Monotonic() dahil diğer GetClock... işlevlerinden herhangi biri için aynı olması gerekmez.

Bu işlevin, ileti dizisi kullanılan tüm platformlarda iş parçacığı güvenli olması beklenir.

yöntemini çağırmalıdır.

Ayrıntılar
İadeler
Rastgele, platform tanımlı bir dönemden bu yana geçen süre (milisaniye cinsinden).

GetClock_RealTime

Error GetClock_RealTime(
  uint64_t & curTime
)

Geçerli gerçek (sivil) saati mikrosaniye Unix saat biçiminde almak için platforma özgü işlev.

Bu işlevin, yerel platformun geçerli gerçek zamanlı kavramını döndürmesi beklenir. Bu kavram, mikrosaniyeye ölçeklenmiş bir Unix zaman değeri olarak ifade edilir. Temel saatin en az tam saniye gibi (1.000.000 değerinde) bir hızda ilerlemesi gerekir, ancak daha hızlı çalışabilir.

Gerçek zamanlı izleme yapabilen bu platformlarda, sistemin gerçek zamanlı senkronizasyonu iptal edildiğinde GetClock_RealTime(), WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED hatasını döndürmelidir.

Gerçek zamanlı izleme yapamayan platformlar, GetClock_RealTime() işlevini uygulamamalıdır. Bu nedenle, gerçek zamanlı erişime bağlı olan özelliklerde bağlantı-zaman hataları zorla yaşanır. Alternatif olarak, bu tür platformlar WEAVE_SYSTEM_ERROR_NOT_SUPPORTED hatasını döndüren bir GetClock_RealTime() uygulaması sağlayabilir.

Bu işlevin, ileti dizisi kullanılan tüm platformlarda iş parçacığı güvenli olması beklenir.

çağrısı yapmalıdır.

Ayrıntılar
Parametreler
[out] curTime
Mikrosaniyeye ölçeklenmiş Unix zamanı olarak ifade edilen geçerli saat.
Döndürülen Değerler
WEAVE_SYSTEM_NO_ERROR
Yöntem başarılı olup olmadığı.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Platformun gerçek zamanlı izleme özelliği olmasına rağmen şu anda senkronize edilmemişse.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Platformun gerçek zamanlı izleme yapamaması.

GetClock_RealTimeMS

Error GetClock_RealTimeMS(
  uint64_t & curTimeMS
)

Geçerli gerçek (sivil) saati milisaniyelik Unix saat biçiminde almak için platforma özgü işlev.

Bu işlevin, yerel platformun geçerli gerçek zamanlı kavramını döndürmesi beklenir. Bu kavram, milisaniyeye ölçeklenmiş bir Unix zaman değeri olarak ifade edilir.

Beklenen davranışla ilgili ayrıntılar için GetClock_RealTime() dokümanlarına bakın.

yöntemini çağırmalıdır.

Ayrıntılar
Parametreler
[out] curTime
Milisaniye cinsinden ölçeklendirilmiş Unix zamanı olarak ifade edilen geçerli saat.
Döndürülen Değerler
WEAVE_SYSTEM_NO_ERROR
Yöntem başarılı olup olmadığı.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Platformun gerçek zamanlı izleme özelliği olmasına rağmen şu anda senkronize edilmemişse.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Platformun gerçek zamanlı izleme yapamaması.

PostEvent

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

Bu, platforma özel bir etkinlik / mesaj yayın kancasıdır.

Bu işlem, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS ön işlemci tanımı belirtilerek geçersiz kılınabilir.

Bu işlem, sağlanan bağımsız değişkeni bu örneğin platforma özel etkinlik/mesaj sırasına, belirtilen türde bir etkinlik veya mesaj yayınlar.

Ayrıntılar
Parametreler
[in,out] aLayer
Etkinliğin / mesajın gönderildiği katman örneğine işaretçi.
[in,out] aContext
::Init adlı katman başlatma yöntemine iletilen platforma özel bağlam verileri.
[in,out] aTarget
Yayınlama isteğini yapan Weave System Katman nesnesine işaret eden işaretçi.
[in] aType
Yayınlanacak etkinliğin türü.
[in,out] anArg
Yayınlanacak etkinlikle ilişkili bağımsız değişken.
İadeler
Başarılı olduğunda WEAVE_SYSTEM_NO_ERROR. Aksi takdirde başlatma hatasının nedenini belirten belirli bir hata.

SetClock_RealTime

Error SetClock_RealTime(
  uint64_t newCurTime
)

Geçerli gerçek (resmi) saati ayarlamak için kullanılan platforma özgü işlev.

Weave, yerel platformun geçerli gerçek zamanlı kavramını ayarlamak için bu işlevi çağırır. Yeni geçerli saat, mikrosaniyeye ölçeklenmiş bir Unix zaman değeri olarak ifade edilir.

Ayarlandıktan sonra temel platform saatinin gerçek zamanı en az tam saniyelik bir ayrıntı düzeyiyle izlemesi beklenir.

Gerçek zamanlı izlemeyi destekleyen platformlarda, çağıran uygulamanın geçerli saati ayarlama ayrıcalığına sahip olmaması durumunda SetClock_RealTime() işlevin WEAVE_SYSTEM_ERROR_ACCESS_DENIED hatası döndürmesi gerekir.

Gerçek zamanlı izleme yapamayan veya gerçek zamanlı ayarlama olanağı sunmayan platformlarda SetClock_RealTime() işlevini uygulamamalıdır. Bu durumda, gerçek zamanlı ayarlamaya bağlı özelliklerde bağlantı zamanı hataları meydana gelebilir. Alternatif olarak, bu tür platformlar WEAVE_SYSTEM_ERROR_NOT_SUPPORTED hatasını döndüren bir SetClock_RealTime() uygulaması sağlayabilir.

Bu işlevin, ileti dizisi kullanılan tüm platformlarda iş parçacığı güvenli olması beklenir.

yöntemini çağırmalıdır.

Ayrıntılar
Parametreler
[in] newCurTime
Mikrosaniyeye ölçeklendirilmiş Unix zamanı olarak ifade edilen yeni geçerli saat.
Döndürülen Değerler
WEAVE_SYSTEM_NO_ERROR
Yöntem başarılı olup olmadığı.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Platformun gerçek zamanlı izleme yapamaması.
#WEAVE_SYSTEM_ERROR_ACCESS_DENIED
Arama uygulaması geçerli saati ayarlama ayrıcalığına sahip değilse.

StartTimer

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

Bu, platforma özel bir etkinlik / ileti gönderme kancasıdır.

Bu işlem, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS ön işlemci tanımı belirtilerek geçersiz kılınabilir.

Ayrıntılar
Parametreler
[in,out] aLayer
Etkinliklerin / mesajların gönderildiği katman örneği için referans.
[in,out] aContext
::Init adlı katman başlatma yöntemine iletilen platforma özel bağlam verileri.
[in] aMilliseconds
Zamanlayıcı için ayarlanacak milisaniye sayısı.
Döndürülen Değerler
WEAVE_SYSTEM_NO_ERROR
Geçersiz kılınmadığı sürece her zaman başarılı olur.

WillInit

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

Bu, platforma özgü bir Weave System Katman ön başlatma kancasıdır.

Bu işlem, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS ön işlemci tanımı onaylanarak geçersiz kılınabilir.

Ayrıntılar
Parametreler
[in,out] aLayer
Başlatılmakta olan Weave Sistem Katman örneğine referans.
[in,out] aContext
::Init adlı katman başlatma yöntemine iletilen platforma özel bağlam verileri.
İadeler
Başarılı olduğunda WEAVE_SYSTEM_NO_ERROR. Aksi takdirde başlatma hatasının nedenini belirten belirli bir hata. Başarısız durum döndürüldüğünde başlatma iptal edilir.

WillShutdown

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

Bu, platforma özgü bir Dokuma Sistemi Katman önceden kapatma kancasıdır.

Bu işlem, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS ön işlemci tanımı onaylanarak geçersiz kılınabilir.

Ayrıntılar
Parametreler
[in,out] aLayer
Kapatılmakta olan Weave System Katman örneğinin işaretçisi.
[in,out] aContext
::Shutdown, katman başlatma yöntemine iletilen platforma özel bağlam verileri.
İadeler
Başarılı olduğunda WEAVE_SYSTEM_NO_ERROR. Aksi takdirde, kapatma hatasının nedenini belirten belirli bir hata mesajı gösterilir. Başarısız durum geri döndürülmesi, kapatma işlemini iptal eder.