nl::Weave::Profiles::DataManagement_Current::LoggingManagement

#include <src/lib/profiles/data-management/Current/LoggingManagement.h>

Bellek içi etkinlik günlüklerini yönetmek için bir sınıf.

Özet

Oluşturucular ve Yıkıcılar

LoggingManagement(nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources)
LoggingManagement oluşturucusu.
LoggingManagement(void)
LoggingManagement varsayılan oluşturucusu.

Herkese açık işlevler

BlitEvent(EventLoadOutContext *aContext, const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
Etkinlik başlığını ve verilerini etkinlik günlük kaydı protokolüne göre yazmak için yardımcı işlev.
CancelShutdownInProgress(void)
void
mShutdownInProgress işaretini false (yanlış) olarak ayarlayın.
CheckShouldRunWDM(void)
bool
Etkinliklerin, yükleme için planlanmamış etkinlik arabelleklerindeki bayt sayısına göre yüklenip yüklenmeyeceğine karar verin.
FetchEventsSince(nl::Weave::TLV::TLVWriter & ioWriter, ImportanceType inImportance, event_id_t & ioEventID)
Belirtilen etkinlik kimliğinden sonra belirtilen önem düzeyine sahip etkinlikleri almaya yarayan işlev.
GetBytesWritten(void) const
uint32_t
Örneklenmesinden itibaren bu günlüğe yazılan (tüm etkinlik önemlerinde) baytların toplam sayısını alın.
GetEventReader(nl::Weave::TLV::TLVReader & ioReader, ImportanceType inImportance)
Bellek içi günlük arabelleklerini incelemek için faydalı bir yardımcı yöntem.
GetFirstEventID(ImportanceType inImportance)
Belirli bir önem düzeyi için halihazırda depolanan ilk etkinlik kimliğini getirin.
GetLastEventID(ImportanceType inImportance)
Belirli bir önem düzeyi için en son talep edilen kimliği getirin.
IsShutdownInProgress(void)
bool
mShutdownInProgress işaretini kontrol edin.
IsValid(void)
bool
IsValid, LoggingManagement örneğinin geçerli olup olmadığını döndürür.
LoadEvents(TLVReader & reader)
Daha önce devam eden Weave etkinliğini yükleyin.
LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
Seçenekleri de içeren bir geri arama aracılığıyla etkinlik kaydedin.
MarkShutdownInProgress(void)
void
mShutdownInProgress işaretini doğru değerine ayarlayın.
NotifyEventsDelivered(ImportanceType inImportance, event_id_t inLastDeliveredEventID, uint64_t inRecipientNodeID)
void
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, NotifyExternalEventsEvictedFunct inEvictedCallback, size_t inNumEvents, event_id_t *outLastEventID)
Harici olarak depolanan bir dizi etkinliği kaydetmek için kullanılan herkese açık API.
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, size_t inNumEvents, event_id_t *outLastEventID)
Harici olarak depolanan bir dizi etkinliği kaydetmek için kullanılan herkese açık API.
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, size_t inNumEvents, event_id_t *outLastEventID)
Harici olarak depolanan bir dizi etkinliği kaydetmek için kullanılan herkese açık API.
ScheduleFlushIfNeeded(bool inFlushRequested)
Bir günlük boşaltma görevi planlayın.
SerializeEvents(TLVWriter & writer)
Tüm önem türlerindeki Weave etkinliklerini serileştirin.
SetBDXUploader(LogBDXUpload *inUploader)
void
SetExchangeManager(nl::Weave::WeaveExchangeManager *inMgr)
Bu günlük kaydı alt sistemiyle kullanılacak WeaveExchangeManager'ı ayarlayın.
SetLoggingEndpoint(event_id_t *inEventEndpoints, size_t inNumImportanceLevels, size_t & outLoggingPosition)
SkipEvent(EventLoadOutContext *aContext)
void
Tahsis edilen etkinlik kimliğine karşılık gelen etkinlik yazma adımını atlamak için yardımcı işlev.
ThrottleLogger(void)
void
ThrottleLogger, etkili günlük kaydı düzeyini Üretim seviyesine yükseltir.
UnregisterEventCallbackForImportance(ImportanceType inImportance, event_id_t inEventID)
void
Harici olarak depolanan bir etkinlik grubunun kaydını iptal etmek için kullanılan herkese açık API.
UnthrottleLogger(void)
void
UnthrottleLogger, etkili günlük kaydı düzeyini yapılandırılmış günlük kaydı düzeyine geri yükler.

