nl:: বুনা:: প্রোফাইল:: ডেটা ম্যানেজমেন্ট_কারেন্ট:: লগিং ম্যানেজমেন্ট
#include <src/lib/profiles/data-management/Current/LoggingManagement.h>
মেমরি ইভেন্ট লগ পরিচালনার জন্য একটি ক্লাস।
সারাংশ
কনস্ট্রাক্টর এবং ডেস্ট্রাক্টর | |
---|---|
LoggingManagement ( nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources) লগিং ম্যানেজমেন্ট কনস্ট্রাক্টর। | |
LoggingManagement (void) লগিং ম্যানেজমেন্ট ডিফল্ট কনস্ট্রাক্টর। |
পাবলিক ফাংশন | |
---|---|
BlitEvent ( EventLoadOutContext *aContext, const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions) | ইভেন্ট লগিং প্রোটোকল অনুযায়ী ইভেন্ট হেডার এবং ডেটা লেখার জন্য হেল্পার ফাংশন। |
CancelShutdownInProgress (void) | void mShutdownInProgress পতাকা মিথ্যাতে সেট করুন। |
CheckShouldRunWDM (void) | bool আপলোডের জন্য নির্ধারিত ইভেন্ট বাফারে বাইটের সংখ্যার উপর ভিত্তি করে ইভেন্টগুলি অফলোড করা হবে কিনা তা নির্ধারণ করুন৷ |
FetchEventsSince ( nl::Weave::TLV::TLVWriter & ioWriter, ImportanceType inImportance, event_id_t & ioEventID) | একটি নির্দিষ্ট ইভেন্ট আইডি থেকে নির্দিষ্ট গুরুত্বের ঘটনা পুনরুদ্ধার করার জন্য একটি ফাংশন। |
GetBytesWritten (void) const | uint32_t এই লগটি চালু হওয়ার পর থেকে লিখিত বাইটের মোট সংখ্যা (সমস্ত ইভেন্ট গুরুত্ব জুড়ে) পান। |
GetEventReader ( nl::Weave::TLV::TLVReader & ioReader, ImportanceType inImportance) | ইন-মেমরি লগ বাফার পরীক্ষা করার জন্য একটি সহায়ক পদ্ধতি দরকারী। |
GetFirstEventID ( ImportanceType inImportance) | একটি বিশেষ গুরুত্ব স্তরের জন্য বর্তমানে সংরক্ষিত প্রথম ইভেন্ট আইডি আনুন৷ |
GetLastEventID ( ImportanceType inImportance) | একটি বিশেষ গুরুত্ব স্তরের জন্য অতি সম্প্রতি বিক্রি করা আইডি আনুন৷ |
IsShutdownInProgress (void) | bool mShutdownInProgress পতাকা পরীক্ষা করুন। |
IsValid (void) | bool LoggingManagement দৃষ্টান্ত বৈধ কিনা IsValid ফেরত দেয়। |
LoadEvents ( TLVReader & reader) | পূর্বে স্থায়ী উইভ ইভেন্ট লোড করুন। |
LogEvent (const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions) | বিকল্পগুলির সাথে একটি কলব্যাকের মাধ্যমে একটি ইভেন্ট লগ করুন৷ |
MarkShutdownInProgress (void) | void mShutdownInProgress পতাকা সত্যে সেট করুন। |
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) | বাহ্যিকভাবে সঞ্চিত ইভেন্টগুলির একটি সেট নিবন্ধনের জন্য সর্বজনীন API। |
RegisterEventCallbackForImportance ( ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, size_t inNumEvents, event_id_t *outLastEventID) | বাহ্যিকভাবে সঞ্চিত ইভেন্টগুলির একটি সেট নিবন্ধনের জন্য সর্বজনীন API। |
RegisterEventCallbackForImportance ( ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, size_t inNumEvents, event_id_t *outLastEventID) | বাহ্যিকভাবে সঞ্চিত ইভেন্টগুলির একটি সেট নিবন্ধনের জন্য সর্বজনীন API। |
ScheduleFlushIfNeeded (bool inFlushRequested) | একটি লগ অফলোড টাস্ক শিডিউল করুন। |
SerializeEvents ( TLVWriter & writer) | সমস্ত গুরুত্বের প্রকারের ওয়েভ ইভেন্টকে সিরিয়ালাইজ করুন। |
SetBDXUploader ( LogBDXUpload *inUploader) | void |
SetExchangeManager ( nl::Weave::WeaveExchangeManager *inMgr) | এই লগিং সাবসিস্টেমের সাথে ব্যবহার করার জন্য WeaveExchangeManager সেট করুন। |
SetLoggingEndpoint ( event_id_t *inEventEndpoints, size_t inNumImportanceLevels, size_t & outLoggingPosition) | |
SkipEvent ( EventLoadOutContext *aContext) | void একটি বরাদ্দকৃত ইভেন্ট আইডির সাথে সম্পর্কিত একটি ইভেন্ট লেখা এড়িয়ে যাওয়ার জন্য সহায়ক ফাংশন৷ |
ThrottleLogger (void) | void ThrottleLogger কার্যকর লগিং স্তরকে উৎপাদন স্তরে উন্নীত করে৷ |
UnregisterEventCallbackForImportance ( ImportanceType inImportance, event_id_t inEventID) | void বাহ্যিকভাবে সঞ্চিত ইভেন্টের একটি সেট আনরেজিস্টার করার জন্য সর্বজনীন API। |
UnthrottleLogger (void) | void UnthrottleLogger কার্যকর লগিং স্তরটিকে কনফিগার করা লগিং স্তরে পুনরুদ্ধার করে৷ |
পাবলিক স্ট্যাটিক ফাংশন | |
---|---|
CreateLoggingManagement ( nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources) | void LoggingManagement অবজেক্ট তৈরি করুন এবং প্রদত্ত সংস্থানগুলির সাথে লগিং ম্যানেজমেন্ট সাবসিস্টেম শুরু করুন। |
DestroyLoggingManagement (void) | void শাটডাউন করার সময় আমাদের যে কোনো কাজ সম্পাদন করুন। |
GetInstance (void) |
পাবলিক ফাংশন
ব্লিট ইভেন্ট
WEAVE_ERROR BlitEvent( EventLoadOutContext *aContext, const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions )
ইভেন্ট লগিং প্রোটোকল অনুযায়ী ইভেন্ট হেডার এবং ডেটা লেখার জন্য হেল্পার ফাংশন।
বিস্তারিত | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
|
ShutdownInProgress বাতিল করুন
void CancelShutdownInProgress( void )
mShutdownInProgress পতাকা মিথ্যাতে সেট করুন।
চেক করা উচিত রানডব্লিউডিএম
bool CheckShouldRunWDM( void )
আপলোডের জন্য নির্ধারিত ইভেন্ট বাফারে বাইটের সংখ্যার উপর ভিত্তি করে ইভেন্টগুলি অফলোড করা হবে কিনা তা নির্ধারণ করুন৷
ফাংশনের আচরণ WEAVE_CONFIG_EVENT_LOGGING_BYTE_THRESHOLD ধ্রুবকের মাধ্যমে নিয়ন্ত্রিত হয়। যদি শেষবার একটি WDM বিজ্ঞপ্তি পাঠানোর পর থেকে সিস্টেমটি সেই সংখ্যার বেশি বাইট লিখে থাকে, তাহলে ফাংশনটি নির্দেশ করবে যে এটি NotificationEngine ট্রিগার করার সময়।
বিস্তারিত | |||||
---|---|---|---|---|---|
রিটার্ন মান |
|
ইভেন্টস আনুন
WEAVE_ERROR FetchEventsSince( nl::Weave::TLV::TLVWriter & ioWriter, ImportanceType inImportance, event_id_t & ioEventID )
একটি নির্দিষ্ট ইভেন্ট আইডি থেকে নির্দিষ্ট গুরুত্বের ঘটনা পুনরুদ্ধার করার জন্য একটি ফাংশন।
একটি nl::Weave::TLV::TLVWriter , একটি গুরুত্বের ধরন এবং একটি ইভেন্ট আইডি দেওয়া হলে, ফাংশনটি নির্দিষ্ট ইভেন্টের পর থেকে নির্দিষ্ট গুরুত্বের ইভেন্ট আনবে। nl::Weave::TLV::TLVWriter বা লগে স্থান ফুরিয়ে না যাওয়া পর্যন্ত ফাংশনটি ইভেন্টগুলি আনা চালিয়ে যাবে৷ ফাংশন ইভেন্ট বাউন্ডারিতে ইভেন্ট লেখা বন্ধ করবে।
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||
রিটার্ন মান |
|
GetBytesWritten
uint32_t GetBytesWritten( void ) const
এই লগটি চালু হওয়ার পর থেকে লিখিত বাইটের মোট সংখ্যা (সমস্ত ইভেন্ট গুরুত্ব জুড়ে) পান।
বিস্তারিত | |
---|---|
রিটার্নস | লগে লেখা বাইটের সংখ্যা। |
GetEventReader
WEAVE_ERROR GetEventReader( nl::Weave::TLV::TLVReader & ioReader, ImportanceType inImportance )
ইন-মেমরি লগ বাফার পরীক্ষা করার জন্য একটি সহায়ক পদ্ধতি দরকারী।
বিস্তারিত | |||||
---|---|---|---|---|---|
পরামিতি |
| ||||
রিটার্নস | WEAVE_NO_ERROR শর্তহীনভাবে। |
GetFirstEventID
event_id_t GetFirstEventID( ImportanceType inImportance )
একটি বিশেষ গুরুত্ব স্তরের জন্য বর্তমানে সংরক্ষিত প্রথম ইভেন্ট আইডি আনুন৷
বিস্তারিত | |||
---|---|---|---|
পরামিতি |
| ||
রিটার্নস | event_id_t সেই ইভেন্ট গুরুত্বের জন্য প্রথম বর্তমানে সংরক্ষিত ইভেন্ট আইডি |
GetLastEventID
event_id_t GetLastEventID( ImportanceType inImportance )
একটি বিশেষ গুরুত্ব স্তরের জন্য অতি সম্প্রতি বিক্রি করা আইডি আনুন৷
বিস্তারিত | |||
---|---|---|---|
পরামিতি |
| ||
রিটার্নস | event_id_t সেই ইভেন্ট গুরুত্বের জন্য সম্প্রতি বিক্রি করা ইভেন্ট আইডি |
IsShutdownInProgress
bool IsShutdownInProgress( void )
mShutdownInProgress পতাকা পরীক্ষা করুন।
বৈধ
bool IsValid( void )
LoggingManagement দৃষ্টান্ত বৈধ কিনা IsValid ফেরত দেয়।
বিস্তারিত | |||||
---|---|---|---|---|---|
রিটার্ন মান |
|
লগ ইভেন্ট
event_id_t LogEvent( const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions )
বিকল্পগুলির সাথে একটি কলব্যাকের মাধ্যমে একটি ইভেন্ট লগ করুন৷
ফাংশনটি একটি EventWriterFunct এবং একটি অ্যাপ-নির্দিষ্ট appData
প্রসঙ্গ হিসাবে উপস্থাপিত একটি ইভেন্ট লগ করে। ফাংশনটি ইভেন্ট মেটাডেটা লেখে এবং nl::Weave::TLV::TLVWriter রেফারেন্স এবং inAppData
প্রসঙ্গ সহ inEventWriter
কল করে যাতে ব্যবহারকারী কোড সরাসরি ইভেন্ট লগে ইভেন্ট ডেটা নির্গত করতে পারে। ইভেন্ট লগিংয়ের এই ফর্মটি মেমরি খরচ কমিয়ে দেয়, কারণ ইভেন্ট ডেটা সরাসরি টার্গেট বাফারে সিরিয়াল করা হয়। ইভেন্ট ডেটাতে অবশ্যই প্রসঙ্গ ট্যাগ থাকতে হবে যা inProfileID
এবং inEventType
দ্বারা চিহ্নিত স্কিমার মধ্যে ব্যাখ্যা করা হবে। প্রথম উপাদানের ট্যাগ উপেক্ষা করা হবে; ইভেন্ট লগিং সিস্টেম এটিকে ইভেন্টডেটা ট্যাগ দিয়ে প্রতিস্থাপন করবে।
ইভেন্টটি লগ করা হয় যদি স্কিমার গুরুত্ব লগিং কনফিগারেশনে নির্দিষ্ট করা লগিং থ্রেশহোল্ডকে অতিক্রম করে। ইভেন্টের গুরুত্ব বর্তমান থ্রেশহোল্ড পূরণ না হলে, এটি বাদ দেওয়া হয় এবং ফাংশনটি ফলাফল ইভেন্ট আইডি হিসাবে একটি 0
প্রদান করে।
আহ্বানের এই রূপটি কলকারীকে EventOptions
এর যেকোনো সমন্বয় সেট করার অনুমতি দেয়:
- টাইমস্ট্যাম্প, যখন কলের পয়েন্টে বর্তমান সময়ে 0 ডিফল্ট হয়,
- ইভেন্ট উত্সের "রুট" বিভাগ (ইভেন্ট উত্স এবং বৈশিষ্ট্য আইডি); NULL হলে, এটি বর্তমান ডিভাইসে ডিফল্ট। ইভেন্টটি যে ডিভাইসটি কল করছে তার সাথে সম্পর্কিত হিসাবে চিহ্নিত করা হয়েছে,
- ইভেন্ট আইডি গ্রুপ করার জন্য একটি সম্পর্কিত ইভেন্ট আইডি; যখন সম্পর্কিত ইভেন্ট আইডি 0 হয়, তখন ইভেন্টটি অন্য কোনো ইভেন্টের সাথে সম্পর্কিত নয় বলে চিহ্নিত করা হয়,
- জরুরী ডিফল্টভাবে অ-জরুরী।
বিস্তারিত | |||||||||
---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||
রিটার্নস | event_id_t ইভেন্ট আইডি যদি ইভেন্টটি লগে লেখা হয়, অন্যথায় 0। |
লগিং ম্যানেজমেন্ট
LoggingManagement( nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources )
লগিং ম্যানেজমেন্ট কনস্ট্রাক্টর।
LogStorageResources এর একটি অ্যারের সাথে LoggingManagement শুরু করুন। অ্যারেকে অবশ্যই প্রতিটি বৈধ গুরুত্ব স্তরের জন্য একটি সংস্থান সরবরাহ করতে হবে, অ্যারের উপাদানগুলিকে অবশ্যই গুরুত্বের সংখ্যাসূচক মান বৃদ্ধিতে হবে (এবং গুরুত্ব হ্রাসে); অ্যারের প্রথম উপাদানটি সবচেয়ে গুরুত্বপূর্ণ ইভেন্টগুলির জন্য বরাদ্দকৃত সংস্থানগুলির সাথে মিলে যায় এবং শেষ উপাদানটি সবচেয়ে কম গুরুত্বপূর্ণ ইভেন্টগুলির সাথে মিলে যায়৷
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
|
লগিং ম্যানেজমেন্ট
LoggingManagement( void )
লগিং ম্যানেজমেন্ট ডিফল্ট কনস্ট্রাক্টর।
কম্পাইলারকে খুশি করার জন্য প্রাথমিকভাবে প্রদান করা হয়েছে।
বিস্তারিত | |
---|---|
রিটার্নস |
MarkShutdownInProgress
void MarkShutdownInProgress( void )
mShutdownInProgress পতাকা সত্যে সেট করুন।
বিজ্ঞপ্তি ইভেন্টস বিতরণ করা হয়েছে
void NotifyEventsDelivered( ImportanceType inImportance, event_id_t inLastDeliveredEventID, uint64_t inRecipientNodeID )
RegisterEventCallbackFor Importance
WEAVE_ERROR RegisterEventCallbackForImportance( ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, NotifyExternalEventsEvictedFunct inEvictedCallback, size_t inNumEvents, event_id_t *outLastEventID )
বাহ্যিকভাবে সঞ্চিত ইভেন্টগুলির একটি সেট নিবন্ধনের জন্য সর্বজনীন API।
FetchExternalEventsFunct ফর্মের একটি কলব্যাক নিবন্ধন করুন। এই API-এর জন্য প্ল্যাটফর্মের নিবন্ধনের ইভেন্টের সংখ্যা জানতে হবে। অভ্যন্তরীণ কাজের জন্যও এই সংখ্যাটি ধ্রুবক হওয়া প্রয়োজন। যেহেতু এই API প্ল্যাটফর্মটিকে নির্দিষ্ট ইভেন্ট আইডি নিবন্ধন করার অনুমতি দেয় না, তাই এটি প্ল্যাটফর্মটিকে ইভেন্টের সঞ্চয়স্থান (অন্তত অনন্য ইভেন্ট আইডি সহ) থেকে আটকায়।
কলব্যাক কল করা হবে যখনই কোনো গ্রাহক রেঞ্জের মধ্যে ইভেন্ট আইডি আনার চেষ্টা করবে যতক্ষণ না পর্যন্ত এটি অনিবন্ধিত হয়।
ফাংশনের এই বৈকল্পিকটি ব্যবহার করা উচিত যখন বহিরাগত প্রদানকারী ইভেন্টগুলি গ্রাহককে বিতরণ করা হলে এবং বহিরাগত ইভেন্ট অবজেক্টটি উচ্ছেদ করা হলে উভয়ই অবহিত করতে চায়।
যখন ইভেন্টগুলি বিতরণ করা হয়, বহিরাগত প্রদানকারীকে প্রাপকের নোড আইডি এবং সেই প্রাপকের কাছে বিতরণ করা শেষ ইভেন্টের আইডি সহ এটি সম্পর্কে অবহিত করা হয়। মনে রাখবেন যে একই ইভেন্ট আইডির জন্য বহিরাগত প্রদানকারীকে একাধিকবার অবহিত করা যেতে পারে। হ্যান্ডলারের উপর কোন নির্দিষ্ট বিধিনিষেধ নেই, বিশেষ করে, হ্যান্ডলার বহিরাগত ইভেন্ট আইডি নিবন্ধনমুক্ত করতে পারে।
বহিরাগত ইভেন্ট অবজেক্টটি লগ বাফার থেকে উচ্ছেদ করা হলে, বহিরাগত ইভেন্ট অবজেক্টের একটি অনুলিপি সহ বাহ্যিক প্রদানকারীকে অবহিত করা হয়।
ExternalEvents struct-এর পয়েন্টার ব্যর্থ হলে NULL হবে, অন্যথায় কলব্যাকে বরাদ্দ করা শুরু এবং শেষ ইভেন্ট আইডি দিয়ে পপুলেট করা হবে। এই পয়েন্টার ইভেন্ট সেট আনরেজিস্টার ব্যবহার করা উচিত.
কলব্যাককে কী প্রয়োগ করতে হবে তার বিশদ বিবরণের জন্য FetchExternalEventsFunct- এর ডকুমেন্টেশন দেখুন।
বিস্তারিত | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||
রিটার্ন মান |
|
RegisterEventCallbackFor Importance
WEAVE_ERROR RegisterEventCallbackForImportance( ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, size_t inNumEvents, event_id_t *outLastEventID )
বাহ্যিকভাবে সঞ্চিত ইভেন্টগুলির একটি সেট নিবন্ধনের জন্য সর্বজনীন API।
FetchExternalEventsFunct ফর্মের একটি কলব্যাক নিবন্ধন করুন। এই API-এর জন্য প্ল্যাটফর্মের নিবন্ধনের ইভেন্টের সংখ্যা জানতে হবে। অভ্যন্তরীণ কাজের জন্যও এই সংখ্যাটি ধ্রুবক হওয়া প্রয়োজন। যেহেতু এই API প্ল্যাটফর্মটিকে নির্দিষ্ট ইভেন্ট আইডি নিবন্ধন করার অনুমতি দেয় না, তাই এটি প্ল্যাটফর্মটিকে ইভেন্টের সঞ্চয়স্থান (অন্তত অনন্য ইভেন্ট আইডি সহ) থেকে আটকায়।
কলব্যাক কল করা হবে যখনই কোনো গ্রাহক রেঞ্জের মধ্যে ইভেন্ট আইডি আনার চেষ্টা করবে যতক্ষণ না পর্যন্ত এটি অনিবন্ধিত হয়।
ফাংশনের এই বৈকল্পিকটি ব্যবহার করা উচিত যখন বহিরাগত প্রদানকারী ইভেন্টগুলি গ্রাহকের কাছে বিতরণ করা হলে বিজ্ঞপ্তি পেতে চায়, কিন্তু যখন বহিরাগত ইভেন্ট বস্তুটি উচ্ছেদ করা হয় তখন নয়৷ যখন ইভেন্টগুলি বিতরণ করা হয়, বহিরাগত প্রদানকারীকে প্রাপকের নোড আইডি এবং সেই প্রাপকের কাছে বিতরণ করা শেষ ইভেন্টের আইডি সহ এটি সম্পর্কে অবহিত করা হয়। মনে রাখবেন যে একই ইভেন্ট আইডির জন্য বহিরাগত প্রদানকারীকে একাধিকবার অবহিত করা যেতে পারে। হ্যান্ডলারের উপর কোন নির্দিষ্ট বিধিনিষেধ নেই, বিশেষ করে, হ্যান্ডলার বহিরাগত ইভেন্ট আইডি নিবন্ধনমুক্ত করতে পারে।
ExternalEvents struct-এর পয়েন্টার ব্যর্থ হলে NULL হবে, অন্যথায় কলব্যাকে বরাদ্দ করা শুরু এবং শেষ ইভেন্ট আইডি দিয়ে পপুলেট করা হবে। এই পয়েন্টার ইভেন্ট সেট আনরেজিস্টার ব্যবহার করা উচিত.
কলব্যাককে কী প্রয়োগ করতে হবে তার বিশদ বিবরণের জন্য FetchExternalEventsFunct- এর ডকুমেন্টেশন দেখুন।
বিস্তারিত | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||
রিটার্ন মান |
|
RegisterEventCallbackFor Importance
WEAVE_ERROR RegisterEventCallbackForImportance( ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, size_t inNumEvents, event_id_t *outLastEventID )
বাহ্যিকভাবে সঞ্চিত ইভেন্টগুলির একটি সেট নিবন্ধনের জন্য সর্বজনীন API।
FetchExternalEventsFunct ফর্মের একটি কলব্যাক নিবন্ধন করুন। এই API-এর জন্য প্ল্যাটফর্মের নিবন্ধনের ইভেন্টের সংখ্যা জানতে হবে। অভ্যন্তরীণ কাজের জন্যও এই সংখ্যাটি ধ্রুবক হওয়া প্রয়োজন। যেহেতু এই API প্ল্যাটফর্মটিকে নির্দিষ্ট ইভেন্ট আইডি নিবন্ধন করার অনুমতি দেয় না, তাই এটি প্ল্যাটফর্মটিকে ইভেন্টের সঞ্চয়স্থান (অন্তত অনন্য ইভেন্ট আইডি সহ) থেকে আটকায়।
কলব্যাক কল করা হবে যখনই কোনো গ্রাহক রেঞ্জের মধ্যে ইভেন্ট আইডি আনার চেষ্টা করবে যতক্ষণ না পর্যন্ত এটি অনিবন্ধিত হয়।
ফাংশনের এই বৈকল্পিকটি ব্যবহার করা উচিত যখন বাহ্যিক প্রদানকারী একটি বিজ্ঞপ্তি চান না যখন বাহ্যিক ইভেন্টগুলি বিতরণ করা হয় বা যখন বাহ্যিক ইভেন্ট বস্তুটি উচ্ছেদ করা হয়।
ExternalEvents struct-এর পয়েন্টার ব্যর্থ হলে NULL হবে, অন্যথায় কলব্যাকে বরাদ্দ করা শুরু এবং শেষ ইভেন্ট আইডি দিয়ে পপুলেট করা হবে। এই পয়েন্টার ইভেন্ট সেট আনরেজিস্টার ব্যবহার করা উচিত.
কলব্যাককে কী প্রয়োগ করতে হবে তার বিশদ বিবরণের জন্য FetchExternalEventsFunct- এর ডকুমেন্টেশন দেখুন।
বিস্তারিত | |||||||||
---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||
রিটার্ন মান |
|
সময়সূচী ফ্লাশআইফ প্রয়োজন
WEAVE_ERROR ScheduleFlushIfNeeded( bool inFlushRequested )
একটি লগ অফলোড টাস্ক শিডিউল করুন।
ফাংশন একটি টাস্ক অফলোড প্রক্রিয়ার সময়সূচী নির্ধারণ করে কিনা তা নির্ধারণ করে, এবং যদি তাই হয়, তাহলে এটি LoggingFlushHandler
Weave থ্রেডে অ্যাসিঙ্ক্রোনাসভাবে চালানোর জন্য নির্ধারিত করে।
একটি ফ্লাশ শিডিউল করার সিদ্ধান্ত তিনটি কারণের উপর নির্ভর করে:
বাফার ফ্লাশ করার জন্য একটি সুস্পষ্ট অনুরোধ
ইভেন্ট বাফারের অবস্থা এবং ইভেন্ট গ্রাহকদের সাথে এখনও সিঙ্ক্রোনাইজ করা ডেটার পরিমাণ
ইতিমধ্যে একটি মুলতুবি অনুরোধ ফ্লাশ অনুরোধ ইভেন্ট আছে কিনা।
একটি ফ্লাশ শিডিউল করার সুস্পষ্ট অনুরোধ একটি ইনপুট প্যারামিটারের মাধ্যমে পাস করা হয়।
স্বয়ংক্রিয় ফ্লাশ সাধারণত নির্ধারিত হয় যখন ইভেন্ট বাফারগুলিতে একটি নতুন অফলোড শুরু করার যোগ্যতার জন্য যথেষ্ট ডেটা থাকে। অফলোড কৌশলের উপর নির্ভর করে অতিরিক্ত ট্রিগার যেমন অফলোডের মধ্যে সর্বনিম্ন এবং সর্বোচ্চ সময়ও বিবেচনা করা যেতে পারে।
ইভেন্ট লগের মুলতুবি অবস্থা mUploadRequested
ভেরিয়েবল দ্বারা নির্দেশিত হয়। যেহেতু এই ফাংশনটি একাধিক থ্রেড দ্বারা কল করা যেতে পারে, তাই mUploadRequested
অবশ্যই পরমাণুভাবে পড়তে হবে এবং সেট করতে হবে, যাতে বিজ্ঞপ্তি পাঠানোর আগে একটি অপ্রয়োজনীয় LoggingFlushHandler
নির্ধারণ করা এড়াতে হয়।
বিস্তারিত | |||||
---|---|---|---|---|---|
পরামিতি |
| ||||
রিটার্ন মান |
|
সিরিয়ালাইজ ইভেন্টস
WEAVE_ERROR SerializeEvents( TLVWriter & writer )
সমস্ত গুরুত্বের প্রকারের ওয়েভ ইভেন্টকে সিরিয়ালাইজ করুন।
সরবরাহকৃত বাফারে WeaveCircularTLVBuffer এবং সংশ্লিষ্ট রাজ্যগুলির ইভেন্টগুলিকে সিরিয়ালাইজ করে।
এই পদ্ধতিটি এমন ডিভাইসগুলির দ্বারা ব্যবহার করার উদ্দেশ্যে করা হয়েছে যেগুলি ঘুমানোর সময় RAM ধরে রাখে না, যা তাদের ঘুমের আগে ইভেন্টগুলি চালিয়ে যেতে দেয় এবং এর ফলে ঘটনাগুলি হারানো রোধ করে
সেটবিডিএক্সআপলোডার
void SetBDXUploader( LogBDXUpload *inUploader )
সেট এক্সচেঞ্জ ম্যানেজার
WEAVE_ERROR SetExchangeManager( nl::Weave::WeaveExchangeManager *inMgr )
এই লগিং সাবসিস্টেমের সাথে ব্যবহার করার জন্য WeaveExchangeManager সেট করুন।
কিছু প্ল্যাটফর্মে, এটি উপরের CreateLoggingManagement() থেকে আলাদাভাবে ঘটতে হতে পারে।
বিস্তারিত | |||
---|---|---|---|
পরামিতি |
|
সেটলগিংএন্ডপয়েন্ট
WEAVE_ERROR SetLoggingEndpoint( event_id_t *inEventEndpoints, size_t inNumImportanceLevels, size_t & outLoggingPosition )
স্কিপ ইভেন্ট
void SkipEvent( EventLoadOutContext *aContext )
একটি বরাদ্দকৃত ইভেন্ট আইডির সাথে সম্পর্কিত একটি ইভেন্ট লেখা এড়িয়ে যাওয়ার জন্য সহায়ক ফাংশন৷
বিস্তারিত | |||
---|---|---|---|
পরামিতি |
|
থ্রটললগার
void ThrottleLogger( void )
ThrottleLogger কার্যকর লগিং স্তরকে উৎপাদন স্তরে উন্নীত করে৷
ইভেন্ট কলব্যাকের জন্য ইমপোর্টেন্স আনরেজিস্টার করুন
void UnregisterEventCallbackForImportance( ImportanceType inImportance, event_id_t inEventID )
বাহ্যিকভাবে সঞ্চিত ইভেন্টের একটি সেট আনরেজিস্টার করার জন্য সর্বজনীন API।
কলব্যাক নিবন্ধনমুক্ত করা লগিং ম্যানেজমেন্টকে ইভেন্টের একটি সেটের জন্য কলব্যাক কল করতে বাধা দেবে। লগিং ম্যানেজমেন্ট গ্রাহকদের কাছে সেই ইভেন্ট আইডিগুলি আর পাঠাবে না।
উদ্দেশ্য হল একটি ফাংশন একটি সময়ে ইভেন্টের একটি সেট পরিবেশন করা। যদি একই ফাংশন ব্যবহার করে ইভেন্টের একটি নতুন সেট নিবন্ধিত করার প্রয়োজন হয়, কলব্যাকটি প্রথমে নিবন্ধনমুক্ত করা উচিত, তারপর আবার নিবন্ধিত করা উচিত। এর মানে ইভেন্টের আসল সেট আর আনা যাবে না।
এই ফাংশন নিঃশর্তভাবে সফল হয়. যদি কলব্যাকটি কখনও নিবন্ধিত না হয় বা ইতিমধ্যেই অনিবন্ধিত থাকে তবে এটি একটি নো-অপ।
বিস্তারিত | |||||
---|---|---|---|---|---|
পরামিতি |
|
UnthrottleLogger
void UnthrottleLogger( void )
UnthrottleLogger কার্যকর লগিং স্তরটিকে কনফিগার করা লগিং স্তরে পুনরুদ্ধার করে৷
পাবলিক স্ট্যাটিক ফাংশন
লগিং ম্যানেজমেন্ট তৈরি করুন
void CreateLoggingManagement( nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources )
LoggingManagement অবজেক্ট তৈরি করুন এবং প্রদত্ত সংস্থানগুলির সাথে লগিং ম্যানেজমেন্ট সাবসিস্টেম শুরু করুন।
LogStorageResources এর একটি অ্যারের সাথে LoggingManagement শুরু করুন। অ্যারেকে অবশ্যই প্রতিটি বৈধ গুরুত্ব স্তরের জন্য একটি সংস্থান সরবরাহ করতে হবে, অ্যারের উপাদানগুলিকে অবশ্যই গুরুত্বের সংখ্যাসূচক মান বৃদ্ধিতে হবে (এবং গুরুত্ব হ্রাসে); অ্যারের প্রথম উপাদানটি সবচেয়ে গুরুত্বপূর্ণ ইভেন্টগুলির জন্য বরাদ্দকৃত সংস্থানগুলির সাথে মিলে যায় এবং শেষ উপাদানটি সবচেয়ে কম গুরুত্বপূর্ণ ইভেন্টগুলির সাথে মিলে যায়৷
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
|
লগিং ম্যানেজমেন্ট ধ্বংস করুন
void DestroyLoggingManagement( void )
শাটডাউন করার সময় আমাদের যে কোনো কাজ সম্পাদন করুন।
GetInstance
LoggingManagement & GetInstance( void )