nl::Weave::Profiller:DataManagement_Current::LoggingManagement

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

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

Özet

İnşaat Ustaları ve Yıkıcılar

LoggingManagement(nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources)
LoggingManagement oluşturucu.
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)
Olay günlüğü protokolüne göre etkinlik başlığı ve verilerini yazmak için kullanılan yardımcı işlev.
CancelShutdownInProgress(void)
void
mShutdownInprogress flag'ini false (yanlış) olarak ayarlayın.
CheckShouldRunWDM(void)
bool
Etkinliklerin, yükleme için planlanmamış etkinlik arabelleklerindeki bayt sayısına göre yüklenip kaldırılmayacağına 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 alma işlevi.
GetBytesWritten(void) const
uint32_t
Bu günlük örneklendirmesinden sonra bu günlüke yazılan toplam bayt sayısını (tüm etkinlik önemleri genelinde) alın.
GetEventReader(nl::Weave::TLV::TLVReader & ioReader, ImportanceType inImportance)
Bellek içi günlük arabelleklerini incelemek için yararlı olan 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 seviyesi için en son oluşturulan 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)
Önceden devam eden Weave etkinliğini yükle.
LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
Seçenekler kullanarak geri çağırma yoluyla bir etkinlik kaydedin.
MarkShutdownInProgress(void)
void
mShutdownInprogress flag'ini true olarak 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 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 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 herkese açık API.
ScheduleFlushIfNeeded(bool inFlushRequested)
Günlükten çıkarma 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
Ayrılmış etkinlik kimliğine karşılık gelen bir etkinliği yazmayı atlamak için yardımcı işlev.
ThrottleLogger(void)
void
ThrottleLogger, etkili günlük kaydı düzeyini Üretim düzeyine yükseltir.
UnregisterEventCallbackForImportance(ImportanceType inImportance, event_id_t inEventID)
void
Harici olarak depolanan bir dizi etkinliğin kaydını iptal etmek için kullanılan herkese açık API.
UnthrottleLogger(void)
void
UnthrottleLogger, etkin 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 sırasında ihtiyacımız olan tüm işlemleri yapın.
GetInstance(void)

Herkese açık işlevler

Işıklı Etkinlik

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

Olay günlüğü protokolüne göre etkinlik başlığı ve verilerini yazmak için kullanılan yardımcı işlev.

Ayrıntılar
Parametreler
[in,out] aContext
Tampon için durum bilgili olarak başlatılan EventLoadOutContext. 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ğırmak üzere geri çağırma.
[in] inAppData
Geri çağırma için uygulama bağlamı.
[in] inOptions
Bu etkinlikle alakalı zaman damgasını ve diğer etiketleri açıklayan EventOptions.

İptal İşlemini İptal Et

void CancelShutdownInProgress(
  void
)

mShutdownInprogress flag'ini false (yanlış) olarak ayarlayın.

CheckRunRunWDM

bool CheckShouldRunWDM(
  void
)

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

İşlevin davranışı WEAVE_CONFIG_EVENT_LOGGING_BYTE_XXXXX sabit değeri ile kontrol edilir. Sistem, bir WDM Bildirimi en son gönderildiğinden beri bu baytların üzerinde yazdıysa işlev, NotificationEngine öğesini tetiklemenin zamanı geldiğini gösterir.

Ayrıntılar
Döndürülen Değerler
true
Etkinlikler kaldırılmalıdır
false
Aksi halde

FetchEtkinlikler

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 alma işlevi.

nl::Weave::TLV::TLVWriter, bir önem türü ve bir etkinlik kimliği göz önünde bulundurulduğunda işlev, belirtilen etkinlikten beri belirlenmiş önem taşıyan etkinlikleri getirir. İşlev, nl::Weave::TLV::TLVWriter veya günlükte yer dolana kadar etkinlikleri almaya devam eder. İşlev, etkinlik sınırı üzerindeki etkinlik yazma işlemini sonlandırır.