Herkese açık statik işlevler

CreateLoggingManagement(nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources)
void
LoggingManagement nesnesini oluşturun ve sağlanan kaynaklarla günlük kaydı yönetimi alt sistemini başlatın.
DestroyLoggingManagement(void)
void
Kapatma işlemi sırasında yapmamız gereken işlemleri yapın.
GetInstance(void)

Herkese açık işlevler

BlitEvent

WEAVE_ERROR BlitEvent(
  EventLoadOutContext *aContext,
  const EventSchema & inSchema,
  EventWriterFunct inEventWriter,
  void *inAppData,
  const EventOptions *inOptions
)

Etkinlik başlığını ve verilerini etkinlik günlük kaydı protokolüne göre yazmak için yardımcı işlev.

Ayrıntılar
Parametreler
[in,out] aContext
EventLoadOutContext, arabellek için durum bilgili bilgilerle başlatıldı. Durum, bu bağlam kullanılarak BlitEvent tarafından güncellenir ve korunur.
[in] inSchema
Bu etkinliğin önemini, profil kimliğini ve yapı türünü tanımlayan şema.
[in] inEventWriter
Etkinlik verilerini serileştirmek için çağrılacak geri çağırma.
[in] inAppData
Geri çağırma için uygulama bağlamı.
[in] inOptions
Bu etkinlikle ilgili zaman damgasını ve diğer etiketleri açıklayan EventOptions.

CancelShutdownInProgress

void CancelShutdownInProgress(
  void
)

mShutdownInProgress işaretini false (yanlış) olarak ayarlayın.

CheckShouldRunWDM

bool CheckShouldRunWDM(
  void
)

Etkinliklerin, yükleme için planlanmamış etkinlik arabelleklerindeki bayt sayısına göre yüklenip yüklenmeyeceğine karar verin.

İşlevin davranışı, WEAVE_CONFIG_EVENT_LOGGING_BYTE_THRESHOLD sabiti ile kontrol edilir. Sistem, bir WDM Bildirimi'nin son gönderilmesinden bu yana bu sayıda bayttan daha fazla yazdıysa işlev, NotificationEngine'nu tetikleme zamanının geldiğini belirtir.

Ayrıntılar
Değerleri Döndür
true
Etkinliklerin yüklenmesi gerekiyor
false
Aksi halde

FetchEventsSince

WEAVE_ERROR FetchEventsSince(
  nl::Weave::TLV::TLVWriter & ioWriter,
  ImportanceType inImportance,
  event_id_t & ioEventID
)

Belirtilen etkinlik kimliğinden sonra belirtilen önem düzeyine sahip etkinlikleri almaya yarayan işlev.

Bir nl::Weave::TLV::TLVWriter, önem türü ve etkinlik kimliği verildiğinde işlev, belirtilen etkinlikten bu yana belirtilen önem düzeyine sahip etkinlikleri getirir. İşlev, nl::Weave::TLV::TLVWriter veya günlükteki alan tükenene kadar etkinlikleri getirmeye devam edecektir. İşlev, etkinlik sınırına yazma işlemini sonlandırır.

