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 kurucusudur.
LoggingManagement(void)
LoggingManagement varsayılan kurucusu.

Kamu işlevleri

BlitEvent(EventLoadOutContext *aContext, const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
Etkinlik kaydı protokolüne göre etkinlik başlığını ve verileri yazmak için yardımcı işlev.
CancelShutdownInProgress(void)
void
mShutdownInProcess flag'ini false olarak ayarlayın.
CheckShouldRunWDM(void)
bool
Yükleme için planlanmamış etkinlik arabelleklerindeki bayt sayısına göre etkinliklerin boşaltılıp kaldırılmayacağına karar verin.
FetchEventsSince(nl::Weave::TLV::TLVWriter & ioWriter, ImportanceType inImportance, event_id_t & ioEventID)
Belirtilen etkinlik kimliğinden sonra önem derecesi belirtilen etkinlikleri getiren bir işlev.
GetBytesWritten(void) const
uint32_t
Örneklenmesinden bu yana bu günlüğe yazılan (tüm etkinlik önemlerinde) toplam bayt sayısını alın.
GetEventReader(nl::Weave::TLV::TLVReader & ioReader, ImportanceType inImportance)
Bellek içi günlük arabelleklerini incelemek için yararlı bir yardımcı yöntem.
GetFirstEventID(ImportanceType inImportance)
Belirli bir önem düzeyi için depolanmakta olan ilk etkinlik kimliğini alın.
GetLastEventID(ImportanceType inImportance)
Belirli bir önem düzeyi için en son alınan 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ükleyin.
LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
Seçenekleri içeren bir geri çağırma aracılığıyla etkinliği günlüğe kaydedin.
MarkShutdownInProgress(void)
void
mShutdownInprogress işaretini 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 etkinlik grubunu kaydetmek için genel API.
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, size_t inNumEvents, event_id_t *outLastEventID)
Harici olarak depolanan bir etkinlik grubunu kaydetmek için genel API.
RegisterEventCallbackForImportance(ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, size_t inNumEvents, event_id_t *outLastEventID)
Harici olarak depolanan bir etkinlik grubunu kaydetmek için genel API.
ScheduleFlushIfNeeded(bool inFlushRequested)
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
Atanmış bir etkinlik kimliğine karşılık gelen etkinlik yazmayı atlamak için yardımcı işlevi.
ThrottleLogger(void)
void
ThrottleLogger, etkili günlük kaydı seviyesini Üretim düzeyine yükseltir.
UnregisterEventCallbackForImportance(ImportanceType inImportance, event_id_t inEventID)
void
Harici olarak depolanan bir etkinlik grubunun kaydını iptal etmeye yönelik genel API.
UnthrottleLogger(void)
void
UnthrottleLogger, etkili günlük düzeyini yapılandırılan 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 gerçekleştirmemiz gereken işlemleri yapın.
GetInstance(void)

Kamu işlevleri

BlitEvent

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

Etkinlik kaydı protokolüne göre etkinlik başlığını ve verileri 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
)

mShutdownInProcess flag'ini false olarak ayarlayın.

CheckShouldRunWDM

bool CheckShouldRunWDM(
  void
)

Yükleme için planlanmamış etkinlik arabelleklerindeki bayt sayısına göre etkinliklerin boşaltılıp kaldırılmayacağına 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 fazla yazdıysa işlev, NotificationEngine'i tetikleme zamanının geldiğini belirtir.

Ayrıntılar
Döndürülen Değerler
true
Etkinliklerin kaldırılması gerekir
false
Aksi halde

FetchEventsSince

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

Belirtilen etkinlik kimliğinden sonra önem derecesi belirtilen etkinlikleri getiren bir işlev.

Bir nl::Weave::TLV::TLVWriter, önem türü ve etkinlik kimliği verildiğinde işlev, belirtilen etkinlikten itibaren belirtilen önemdeki etkinlikleri getirir. İşlev, nl::Weave::TLV::TLVWriter veya günlükte alanı tükeninceye kadar etkinlikleri getirmeye devam eder. İşlev, etkinlik sınırına yazma işlemini sonlandırır.