Ayrıntılar
Parametreler
[in] ioWriter
Etkinlik depolama alanı için kullanılacak yazar
[in] inImportance
Getirilecek etkinliklerin önemi
[in,out] ioEventID
Girildiğinde, etkinliğin bize getirildiği andan hemen önce etkinliğin kimliği. Tamamlandığında, en son getirilen etkinliğin kimliği.
Döndürülen Değerler
WEAVE_END_OF_TLV
İşlev, belirtilen günlük düzeyinde kullanılabilir günlük girişlerinin sonuna ulaştı
WEAVE_ERROR_NO_MEMORY
İşlevde ioWriter'da yer kalmadı. Günlükte daha fazla etkinlik mevcut.
WEAVE_ERROR_BUFFER_TOO_SMALL
İşlevde ioWriter'da yer kalmadı. Günlükte daha fazla etkinlik mevcut.

GetBytesyazılı

uint32_t GetBytesWritten(
  void
) const 

Bu günlük örneklendirmesinden sonra bu günlüke yazılan toplam bayt sayısını (tüm etkinlik önemleri genelinde) 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 yararlı olan bir yardımcı yöntem.

Ayrıntılar
Parametreler
[in,out] ioReader
Olay günlüğünden destek depolama alanıyla başlatılacak okuyucuya referans
[in] inImportance
Okuyucu için başlangıçtaki önem. Bu durumda, başlangıçtaki önemin bir miktar sezgisel olduğunu unutmayın: Daha önemli etkinlikler, arabellekleri daha özel önem taşıyan arabelleklere ek olarak daha az önemli etkinliklerle paylaşır. Sonuç olarak, Hata Ayıklama işlevi önemli ölçüde iletildiğinde okuyucu en az veriyi iletir.
İadeler
WEAVE_NO_ERROR Koşulsuz olarak.

GetFirstEventID değeri

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 O etkinliğin önemi için şu anda depolanan ilk etkinlik kimliği

GetLastEventID Kimliği

event_id_t GetLastEventID(
  ImportanceType inImportance
)

Belirli bir önem seviyesi için en son oluşturulan kimliği getirin.

Ayrıntılar
Parametreler
inImportance
Önem düzeyi
İadeler
event_id_t ile en son oluşturulan etkinlik kimliği

Kapanış Devam Ediyor

bool IsShutdownInProgress(
  void
)

mShutdownInprogress işaretini kontrol edin.

Geçerli

bool IsValid(
  void
)

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

Ayrıntılar
Döndürülen Değerler
true
Örnek geçerli (uygun yedekleme mağazası ile başlatılır)
false
Aksi halde

Yük Etkinlikleri

WEAVE_ERROR LoadEvents(
  TLVReader & reader
)

Önceden devam eden Weave etkinliğini yükle.

Günlük Etkinliği

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

Seçenekler kullanarak geri çağırma yoluyla bir etkinlik kaydedin.

İşlev, EventWriterFunct ve uygulamaya özgü bir appData bağlamı olarak temsil edilen bir etkinliği günlüğe kaydeder. İşlev, etkinlik meta verilerini yazar ve kullanıcı kodunun etkinlik verilerini doğrudan etkinlik günlüğüne yayabilmesi için nl::Weave::TLV::TLVWriter referansı ve inAppData bağlamıyla birlikte inEventWriter öğesini çağırır. Etkinlik verileri doğrudan hedef arabelleğe serileştirildiği için bu etkinlik günlük kaydı biçimi, bellek tüketimini en aza indirir. Etkinlik verilerinin, inProfileID ve inEventType tarafından tanımlanan şema içinde yorumlanacak bağlam etiketleri içermesi ZORUNLUDUR. İlk öğenin etiketi yok sayılır; olay günlük kaydı sistemi bunu eventData etiketiyle değiştirir.

Şema önemi, LoggingConfiguration'da belirtilen günlük kaydı eşiğini aşarsa etkinlik günlüğe kaydedilir. Etkinliğin önemi mevcut eşiği karşılamıyorsa atlanır ve işlev etkinlik sonucu kimliği olarak bir 0 döndürür.