Ayrıntılar
Parametreler
[in] ioWriter
Etkinlik depolama için kullanılacak yazar
[in] inImportance
Getirilecek etkinliklerin önemi
[in,out] ioEventID
Girişte, getirdiğimiz etkinlikten hemen önceki etkinliğin kimliği. Tamamlandığında, getirilen son etkinliğin kimliği.
Değerleri Döndür
WEAVE_END_OF_TLV
İşlev, belirtilen önem düzeyinde kullanılabilir günlük girişlerinin sonuna ulaştı
WEAVE_ERROR_NO_MEMORY
İşlevin ioWriter'daki alanı kalmadığı için günlükte daha fazla etkinlik kullanılabilir.
WEAVE_ERROR_BUFFER_TOO_SMALL
İşlevin ioWriter'daki alanı kalmadığı için günlükte daha fazla etkinlik kullanılabilir.

GetBytesWritten

uint32_t GetBytesWritten(
  void
) const 

Örneklenmesinden itibaren bu günlüğe yazılan (tüm etkinlik önemlerinde) baytların toplam sayısını alın.

Ayrıntılar
İadeler
Günlüğe yazılan bayt sayısı.

GetEventReader

WEAVE_ERROR GetEventReader(
  nl::Weave::TLV::TLVReader & ioReader,
  ImportanceType inImportance
)

Bellek içi günlük arabelleklerini incelemek için faydalı bir yardımcı yöntem.

Ayrıntılar
Parametreler
[in,out] ioReader
Olay günlüğündeki yedekleme depolama alanıyla başlatılacak okuyucuya referans
[in] inImportance
Okuyucu için başlangıç önemi. Bu durumda başlangıçtaki önemin biraz zıt anlamlı olduğunu unutmayın: Daha önemli etkinlikler, ayrılmış tamponlarına ek olarak daha az önemli olan tamponları paylaşır. Sonuç olarak, hata ayıklama önem derecesi aktarıldığında okuyucu en az veriyi aktarır.
İadeler
Koşulsuz olarak WEAVE_NO_ERROR.

GetFirstEventID

event_id_t GetFirstEventID(
  ImportanceType inImportance
)

Belirli bir önem düzeyi için halihazırda depolanan ilk etkinlik kimliğini getirin.

Ayrıntılar
Parametreler
inImportance
Önem düzeyi
İadeler
event_id_t Söz konusu etkinliğin önemine göre halihazırda depolanan ilk etkinlik kimliği

GetLastEventID

event_id_t GetLastEventID(
  ImportanceType inImportance
)

Belirli bir önem düzeyi için en son talep edilen kimliği getirin.

Ayrıntılar
Parametreler
inImportance
Önem düzeyi
İadeler
Bu etkinliğin önem derecesi için en son etkinlik kimliği (event_id_t)

IsShutdownInProgress

bool IsShutdownInProgress(
  void
)

mShutdownInProgress işaretini kontrol edin.

IsValid

bool IsValid(
  void
)

IsValid, LoggingManagement örneğinin geçerli olup olmadığını döndürür.

Ayrıntılar
Değerleri Döndür
true
Örnek geçerli (uygun yedekleme deposuyla başlatıldı)
false
Aksi halde

LoadEvents

WEAVE_ERROR LoadEvents(
  TLVReader & reader
)

Daha önce devam eden Weave etkinliğini yükleyin.

LogEvent

event_id_t LogEvent(
  const EventSchema & inSchema,
  EventWriterFunct inEventWriter,
  void *inAppData,
  const EventOptions *inOptions
)

Seçenekleri de içeren bir geri arama aracılığıyla etkinlik kaydedin.

İşlev, EventWriterFunct ve uygulamaya özel appData bağlamı olarak temsil edilen bir etkinliği günlüğe kaydeder. Kullanıcı kodunun etkinlik verilerini doğrudan etkinlik günlüğüne yayınlayabilmesi için işlev, etkinlik meta verilerini yazar ve inEventWriter öğesini bir nl::Weave::TLV::TLVWriter referansı ve inAppData bağlamıyla çağırır. Bu etkinlik günlük kaydı biçimi, etkinlik verileri doğrudan hedef arabelleğe alındığından bellek tüketimini en aza indirir. Etkinlik verilerinin, inProfileID ve inEventType tarafından tanımlanan şema içinde yorumlanacak içerik etiketleri İÇERMELİDİR. İlk öğenin etiketi yoksayılır; etkinlik günlük kaydı sistemi bunu eventData etiketiyle değiştirir.