Ayrıntılar
Parametreler
[in] ioWriter
Etkinlik depolama alanı için kullanılacak yazıcı
[in] inImportance
Etkinliklerin getirilmesinin önemi
[in,out] ioEventID
Etkinliğin kimliği, getirdiğimiz etkinlikten hemen önceki bir girişe kaydedilir. Tamamlandığında, getirilen son etkinliğin kimliği.
Döndürülen Değerler
WEAVE_END_OF_TLV
İşlev, belirtilen önem 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 kullanılabilir.
WEAVE_ERROR_BUFFER_TOO_SMALL
İşlevde ioWriter'da yer kalmadı. Günlükte daha fazla etkinlik kullanılabilir.

GetBytesWritten

uint32_t GetBytesWritten(
  void
) const 

Örneklenmesinden bu yana bu günlüğe yazılan (tüm etkinlik önemlerinde) toplam bayt 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 yararlı bir yardımcı yöntem.

Ayrıntılar
Parametreler
[in,out] ioReader
Olay günlüğündeki yedek depolama alanıyla başlatılacak okuyucu için bir referans
[in] inImportance
Okuyucular için başlangıçtaki önem düzeyi. Bu durumda başlangıçtaki öneminin oldukça sezgisel olduğunu unutmayın: Daha önemli etkinlikler, arabellekleri özel arabelleklerine ek olarak daha az önemli etkinliklerle paylaşır. Sonuç olarak, hata ayıklamanın önemi aktarıldığında okuyucu, en az miktarda veriyi aktarır.
İadeler
WEAVE_NO_ERROR Koşulsuz olarak.

GetFirstEventID

event_id_t GetFirstEventID(
  ImportanceType inImportance
)

Belirli bir önem düzeyi için depolanmakta olan ilk etkinlik kimliğini alın.

Ayrıntılar
Parametreler
inImportance
Önem düzeyi
İadeler
event_id_t Söz konusu etkinlik önem derecesi için şu anda depolanan ilk etkinlik kimliği

GetLastEventID

event_id_t GetLastEventID(
  ImportanceType inImportance
)

Belirli bir önem düzeyi için en son alınan kimliği getirin.

Ayrıntılar
Parametreler
inImportance
Önem düzeyi
İadeler
event_id_t söz konusu etkinliğin önemi için en son belirlenen etkinlik kimliği

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
Döndürülen Değerler
true
Örnek geçerli (uygun yedekleme deposuyla başlatıldı)
false
Aksi halde

LoadEvents

WEAVE_ERROR LoadEvents(
  TLVReader & reader
)

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

LogEvent

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

Seçenekleri içeren bir geri çağırma aracılığıyla etkinliği günlüğe kaydedin.

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

Şemanın ö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 etkinlik iptal edilir 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:

  • zaman damgası, 0 varsayılan olarak çağrı noktasındaki geçerli saati ayarlar
  • Etkinlik kaynağının "root" bölümü (etkinlik kaynağı ve özellik kimliği); NULL değeri varsa varsayılan olarak geçerli cihaz olur. Etkinlik, çağrıyı yapan cihazla ilgili olarak işaretlenir.
  • Etkinlik kimliklerini gruplandırmak için ilgili etkinlik kimliği. İlgili etkinlik kimliği 0 olduğunda etkinlik başka herhangi 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 verileri ile ilgili seçenekler. BOŞ 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 kurucusudur.

LoggingManagement'ı bir LogStorageResources dizisiyle başlatın. Dizi, geçerli her önem düzeyi için bir kaynak sağlamalıdır. Dizinin öğeleri, önemin sayısal değerini artırıyor (ve önemi azalan) olmalıdır. Dizideki ilk öğe en kritik etkinlikler için ayrılan kaynaklara, son öğe ise 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 kurucusu.

Temel olarak derleyiciyi mutlu etmek için sağlanır.

Ayrıntılar
İadeler

MarkShutdownInProgress