Çağrının bu varyantı, arayanın herhangi bir EventOptions kombinasyonunu belirlemesine olanak tanır:

  • zaman damgası (arama anında 0, varsayılan olarak ayarlandığında)
  • Etkinlik kaynağının "etkinlik" bölümü (etkinlik kaynağı ve özellik kimliği); NULL ise varsayılan olarak mevcut cihaza ayarlanır. Etkinlik, çağrıyı yapan cihazla ilgili olarak işaretlenir,
  • Etkinlik kimliklerini gruplamak için ilgili etkinlik kimliği; ilgili etkinlik kimliği 0 olduğunda, etkinlik başka bir etkinlikle ilgili olarak işaretlenmez,
  • aciliyet; varsayılan olarak acil değil.

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 serileştirmek için çağırmak üzere geri çağırma
[in] inAppData
Geri çağırma için uygulama bağlamı.
[in] inOptions
Etkinlik meta verileri seçenekleri. BOŞ olabilir.
İadeler
event_id_t Olay günlüğüne yazılmışsa etkinlik kimliği, aksi takdirde 0.

Günlük Yönetimi

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

LoggingManagement oluşturucu.

LoggingManagement öğesini bir LogStorageResources dizisiyle başlatın. Dizi, her geçerli önem düzeyi için bir kaynak sağlamalıdır. Dizideki öğeler önem açısından sayısal değeri artırmalıdır (ve önem derecesi düşüktü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.

Günlük Yönetimi

 LoggingManagement(
  void
)

LoggingManagement varsayılan oluşturucusu.

Birincil olarak derleyiciyi memnun etmek için sağlanmıştır.

Ayrıntılar
İadeler

MarkShutdown Devam Ediyor

void MarkShutdownInProgress(
  void
)

mShutdownInprogress flag'ini true olarak ayarlayın.

Bildirilen Etkinlikler

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

SaveEventCallbackForImportance

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 herkese açık API.

FetchExternalEtkinliklerFunct formunun geri çağırmasını kaydedin. Bu API, platformun kayıttaki etkinlik sayısını bilmesini gerektirir. Ayrıca, şirket içi çalışmalarda bu sayının sabit olması gerekir. Bu API, platformun belirli etkinlik kimliklerini kaydetmesine izin vermediğinden, platformun (en azından benzersiz etkinlik kimlikleriyle) etkinliklerin depolanmasını devam ettirmesini engeller.

Bir abone, kaydı iptal edilene kadar aralık içindeki etkinlik kimliklerini almaya çalıştığında geri çağırma yapılır.

İşlevin bu varyantı, harici sağlayıcı hem etkinlikler bir aboneye teslim edildiğinde hem de harici etkinlikler nesnesi çıkarıldığında bildirim almak istediğinde kullanılmalıdır.

Etkinlikler teslim edildiğinde harici sağlayıcı, alıcının düğüm kimliği ve bu alıcıya teslim edilen son etkinliğin kimliğiyle birlikte bilgilendirilir. Aynı etkinlik kimliği için harici sağlayıcıya birden fazla bildirim gönderilebileceğini unutmayın. İşleyiciye özgü kısıtlamalar bulunmaz. Özellikle işleyici, harici etkinlik kimliklerinin kaydını iptal edebilir.

Harici etkinlikler nesnesi günlük arabelleğinden çıkarılırsa harici sağlayıcı, harici etkinlikler nesnesinin bir kopyasıyla birlikte bilgilendirilir.

ExternalEvent yapısının işaretçisi hata olduğunda 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 nasıl uygulanması 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 getirmesi için kaydolmak üzere geri çağırma
[in] inNotifyCallback
Teslimat bildirimi için kaydolmak üzere geri arama
[in] inEvictedCallback
Tahliye bildirimine kaydolmak için geri arama
[in] inNumEvents
Bu gruptaki etkinlik sayısı
[out] outLastEventID
event_id_t işaretçisine; harici etkinliklerin başarıyla kaydedilmesinde işlev, harici etkinlik bloğunun son etkinlik kimliğine karşılık gelen etkinlik kimliğini depolar. Parametre NULL olabilir.
Döndürülen Değerler
WEAVE_ERROR_NO_MEMORY
Kullanılabilir geri çağırma alanı yoksa.
WEAVE_ERROR_INVALID_ARGUMENT
Null işlevi geri çağırması veya kaydedilecek etkinlik yok.
WEAVE_NO_ERROR
Başarılı.

SaveEventCallbackForImportance

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 herkese açık API.

FetchExternalEtkinliklerFunct formunun geri çağırmasını kaydedin. Bu API, platformun kayıttaki etkinlik sayısını bilmesini gerektirir. Ayrıca, şirket içi çalışmalarda bu sayının sabit olması gerekir. Bu API, platformun belirli etkinlik kimliklerini kaydetmesine izin vermediğinden, platformun (en azından benzersiz etkinlik kimlikleriyle) etkinliklerin depolanmasını devam ettirmesini engeller.

Bir abone, kaydı iptal edilene kadar aralık içindeki etkinlik kimliklerini almaya çalıştığında geri çağırma yapılır.

İşlevin bu varyantı, etkinlikler bir aboneye teslim edildiğinde harici sağlayıcı hakkında bildirim almak istediğinde kullanılmalıdır, harici etkinlikler nesnesi çıkarıldığında kullanılmamalıdır. Etkinlikler teslim edildiğinde harici sağlayıcı, alıcının düğüm kimliği ve bu alıcıya teslim edilen son etkinliğin kimliğiyle birlikte bilgilendirilir. Aynı etkinlik kimliği için harici sağlayıcıya birden fazla bildirim gönderilebileceğini unutmayın. İşleyiciye özgü kısıtlamalar bulunmaz. Özellikle işleyici, harici etkinlik kimliklerinin kaydını iptal edebilir.

ExternalEvent yapısının işaretçisi hata olduğunda 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 nasıl uygulanması 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 getirmesi için kaydolmak üzere geri çağırma
[in] inNotifyCallback
Teslimat bildirimi için kaydolmak üzere geri arama
[in] inNumEvents
Bu gruptaki etkinlik sayısı
[out] outLastEventID
event_id_t işaretçisine; harici etkinliklerin başarıyla kaydedilmesinde işlev, harici etkinlik bloğunun son etkinlik kimliğine karşılık gelen etkinlik kimliğini depolar. Parametre NULL olabilir.
Döndürülen Değerler
WEAVE_ERROR_NO_MEMORY
Kullanılabilir geri çağırma alanı yoksa.
WEAVE_ERROR_INVALID_ARGUMENT
Null işlevi geri çağırması veya kaydedilecek etkinlik yok.
WEAVE_NO_ERROR
Başarılı.

SaveEventCallbackForImportance

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

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

FetchExternalEtkinliklerFunct formunun geri çağırmasını kaydedin. Bu API, platformun kayıttaki etkinlik sayısını bilmesini gerektirir. Ayrıca, şirket içi çalışmalarda bu sayının sabit olması gerekir. Bu API, platformun belirli etkinlik kimliklerini kaydetmesine izin vermediğinden, platformun (en azından benzersiz etkinlik kimlikleriyle) etkinliklerin depolanmasını devam ettirmesini engeller.

Bir abone, kaydı iptal edilene kadar aralık içindeki etkinlik kimliklerini almaya çalıştığında geri çağırma yapılır.

İşlevin bu varyantı, harici sağlayıcı bildirim göndermek istediğinde veya harici etkinlikler teslim edilmediğinde ya da harici etkinlikler nesnesi çıkarıldığında kullanılmalıdır.

ExternalEvent yapısının işaretçisi hata olduğunda 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 nasıl uygulanması 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 getirmesi için kaydolmak üzere geri çağırma
[in] inNumEvents
Bu gruptaki etkinlik sayısı
[out] outLastEventID
event_id_t işaretçisine; harici etkinliklerin başarıyla kaydedilmesinde işlev, harici etkinlik bloğunun son etkinlik kimliğine karşılık gelen etkinlik kimliğini depolar. Parametre NULL olabilir.
Döndürülen Değerler
WEAVE_ERROR_NO_MEMORY
Kullanılabilir geri çağırma alanı yoksa.
WEAVE_ERROR_INVALID_ARGUMENT
Null işlevi geri çağırması veya kaydedilecek etkinlik yok.
WEAVE_NO_ERROR
Başarılı.

ScheduleFlushIf Gerekiyor

WEAVE_ERROR ScheduleFlushIfNeeded(
  bool inFlushRequested
)

Günlükten çıkarma görevi planlayın.

İşlev, bir görevin yük kaldırma işleminin programlanıp planlanmayacağına karar verir ve bu durumda LoggingFlushHandler öğesini Weave ileti dizisinde eşzamansız olarak çalışacak şekilde planlar.

Temizlik planlama kararı üç faktöre bağlıdır:

arabelleği temizlemek için açık bir istek

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

Zaten beklemede olan bir istek temizleme etkinliği olup olmadığı.

Bir boşaltma zamanlamasının açık isteği bir giriş parametresi aracılığıyla iletilir.

Etkinlik tamponları genellikle etkinlik arabelleği yeni bir yükleme başlatmaya yetecek kadar veri içerdiğinde planlanır. Boşaltma stratejisine bağlı olarak, yüklemeler arasında minimum ve maksimum süre gibi ek tetikleyiciler dikkate alınabilir.

Olay günlüğünün beklemede durumu mUploadRequested değişkeniyle gösterilir. Bu işlev birden fazla ileti dizisi tarafından çağrılabileceğinden, bildirim gönderilmeden önce gereksiz bir LoggingFlushHandler planlamaktan kaçınmak için mUploadRequested atomik olarak okunup ayarlanmalıdır.

Ayrıntılar
Parametreler
inRequestFlush
Dahili arabellek yönetimi politikasından bağımsız olarak, boşaltma işleminin programlanıp planlanmayacağını gösteren bir boole değeridir.
Döndürülen Değerler
WEAVE_ERROR_INCORRECT_STATE
LoggingManagement modülü tamamen başlatılmadı.
WEAVE_NO_ERROR
Başarılı.

Etkinlikleri Serileştir

WEAVE_ERROR SerializeEvents(
  TLVWriter & writer
)

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

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

Bu yöntem, uykudayken RAM'i tutmayan cihazlar tarafından kullanılmak üzere tasarlanmıştır. Böylece cihazlar uykuya geçmeden önce etkinlikleri koruyabilir ve böylece etkinlik kayıplarını önleyebilir

SetBDXYükleyici

void SetBDXUploader(
  LogBDXUpload *inUploader
)

SetExchangeYöneticisi

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

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

Bazı platformlarda bu işlemin, yukarıdaki CreateLoggingManagement() işleminden ayrı olarak yapılması gerekebilir.

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

SetLoggingUç Nokta

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

Atlama Etkinliği

void SkipEvent(
  EventLoadOutContext *aContext
)

Ayrılmış etkinlik kimliğine karşılık gelen bir etkinliği yazmayı atlamak için yardımcı işlev.

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

ThrottleLogger'lar

void ThrottleLogger(
  void
)

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

UnregisterEventCallbackForImportance

void UnregisterEventCallbackForImportance(
  ImportanceType inImportance,
  event_id_t inEventID
)

Harici olarak depolanan bir dizi etkinliğin kaydını iptal etmek için kullanılan herkese açık API.

Geri çağırmanın kaydının iptal edilmesi, LoggingManagement öğesinin bir dizi etkinlik için geri çağırmayı çağırmasını engeller. LoggingManagement, bu etkinlik kimliklerini artık abonelere göndermez.

Amaç, bir işlevin tek seferde bir etkinlik grubu yayınlamasıdır. Yeni bir etkinlik grubunun aynı işlev kullanılarak kaydedilmesi gerekiyorsa, geri çağırmanın kaydının iptal edilmesi ve ardından yeniden kaydedilmesi gerekir. Bu, orijinal etkinlik grubunun artık getirilemeyeceği anlamına gelir.

Bu işlev koşulsuz olarak başarılı olur. Geri arama hiç kayıtlı değilse veya zaten kayıtlı değilse bir işlem değildir.

Ayrıntılar
Parametreler
[in] inImportance
Önem düzeyi
[in] inEventID
Harici etkinlik bloğundaki etkinliklerin herhangi birine karşılık gelen bir etkinliğin kimliği iptal edilir.

Günlük Günlüğü

void UnthrottleLogger(
  void
)

UnthrottleLogger, etkin 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 (Günlük Kaydı Yönetimi) Oluşturma

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 öğesini bir LogStorageResources dizisiyle başlatın. Dizi, her geçerli önem düzeyi için bir kaynak sağlamalıdır. Dizideki öğeler önem açısından sayısal değeri artırmalıdır (ve önem derecesi düşüktü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.

Devir Günlüğü Yönetimi

void DestroyLoggingManagement(
  void
)

Kapatma sırasında ihtiyacımız olan tüm işlemleri yapın.

Örnek

LoggingManagement & GetInstance(
  void
)