Şema önem derecesi, LoggingConfiguration'da belirtilen günlük kaydı eşiğini aşarsa etkinlik günlüğe kaydedilir. Etkinliğin önemi, geçerli eşiği karşılamıyorsa etkinlik çıkarılır ve işlev, sonuç olarak elde edilen etkinlik kimliği olarak bir 0 döndürür.

Çağrının bu varyantı, arayanın herhangi bir EventOptions kombinasyonunu ayarlamasına izin verir:

  • 0 varsayılan olarak çağrı noktasında geçerli saate ayarlandığında zaman damgası
  • "kök" etkinlik kaynağının bölümü (etkinlik kaynağı ve özellik kimliği); NULL ise varsayılan olarak mevcut cihaz olur. Etkinlik, aramayı yapan cihazla alakalı olarak işaretlenirse
  • Etkinlik kimliklerini gruplandırmak için ilgili bir etkinlik kimliği; İlgili etkinlik kimliği 0 olduğunda, etkinlik başka bir etkinlikle alakalı değil olarak işaretlenir.
  • aciliyet; varsayılan olarak acil değildir.

Ayrıntılar
Parametreler
[in] inSchema
Bu etkinliğin önemini, profil kimliğini ve yapı türünü tanımlayan şema.
[in] inEventWriter
Etkinlik verilerini gerçekten serileştirmek için çağrılacak geri çağırma
[in] inAppData
Geri çağırma için uygulama bağlamı.
[in] inOptions
Etkinlik meta verileriyle ilgili seçenekler. NULL olabilir.
İadeler
event_id_t Etkinlik günlüğe yazıldıysa etkinlik kimliği, aksi takdirde 0 değerini alır.

LoggingManagement

 LoggingManagement(
  nl::Weave::WeaveExchangeManager *inMgr,
  size_t inNumBuffers,
  const LogStorageResources *const inLogStorageResources
)

LoggingManagement oluşturucusu.

LoggingManagement'ı bir LogStorageResources dizisiyle başlatın. Dizi, her geçerli önem düzeyi için bir kaynak sağlamalıdır. Dizideki öğeler, sayısal önem düzeyine göre artan (ve önem derecesi azalan) değerinde olmalıdır; dizideki ilk öğe en kritik olaylar için ayrılan kaynaklara karşılık gelirken son öğe en az önemli etkinliklere karşılık gelir.

Ayrıntılar
Parametreler
[in] inMgr
Bu günlük kaydı alt sistemiyle kullanılacak WeaveExchangeManager
[in] inNumBuffers
inLogStorageResources dizisindeki öğe sayısı
[in] inLogStorageResources
Her önem düzeyi için bir LogStorageResources dizisi.

LoggingManagement

 LoggingManagement(
  void
)

LoggingManagement varsayılan oluşturucusu.

Öncelikle derleyiciyi memnun etmek için sağlanır.

Ayrıntılar
İadeler

MarkShutdownInProgress

void MarkShutdownInProgress(
  void
)

mShutdownInProgress işaretini doğru değerine ayarlayın.

NotifyEventsDelivered

void NotifyEventsDelivered(
  ImportanceType inImportance,
  event_id_t inLastDeliveredEventID,
  uint64_t inRecipientNodeID
)

RegisterEventCallbackForImportance

WEAVE_ERROR RegisterEventCallbackForImportance(
  ImportanceType inImportance,
  FetchExternalEventsFunct inFetchCallback,
  NotifyExternalEventsDeliveredFunct inNotifyCallback,
  NotifyExternalEventsEvictedFunct inEvictedCallback,
  size_t inNumEvents,
  event_id_t *outLastEventID
)