void MarkShutdownInProgress(
  void
)

mShutdownInprogress işaretini true olarak 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 etkinlik grubunu kaydetmek için genel API.

FetchExternalEventsFunct formunun bir geri çağırmasını kaydedin. Bu API, platformun kayıt sırasındaki etkinliklerin sayısını bilmesini gerektirir. Şirket içi çalışmalar da bu sayının sabit olmasını gerektiriyor. Bu API, platformun belirli etkinlik kimliklerini kaydetmesine izin vermediğinden bu API, platformun etkinliklerin (en azından benzersiz etkinlik kimlikleriyle) depolamaya devam etmesini önler.

Abone, kaydı iptal edilene kadar aralıktaki etkinlik kimliklerini istediği sayıda getirmeye çalıştığında geri çağırma çağrı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 yayınlandığında harici sağlayıcı, alıcının düğüm kimliği ve söz konusu alıcıya teslim edilen son etkinliğin kimliğiyle birlikte bu konuda bilgilendirilir. Harici sağlayıcıya, aynı etkinlik kimliği için birkaç kez bildirim gönderilebileceğini unutmayın. İşleyici için 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ı bilgilendirilir.

ExternalEvents struct'ın işaretçisi hata durumunda NULL olur. 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 geri çağırması
[in] inNotifyCallback
Teslim bildirimi için kayıt yaptırmak üzere geri arama
[in] inEvictedCallback
Tahliye bildirimi için geri arama
[in] inNumEvents
Bu kümedeki etkinlik sayısı
[out] outLastEventID
Bir event_id_t işaretçisi. Harici etkinliklerin başarılı bir şekilde kaydedilmesi durumunda 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
Başka geri arama aralığı yoksa.
WEAVE_ERROR_INVALID_ARGUMENT
Null Functions geri çağırma işlevi veya kaydedilecek etkinlik yok.
WEAVE_NO_ERROR
Başarılı olun.

RegisterEventCallbackForImportance

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

Harici olarak depolanan bir etkinlik grubunu kaydetmek için genel API.

FetchExternalEventsFunct formunun bir geri çağırmasını kaydedin. Bu API, platformun kayıt sırasındaki etkinliklerin sayısını bilmesini gerektirir. Şirket içi çalışmalar da bu sayının sabit olmasını gerektiriyor. Bu API, platformun belirli etkinlik kimliklerini kaydetmesine izin vermediğinden bu API, platformun etkinliklerin (en azından benzersiz etkinlik kimlikleriyle) depolamaya devam etmesini önler.

Abone, kaydı iptal edilene kadar aralıktaki etkinlik kimliklerini istediği sayıda getirmeye çalıştığında geri çağırma çağrılır.

İşlevin bu varyantı, harici sağlayıcı, etkinlikler bir aboneye teslim edildiğinde bilgi almak istediğinde kullanılmalıdır ancak harici etkinlikler nesnesi çıkarıldığında kullanılmamalıdır. Etkinlikler yayınlandığında harici sağlayıcı, alıcının düğüm kimliği ve söz konusu alıcıya teslim edilen son etkinliğin kimliğiyle birlikte bu konuda bilgilendirilir. Harici sağlayıcıya, aynı etkinlik kimliği için birkaç kez bildirim gönderilebileceğini unutmayın. İşleyici için belirli bir kısıtlama yoktur. Özellikle de işleyici, harici etkinlik kimliklerinin kaydını iptal edebilir.

ExternalEvents struct'ın işaretçisi hata durumunda NULL olur. 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 geri çağırması
[in] inNotifyCallback
Teslim bildirimi için kayıt yaptırmak üzere geri arama
[in] inNumEvents
Bu kümedeki etkinlik sayısı
[out] outLastEventID
Bir event_id_t işaretçisi. Harici etkinliklerin başarılı bir şekilde kaydedilmesi durumunda 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
Başka geri arama aralığı yoksa.
WEAVE_ERROR_INVALID_ARGUMENT
Null Functions geri çağırma işlevi veya kaydedilecek etkinlik yok.
WEAVE_NO_ERROR
Başarılı olun.