Harici olarak depolanan bir dizi etkinliği kaydetmek için kullanılan herkese açık API.

FetchExternalEventsFunct biçiminde bir geri çağırma kaydedin. Bu API, platformun kayıt sırasındaki etkinliklerin sayısını bilmesini gerektirir. Dahili işlemler için de bu sayının sabit olması gerekir. Bu API, platformun belirli etkinlik kimliklerini kaydetmesine izin vermediği için platformun etkinlikleri (en azından benzersiz etkinlik kimlikleriyle) depolamaya devam etmesini engeller.

Bir abone, kaydı iptal edilene kadar aralıktaki etkinlik kimliklerini istenilen sayıda getirmeye çalıştığında geri çağırma yapılır.

Etkinlikler bir aboneye teslim edildiğinde ve harici etkinlik nesnesi çıkarıldığında harici sağlayıcı bildirim almak istediğinde işlevin bu varyantı kullanılmalıdır.

Etkinlikler teslim edildiğinde, harici sağlayıcıya bu konuyla ilgili olarak, alıcının düğüm kimliği ve alıcıya teslim edilen son etkinliğin kimliği bildirilir. Harici sağlayıcıya aynı etkinlik kimliği için birkaç kez bildirim gönderilebileceğini unutmayın. İşleyici üzerinde belirli bir kısıtlama yoktur. Özellikle de işleyici, harici etkinlik kimliklerinin kaydını iptal edebilir.

Harici etkinlik nesnesi günlük arabelleklerinden çıkarılırsa harici etkinlik nesnesinin bir kopyasıyla birlikte harici sağlayıcıya bildirim gönderilir.

Hata durumunda ExternalEvents struct'ın işaretçisi NULL olacaktır. Aksi takdirde, geri çağırmaya atanan başlangıç ve bitiş etkinlik kimlikleriyle doldurulur. Bu işaretçi, etkinlik grubunun kaydını iptal etmek için kullanılmalıdır.

Geri çağırmanın neleri uygulaması gerektiğiyle ilgili ayrıntılar için FetchExternalEventsFunct dokümanlarına bakın.

Ayrıntılar
Parametreler
[in] inImportance
Önem düzeyi
[in] inFetchCallback
Harici etkinlikleri getirmek için kayıt için geri çağırma
[in] inNotifyCallback
Teslimat bildirimi için kayıt için geri arama bildirimi
[in] inEvictedCallback
Tahliye bildirimi için kayıt için geri arama
[in] inNumEvents
Bu kümedeki etkinlik sayısı
[out] outLastEventID
İşaretçiyi bir event_id_t; harici etkinliklerin başarıyla kaydedilmesinden sonra, işlev harici etkinlik bloğunun son etkinlik kimliğine karşılık gelen etkinlik kimliğini saklar. Parametre NULL olabilir.
Değerleri Döndür
WEAVE_ERROR_NO_MEMORY
Başka geri çağırma alanı yoksa.
WEAVE_ERROR_INVALID_ARGUMENT
Boş işlev geri çağırması veya kaydedilecek etkinlik yok.
WEAVE_NO_ERROR
Başarıya merhaba.

RegisterEventCallbackForImportance

WEAVE_ERROR RegisterEventCallbackForImportance(
  ImportanceType inImportance,
  FetchExternalEventsFunct inFetchCallback,
  NotifyExternalEventsDeliveredFunct inNotifyCallback,
  size_t inNumEvents,
  event_id_t *outLastEventID
)

Harici olarak depolanan bir dizi etkinliği kaydetmek için kullanılan herkese açık API.

FetchExternalEventsFunct biçiminde bir geri çağırma kaydedin. Bu API, platformun kayıt sırasındaki etkinliklerin sayısını bilmesini gerektirir. Dahili işlemler için de bu sayının sabit olması gerekir. Bu API, platformun belirli etkinlik kimliklerini kaydetmesine izin vermediği için platformun etkinlikleri (en azından benzersiz etkinlik kimlikleriyle) depolamaya devam etmesini engeller.

Bir abone, kaydı iptal edilene kadar aralıktaki etkinlik kimliklerini istenilen sayıda getirmeye çalıştığında geri çağırma yapılır.

Etkinlikler bir aboneye teslim edildiğinde harici sağlayıcı bildirim almak istediğinde işlevin bu varyantı kullanılmalıdır. Harici etkinlik nesnesi çıkarıldığında kullanılmaz. Etkinlikler teslim edildiğinde, harici sağlayıcıya bu konuyla ilgili olarak, alıcının düğüm kimliği ve alıcıya teslim edilen son etkinliğin kimliği bildirilir. Harici sağlayıcıya aynı etkinlik kimliği için birkaç kez bildirim gönderilebileceğini unutmayın. İşleyici üzerinde belirli bir kısıtlama yoktur. Özellikle de işleyici, harici etkinlik kimliklerinin kaydını iptal edebilir.

Hata durumunda ExternalEvents struct'ın işaretçisi NULL olacaktır. Aksi takdirde, geri çağırmaya atanan başlangıç ve bitiş etkinlik kimlikleriyle doldurulur. Bu işaretçi, etkinlik grubunun kaydını iptal etmek için kullanılmalıdır.

Geri çağırmanın neleri uygulaması gerektiğiyle ilgili ayrıntılar için FetchExternalEventsFunct dokümanlarına bakın.

Ayrıntılar
Parametreler
[in] inImportance
Önem düzeyi
[in] inCallback
Harici etkinlikleri getirmek için kayıt için geri çağırma
[in] inNotifyCallback
Teslimat bildirimi için kayıt için geri arama bildirimi
[in] inNumEvents
Bu kümedeki etkinlik sayısı
[out] outLastEventID
İşaretçiyi bir event_id_t; harici etkinliklerin başarıyla kaydedilmesinden sonra, işlev harici etkinlik bloğunun son etkinlik kimliğine karşılık gelen etkinlik kimliğini saklar. Parametre NULL olabilir.
Değerleri Döndür
WEAVE_ERROR_NO_MEMORY
Başka geri çağırma alanı yoksa.
WEAVE_ERROR_INVALID_ARGUMENT
Boş işlev geri çağırması veya kaydedilecek etkinlik yok.
WEAVE_NO_ERROR
Başarıya merhaba.

RegisterEventCallbackForImportance

WEAVE_ERROR RegisterEventCallbackForImportance(
  ImportanceType inImportance,
  FetchExternalEventsFunct inFetchCallback,
  size_t inNumEvents,
  event_id_t *outLastEventID
)

Harici olarak depolanan bir dizi etkinliği kaydetmek için kullanılan herkese açık API.

FetchExternalEventsFunct biçiminde bir geri çağırma kaydedin. Bu API, platformun kayıt sırasındaki etkinliklerin sayısını bilmesini gerektirir. Dahili işlemler için de bu sayının sabit olması gerekir. Bu API, platformun belirli etkinlik kimliklerini kaydetmesine izin vermediği için platformun etkinlikleri (en azından benzersiz etkinlik kimlikleriyle) depolamaya devam etmesini engeller.

Bir abone, kaydı iptal edilene kadar aralıktaki etkinlik kimliklerini istenilen sayıda getirmeye çalıştığında geri çağırma yapılır.

Harici sağlayıcı, harici etkinlikler teslim edildiğinde veya harici etkinlik nesnesi çıkarıldığında bildirim istediğinde işlevin bu varyantı kullanılmalıdır.

Hata durumunda ExternalEvents struct'ın işaretçisi NULL olacaktır. Aksi takdirde, geri çağırmaya atanan başlangıç ve bitiş etkinlik kimlikleriyle doldurulur. Bu işaretçi, etkinlik grubunun kaydını iptal etmek için kullanılmalıdır.