RegisterEventCallbackForImportance

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

Harici olarak depolanan bir etkinlik grubunu kaydetmek için genel API.

FetchExternalEventsFunct formunun bir geri çağırmasını kaydedin. Bu API, platformun kayıt sırasındaki etkinliklerin sayısını bilmesini gerektirir. Şirket içi çalışmalar da bu sayının sabit olmasını gerektiriyor. Bu API, platformun belirli etkinlik kimliklerini kaydetmesine izin vermediğinden bu API, platformun etkinliklerin (en azından benzersiz etkinlik kimlikleriyle) depolamaya devam etmesini önler.

Abone, kaydı iptal edilene kadar aralıktaki etkinlik kimliklerini istediği sayıda getirmeye çalıştığında geri çağırma çağrılır.

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

ExternalEvents struct'ın işaretçisi hata durumunda NULL olur. 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 geri çağırması
[in] inNumEvents
Bu kümedeki etkinlik sayısı
[out] outLastEventID
Bir event_id_t işaretçisi. Harici etkinliklerin başarılı bir şekilde kaydedilmesi durumunda 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
Başka geri arama aralığı yoksa.
WEAVE_ERROR_INVALID_ARGUMENT
Null Functions geri çağırma işlevi veya kaydedilecek etkinlik yok.
WEAVE_NO_ERROR
Başarılı olun.

ScheduleFlushIfNeeded

WEAVE_ERROR ScheduleFlushIfNeeded(
  bool inFlushRequested
)

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

İşlev, bir görev boşaltma işleminin planlanıp planlanmayacağına karar verir. İşlev varsa LoggingFlushHandler, Weave iş parçacığında eşzamansız olarak çalıştırılacak şekilde planlar.

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

tamponu boşaltmak için açık bir istek

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

ve zaten bekleyen bir istek temizleme isteği etkinliği olup olmadığını kontrol eder.

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

Otomatik boşaltma işlemi genellikle etkinlik arabellekleri yeni bir boşaltma işlemi başlatmayı hak edecek kadar veri içerdiğinde planlanır. Yükleme 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ği için bildirim gönderilmeden önce gereksiz bir LoggingFlushHandler programlanmasını önlemek amacıyla mUploadRequested atomik olarak okunmalı ve ayarlanmalıdır.

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

SerializeEvents

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 alır.

Bu yöntem, uyku sırasında RAM tutmayan cihazlar tarafından kullanılmak üzere tasarlanmıştır. Bu sayede, uykuya geçmeden önce etkinlikleri koruyabilir ve böylece etkinlik kaybı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
)

Atanmış bir etkinlik kimliğine karşılık gelen etkinlik yazmayı atlamak için yardımcı işlevi.

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ı seviyesini Üretim düzeyine yükseltir.

UnregisterEventCallbackForImportance

void UnregisterEventCallbackForImportance(
  ImportanceType inImportance,
  event_id_t inEventID
)

Harici olarak depolanan bir etkinlik grubunun kaydını iptal etmeye yönelik genel API.

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

Amaç, bir işlevin aynı anda bir dizi etkinlik sunmasını sağlamaktır. Yeni bir etkinlik kümesinin aynı işlev kullanılarak kaydedilmesi gerekiyorsa, geri çağırmanın önce kaydı iptal edilip 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 çağırma daha önce hiç kaydedilmemişse veya daha önce iptal edilmişse işlem yapılamaz.

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

UnthrottleLogger

void UnthrottleLogger(
  void
)

UnthrottleLogger, etkili günlük düzeyini yapılandırılan 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, geçerli her önem düzeyi için bir kaynak sağlamalıdır. Dizinin öğeleri, önemin sayısal değerini artırıyor (ve önemi azalan) olmalıdır. Dizideki ilk öğe en kritik etkinlikler için ayrılan kaynaklara, son öğe ise 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 sırasında gerçekleştirmemiz gereken işlemleri yapın.

GetInstance

LoggingManagement & GetInstance(
  void
)