Geri çağırmanın neleri uygulaması gerektiğiyle ilgili ayrıntılar için FetchExternalEventsFunct dokümanlarına bakın.

Ayrıntılar
Parametreler
[in] inImportance
Önem düzeyi
[in] inCallback
Harici etkinlikleri getirmek için kayıt için geri çağırma
[in] inNumEvents
Bu kümedeki etkinlik sayısı
[out] outLastEventID
İşaretçiyi bir event_id_t; harici etkinliklerin başarıyla kaydedilmesinden sonra, işlev harici etkinlik bloğunun son etkinlik kimliğine karşılık gelen etkinlik kimliğini saklar. Parametre NULL olabilir.
Değerleri Döndür
WEAVE_ERROR_NO_MEMORY
Başka geri çağırma alanı yoksa.
WEAVE_ERROR_INVALID_ARGUMENT
Boş işlev geri çağırması veya kaydedilecek etkinlik yok.
WEAVE_NO_ERROR
Başarıya merhaba.

ScheduleFlushIfNeeded

WEAVE_ERROR ScheduleFlushIfNeeded(
  bool inFlushRequested
)

Bir günlük boşaltma görevi planlayın.

İşlev, bir görev boşaltma işlemi planlayıp planlamayacağına karar verir. Böyle bir durumda LoggingFlushHandler öğesini Weave iş parçacığında eşzamansız olarak çalışacak şekilde planlar.

Temizlik işleminin programlanması üç faktöre bağlıdır:

arabelleği boşaltmak için açık bir istek

Etkinlik arabelleğinin durumu ve etkinlik tüketicileriyle henüz senkronize edilmemiş veri miktarı

zaten beklemede olan bir temizleme isteği etkinliği olup olmadığını kontrol edin.

Temizlik programlamaya yönelik açık istek, bir giriş parametresi aracılığıyla iletilir.

Otomatik boşaltma, genellikle etkinlik tamponları yeni bir boşaltma başlatmayı gerektirecek kadar veri içerdiğinde programlanır. Akım stratejisine bağlı olarak, boşaltmalar arasındaki minimum ve maksimum süre gibi ek tetikleyiciler de dikkate alınabilir.

Olay günlüğünün bekleme durumu mUploadRequested değişkeniyle gösterilir. Bu işlev birden fazla iş parçacığı tarafından çağrılabileceğinden, bildirim gönderilmeden önce gereksiz bir LoggingFlushHandler programlamasını önlemek için mUploadRequested otomatik olarak okunup ayarlanmalıdır.

Ayrıntılar
Parametreler
inRequestFlush
Temizliğin, dahili arabellek yönetim politikasından bağımsız olarak planlanıp planlanmayacağını gösteren boole değeridir.
Değerleri Döndür
WEAVE_ERROR_INCORRECT_STATE
LoggingManagement modülü tam olarak başlatılmadı.
WEAVE_NO_ERROR
Başarıya merhaba.

SerializeEvents

WEAVE_ERROR SerializeEvents(
  TLVWriter & writer
)

Tüm önem türlerindeki Weave etkinliklerini serileştirin.

WeaveCircularTLVBuffer'daki etkinlikleri ve ilişkili durumları sağlanan arabellekte serileştirir.

Bu yöntem, uyku sırasında RAM depolamayan cihazlar tarafından kullanılmak üzere tasarlanmıştır. Böylece uykuya geçmeden önce etkinlikleri sürdürebilir ve böylece etkinliklerin kaybolmasını önleyebilirsiniz

SetBDXUploader

void SetBDXUploader(
  LogBDXUpload *inUploader
)

SetExchangeManager

WEAVE_ERROR SetExchangeManager(
  nl::Weave::WeaveExchangeManager *inMgr
)

Bu günlük kaydı alt sistemiyle kullanılacak WeaveExchangeManager'ı ayarlayın.

Bazı platformlarda bunun yukarıdaki CreateLoggingManagement() işlevinden ayrı olarak yapılması gerekebilir.

Ayrıntılar
Parametreler
[in] inMgr
Bu günlük kaydı alt sistemiyle kullanılacak WeaveExchangeManager

SetLoggingEndpoint

WEAVE_ERROR SetLoggingEndpoint(
  event_id_t *inEventEndpoints,
  size_t inNumImportanceLevels,
  size_t & outLoggingPosition
)

SkipEvent

void SkipEvent(
  EventLoadOutContext *aContext
)

Tahsis edilen etkinlik kimliğine karşılık gelen etkinlik yazma adımını atlamak için yardımcı işlev.

Ayrıntılar
Parametreler
[in,out] aContext
EventLoadOutContext, arabellek için durum bilgili bilgilerle başlatıldı. Durum, bu bağlam kullanılarak BlitEvent tarafından güncellenir ve korunur.

ThrottleLogger

void ThrottleLogger(
  void
)

ThrottleLogger, etkili günlük kaydı düzeyini Üretim seviyesine yükseltir.

UnregisterEventCallbackForImportance

void UnregisterEventCallbackForImportance(
  ImportanceType inImportance,
  event_id_t inEventID
)

Harici olarak depolanan bir etkinlik grubunun kaydını iptal etmek için kullanılan herkese açık API.

Geri çağırma kaydının iptal edilmesi, LoggingManagement'ın bir etkinlik grubu için geri çağırmayı çağırmasını engeller. LoggingManagement, bu etkinlik kimliklerini artık abonelere göndermeyecek.

Amaç, bir işlevin aynı anda bir dizi etkinlik sunmasıdır. Aynı işlev kullanılarak yeni bir etkinlik grubunun kaydedilmesi gerekiyorsa geri çağırmanın önce silinip ardından yeniden kaydedilmesi gerekir. Bu, orijinal etkinlik grubunun artık getirilmeyeceği anlamına gelir.

Bu işlev koşulsuz olarak başarılı olur. Geri çağırma hiç kaydedilmemişse veya daha önce kaydı iptal edilmişse geri çağırma herhangi bir işlem değildir.

Ayrıntılar
Parametreler
[in] inImportance
Önem düzeyi
[in] inEventID
Kaydı iptal edilecek harici etkinlik bloğundaki herhangi bir etkinliğe karşılık gelen etkinlik kimliği.

UnthrottleLogger

void UnthrottleLogger(
  void
)

UnthrottleLogger, etkili günlük kaydı düzeyini yapılandırılmış günlük kaydı düzeyine geri yükler.

Herkese açık statik işlevler

CreateLoggingManagement

void CreateLoggingManagement(
  nl::Weave::WeaveExchangeManager *inMgr,
  size_t inNumBuffers,
  const LogStorageResources *const inLogStorageResources
)

LoggingManagement nesnesini oluşturun ve sağlanan kaynaklarla günlük kaydı yönetimi alt sistemini başlatın.

LoggingManagement'ı bir LogStorageResources dizisiyle başlatın. Dizi, her geçerli önem düzeyi için bir kaynak sağlamalıdır. Dizideki öğeler, sayısal önem düzeyine göre artan (ve önem derecesi azalan) değerinde olmalıdır; dizideki ilk öğe en kritik olaylar için ayrılan kaynaklara karşılık gelirken son öğe en az önemli etkinliklere karşılık gelir.

Ayrıntılar
Parametreler
[in] inMgr
Bu günlük kaydı alt sistemiyle kullanılacak WeaveExchangeManager
[in] inNumBuffers
inLogStorageResources dizisindeki öğe sayısı
[in] inLogStorageResources
Her önem düzeyi için bir LogStorageResources dizisi.

DestroyLoggingManagement

void DestroyLoggingManagement(
  void
)

Kapatma işlemi sırasında yapmamız gereken işlemleri yapın.

GetInstance

LoggingManagement & GetInstance(
  void
)