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
)

ইভেন্ট লগিং প্রোটোকল অনুযায়ী ইভেন্ট হেডার এবং ডেটা লেখার জন্য হেল্পার ফাংশন।

বিস্তারিত
পরামিতি
[in,out] aContext
EventLoadOutContext , বাফারের জন্য রাষ্ট্রীয় তথ্য দিয়ে শুরু করা হয়েছে। এই প্রসঙ্গ ব্যবহার করে BlitEvent দ্বারা রাজ্য আপডেট এবং সংরক্ষণ করা হয়।
[in] inSchema
স্কিমা সংজ্ঞায়িত গুরুত্ব, প্রোফাইল আইডি, এবং এই ইভেন্টের গঠন প্রকার।
[in] inEventWriter
ইভেন্ট ডেটা সিরিয়ালাইজ করার জন্য কলব্যাক।
[in] inAppData
কলব্যাকের জন্য আবেদনের প্রসঙ্গ।
[in] inOptions
এই ইভেন্টের সাথে প্রাসঙ্গিক টাইমস্ট্যাম্প এবং অন্যান্য ট্যাগ বর্ণনা করে ইভেন্ট অপশন

শাটডাউনইনপ্রগ্রেস বাতিল করুন

void CancelShutdownInProgress(
  void
)

mShutdownInProgress পতাকা মিথ্যাতে সেট করুন।

চেক করা উচিত রানডব্লিউডিএম

bool CheckShouldRunWDM(
  void
)

আপলোডের জন্য নির্ধারিত ইভেন্ট বাফারে বাইটের সংখ্যার উপর ভিত্তি করে ইভেন্টগুলি অফলোড করা হবে কিনা তা নির্ধারণ করুন৷

ফাংশনের আচরণ WEAVE_CONFIG_EVENT_LOGGING_BYTE_THRESHOLD ধ্রুবকের মাধ্যমে নিয়ন্ত্রিত হয়। যদি শেষবার একটি WDM বিজ্ঞপ্তি পাঠানোর পর থেকে সিস্টেমটি সেই সংখ্যার বেশি বাইট লিখে থাকে, তাহলে ফাংশনটি নির্দেশ করবে যে এটি NotificationEngine ট্রিগার করার সময়।

বিস্তারিত
রিটার্ন মান
true
ইভেন্ট অফলোড করা উচিত
false
অন্যথায়

ইভেন্টস আনুন

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

একটি নির্দিষ্ট ইভেন্ট আইডি থেকে নির্দিষ্ট গুরুত্বের ঘটনা পুনরুদ্ধার করার জন্য একটি ফাংশন।

একটি nl::Weave::TLV::TLVWriter , একটি গুরুত্বের ধরন এবং একটি ইভেন্ট আইডি দেওয়া হলে, ফাংশনটি নির্দিষ্ট ইভেন্টের পর থেকে নির্দিষ্ট গুরুত্বের ইভেন্ট আনবে। nl::Weave::TLV::TLVWriter বা লগে স্থান ফুরিয়ে না যাওয়া পর্যন্ত ফাংশনটি ইভেন্টগুলি আনা চালিয়ে যাবে৷ ফাংশন ইভেন্ট বাউন্ডারিতে ইভেন্ট লেখা বন্ধ করবে।

বিস্তারিত
পরামিতি
[in] ioWriter
ইভেন্ট স্টোরেজের জন্য ব্যবহার করার জন্য লেখক
[in] inImportance
ঘটনা গুরুত্ব আনয়ন করা
[in,out] ioEventID
ইনপুটে, আমরা যেটি আনছি তার ঠিক আগে ইভেন্টের আইডি। সমাপ্তির পরে, শেষ ইভেন্টের আইডি আনা হয়েছে।
রিটার্ন মান
WEAVE_END_OF_TLV
ফাংশনটি নির্দিষ্ট গুরুত্ব স্তরে উপলব্ধ লগ এন্ট্রির শেষে পৌঁছেছে
WEAVE_ERROR_NO_MEMORY
ioWriter-এ ফাংশনটির স্থান ফুরিয়ে গেছে, লগে আরও ইভেন্ট উপলব্ধ।
WEAVE_ERROR_BUFFER_TOO_SMALL
ioWriter-এ ফাংশনটির স্থান ফুরিয়ে গেছে, লগে আরও ইভেন্ট উপলব্ধ।

GetBytesWritten

uint32_t GetBytesWritten(
  void
) const 

এই লগটি চালু হওয়ার পর থেকে লিখিত বাইটের মোট সংখ্যা (সমস্ত ইভেন্ট গুরুত্ব জুড়ে) পান।

বিস্তারিত
রিটার্নস
লগে লেখা বাইটের সংখ্যা।

GetEventReader

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

ইন-মেমরি লগ বাফার পরীক্ষা করার জন্য একটি সহায়ক পদ্ধতি দরকারী।

বিস্তারিত
পরামিতি
[in,out] ioReader
পাঠকের একটি রেফারেন্স যা ইভেন্ট লগ থেকে ব্যাকিং স্টোরেজ দিয়ে শুরু করা হবে
[in] inImportance
পাঠকের জন্য শুরুর গুরুত্ব। মনে রাখবেন যে এই ক্ষেত্রে শুরুর গুরুত্ব কিছুটা কাউন্টার ইনটিউটিভ: আরও গুরুত্বপূর্ণ ইভেন্টগুলি তাদের উত্সর্গীকৃত বাফারগুলি ছাড়াও কম গুরুত্বপূর্ণ ইভেন্টগুলির সাথে বাফারগুলিকে ভাগ করে। ফলস্বরূপ, পাঠক সর্বনিম্ন ডেটা অতিক্রম করবে যখন ডিবাগ গুরুত্ব পাস হবে৷
রিটার্নস
WEAVE_NO_ERROR শর্তহীনভাবে।

GetFirstEventID

event_id_t GetFirstEventID(
  ImportanceType inImportance
)

একটি বিশেষ গুরুত্ব স্তরের জন্য বর্তমানে সংরক্ষিত প্রথম ইভেন্ট আইডি আনুন৷

বিস্তারিত
পরামিতি
inImportance
গুরুত্ব স্তর
রিটার্নস
event_id_t সেই ইভেন্ট গুরুত্বের জন্য প্রথম বর্তমানে সংরক্ষিত ইভেন্ট আইডি

GetLastEventID

event_id_t GetLastEventID(
  ImportanceType inImportance
)

একটি বিশেষ গুরুত্ব স্তরের জন্য অতি সম্প্রতি বিক্রি করা আইডি আনুন৷

বিস্তারিত
পরামিতি
inImportance
গুরুত্ব স্তর
রিটার্নস
event_id_t সেই ইভেন্ট গুরুত্বের জন্য সম্প্রতি বিক্রি করা ইভেন্ট আইডি

IsShutdownInProgress

bool IsShutdownInProgress(
  void
)

mShutdownInProgress পতাকা পরীক্ষা করুন।

বৈধ

bool IsValid(
  void
)

LoggingManagement দৃষ্টান্ত বৈধ কিনা IsValid ফেরত দেয়।

বিস্তারিত
রিটার্ন মান
true
উদাহরণটি বৈধ (উপযুক্ত ব্যাকিং স্টোর দিয়ে শুরু করা হয়েছে)
false
অন্যথায়

লোড ইভেন্ট

WEAVE_ERROR LoadEvents(
  TLVReader & reader
)

পূর্বে স্থায়ী উইভ ইভেন্ট লোড করুন।

লগ ইভেন্ট

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 হয়, তখন ইভেন্টটি অন্য কোনো ইভেন্টের সাথে সম্পর্কিত নয় বলে চিহ্নিত করা হয়,
  • জরুরী ডিফল্টভাবে অ-জরুরী।

বিস্তারিত
পরামিতি
[in] inSchema
স্কিমা সংজ্ঞায়িত গুরুত্ব, প্রোফাইল আইডি, এবং এই ইভেন্টের গঠন প্রকার।
[in] inEventWriter
আসলে ইভেন্ট ডেটা সিরিয়ালাইজ করার জন্য কলব্যাক
[in] inAppData
কলব্যাকের জন্য আবেদনের প্রসঙ্গ।
[in] inOptions
ইভেন্ট মেটাডেটা জন্য বিকল্প. NULL হতে পারে।
রিটার্নস
event_id_t ইভেন্ট আইডি যদি ইভেন্টটি লগে লেখা হয়, অন্যথায় 0।

লগিং ম্যানেজমেন্ট

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

লগিং ম্যানেজমেন্ট কনস্ট্রাক্টর।

LogStorageResources এর একটি অ্যারের সাথে LoggingManagement শুরু করুন। অ্যারেকে অবশ্যই প্রতিটি বৈধ গুরুত্ব স্তরের জন্য একটি সংস্থান সরবরাহ করতে হবে, অ্যারের উপাদানগুলিকে অবশ্যই গুরুত্বের সংখ্যাসূচক মান বৃদ্ধিতে হবে (এবং গুরুত্ব হ্রাসে); অ্যারের প্রথম উপাদানটি সবচেয়ে গুরুত্বপূর্ণ ইভেন্টগুলির জন্য বরাদ্দকৃত সংস্থানগুলির সাথে মিলে যায় এবং শেষ উপাদানটি সবচেয়ে কম গুরুত্বপূর্ণ ইভেন্টগুলির সাথে মিলে যায়৷

বিস্তারিত
পরামিতি
[in] inMgr
WeaveExchangeManager এই লগিং সাবসিস্টেমের সাথে ব্যবহার করা হবে
[in] inNumBuffers
inLogStorageResources অ্যারেতে উপাদানের সংখ্যা
[in] inLogStorageResources
প্রতিটি গুরুত্ব স্তরের জন্য LogStorageResources এর একটি অ্যারে।

লগিং ম্যানেজমেন্ট

 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- এর ডকুমেন্টেশন দেখুন।

বিস্তারিত
পরামিতি
[in] inImportance
গুরুত্ব স্তর
[in] inFetchCallback
বহিরাগত ইভেন্টগুলি আনতে নিবন্ধন করতে কলব্যাক করুন৷
[in] inNotifyCallback
ডেলিভারি বিজ্ঞপ্তির জন্য নিবন্ধন করতে কলব্যাক করুন
[in] inEvictedCallback
উচ্ছেদের বিজ্ঞপ্তির জন্য নিবন্ধন করতে কলব্যাক করুন
[in] inNumEvents
এই সেটে ইভেন্টের সংখ্যা
[out] outLastEventID
একটি ইভেন্ট_আইডি_টি নির্দেশক; বাহ্যিক ইভেন্টের সফল নিবন্ধন হলে ফাংশনটি বহিরাগত ইভেন্ট ব্লকের শেষ ইভেন্ট আইডির সাথে সম্পর্কিত ইভেন্ট আইডি সংরক্ষণ করবে। প্যারামিটারটি NULL হতে পারে।
রিটার্ন মান
WEAVE_ERROR_NO_MEMORY
যদি আর কোন কলব্যাক স্লট পাওয়া না যায়।
WEAVE_ERROR_INVALID_ARGUMENT
নাল ফাংশন কলব্যাক বা নিবন্ধন করার জন্য কোন ইভেন্ট নেই।
WEAVE_NO_ERROR
সাফল্যের উপর।

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- এর ডকুমেন্টেশন দেখুন।

বিস্তারিত
পরামিতি
[in] inImportance
গুরুত্ব স্তর
[in] inCallback
বহিরাগত ইভেন্টগুলি আনতে নিবন্ধন করতে কলব্যাক করুন৷
[in] inNotifyCallback
ডেলিভারি বিজ্ঞপ্তির জন্য নিবন্ধন করতে কলব্যাক করুন
[in] inNumEvents
এই সেটে ইভেন্টের সংখ্যা
[out] outLastEventID
একটি ইভেন্ট_আইডি_টি নির্দেশক; বাহ্যিক ইভেন্টের সফল নিবন্ধন হলে ফাংশনটি বহিরাগত ইভেন্ট ব্লকের শেষ ইভেন্ট আইডির সাথে সম্পর্কিত ইভেন্ট আইডি সংরক্ষণ করবে। প্যারামিটারটি NULL হতে পারে।
রিটার্ন মান
WEAVE_ERROR_NO_MEMORY
যদি আর কোন কলব্যাক স্লট পাওয়া না যায়।
WEAVE_ERROR_INVALID_ARGUMENT
নাল ফাংশন কলব্যাক বা নিবন্ধন করার জন্য কোন ইভেন্ট নেই।
WEAVE_NO_ERROR
সাফল্যের উপর।

RegisterEventCallbackFor Importance

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

বাহ্যিকভাবে সঞ্চিত ইভেন্টগুলির একটি সেট নিবন্ধনের জন্য সর্বজনীন API।

FetchExternalEventsFunct ফর্মের একটি কলব্যাক নিবন্ধন করুন। এই API-এর জন্য প্ল্যাটফর্মের নিবন্ধনের ইভেন্টের সংখ্যা জানতে হবে। অভ্যন্তরীণ কাজের জন্যও এই সংখ্যাটি ধ্রুবক হওয়া প্রয়োজন। যেহেতু এই API প্ল্যাটফর্মটিকে নির্দিষ্ট ইভেন্ট আইডি নিবন্ধন করার অনুমতি দেয় না, তাই এটি প্ল্যাটফর্মটিকে ইভেন্টের সঞ্চয়স্থান (অন্তত অনন্য ইভেন্ট আইডি সহ) থেকে আটকায়।

কলব্যাক কল করা হবে যখনই কোনো গ্রাহক রেঞ্জের মধ্যে ইভেন্ট আইডি আনার চেষ্টা করবে যতক্ষণ না পর্যন্ত এটি অনিবন্ধিত হয়।

ফাংশনের এই বৈকল্পিকটি ব্যবহার করা উচিত যখন বাহ্যিক প্রদানকারী একটি বিজ্ঞপ্তি চান না যখন বাহ্যিক ইভেন্টগুলি বিতরণ করা হয় বা যখন বাহ্যিক ইভেন্ট বস্তুটি উচ্ছেদ করা হয়।

ExternalEvents struct-এর পয়েন্টার ব্যর্থ হলে NULL হবে, অন্যথায় কলব্যাকে বরাদ্দ করা শুরু এবং শেষ ইভেন্ট আইডি দিয়ে পপুলেট করা হবে। এই পয়েন্টার ইভেন্ট সেট আনরেজিস্টার ব্যবহার করা উচিত.

কলব্যাককে কী প্রয়োগ করতে হবে তার বিশদ বিবরণের জন্য FetchExternalEventsFunct- এর ডকুমেন্টেশন দেখুন।

বিস্তারিত
পরামিতি
[in] inImportance
গুরুত্ব স্তর
[in] inCallback
বহিরাগত ইভেন্টগুলি আনতে নিবন্ধন করতে কলব্যাক করুন৷
[in] inNumEvents
এই সেটে ইভেন্টের সংখ্যা
[out] outLastEventID
একটি ইভেন্ট_আইডি_টি নির্দেশক; বাহ্যিক ইভেন্টের সফল নিবন্ধন হলে ফাংশনটি বহিরাগত ইভেন্ট ব্লকের শেষ ইভেন্ট আইডির সাথে সম্পর্কিত ইভেন্ট আইডি সংরক্ষণ করবে। প্যারামিটারটি NULL হতে পারে।
রিটার্ন মান
WEAVE_ERROR_NO_MEMORY
যদি আর কোন কলব্যাক স্লট পাওয়া না যায়।
WEAVE_ERROR_INVALID_ARGUMENT
নাল ফাংশন কলব্যাক বা নিবন্ধন করার জন্য কোন ইভেন্ট নেই।
WEAVE_NO_ERROR
সাফল্যের উপর।

সময়সূচী ফ্লাশআইফ প্রয়োজন

WEAVE_ERROR ScheduleFlushIfNeeded(
  bool inFlushRequested
)

একটি লগ অফলোড টাস্ক শিডিউল করুন।

ফাংশন একটি টাস্ক অফলোড প্রক্রিয়ার সময়সূচী নির্ধারণ করে কিনা তা নির্ধারণ করে, এবং যদি তাই হয়, তাহলে এটি LoggingFlushHandler কে Weave থ্রেডে অ্যাসিঙ্ক্রোনাসভাবে চালানোর জন্য নির্ধারিত করে।

একটি ফ্লাশ শিডিউল করার সিদ্ধান্ত তিনটি কারণের উপর নির্ভর করে:

বাফার ফ্লাশ করার জন্য একটি সুস্পষ্ট অনুরোধ

ইভেন্ট বাফারের অবস্থা এবং ইভেন্ট গ্রাহকদের সাথে এখনও সিঙ্ক্রোনাইজ করা ডেটার পরিমাণ

ইতিমধ্যে একটি মুলতুবি অনুরোধ ফ্লাশ অনুরোধ ইভেন্ট আছে কিনা।

একটি ফ্লাশ শিডিউল করার সুস্পষ্ট অনুরোধ একটি ইনপুট প্যারামিটারের মাধ্যমে পাস করা হয়।

স্বয়ংক্রিয় ফ্লাশ সাধারণত নির্ধারিত হয় যখন ইভেন্ট বাফারগুলিতে একটি নতুন অফলোড শুরু করার যোগ্যতার জন্য যথেষ্ট ডেটা থাকে। অফলোড কৌশলের উপর নির্ভর করে অতিরিক্ত ট্রিগার যেমন অফলোডের মধ্যে সর্বনিম্ন এবং সর্বোচ্চ সময়ও বিবেচনা করা যেতে পারে।

ইভেন্ট লগের মুলতুবি অবস্থা mUploadRequested ভেরিয়েবল দ্বারা নির্দেশিত হয়। যেহেতু এই ফাংশনটি একাধিক থ্রেড দ্বারা কল করা যেতে পারে, তাই mUploadRequested অবশ্যই পরমাণুভাবে পড়তে হবে এবং সেট করতে হবে, যাতে বিজ্ঞপ্তি পাঠানোর আগে একটি অপ্রয়োজনীয় LoggingFlushHandler নির্ধারণ করা এড়াতে হয়।

বিস্তারিত
পরামিতি
inRequestFlush
অভ্যন্তরীণ বাফার ব্যবস্থাপনা নীতি নির্বিশেষে ফ্লাশ নির্ধারণ করা উচিত কিনা তা নির্দেশ করে একটি বুলিয়ান মান।
রিটার্ন মান
WEAVE_ERROR_INCORRECT_STATE
লগিং ম্যানেজমেন্ট মডিউল সম্পূর্ণরূপে আরম্ভ করা হয়নি।
WEAVE_NO_ERROR
সাফল্যের উপর।

সিরিয়ালাইজ ইভেন্টস

WEAVE_ERROR SerializeEvents(
  TLVWriter & writer
)

সমস্ত গুরুত্বের প্রকারের ওয়েভ ইভেন্টকে সিরিয়ালাইজ করুন।

সরবরাহকৃত বাফারে WeaveCircularTLVBuffer এবং সংশ্লিষ্ট রাজ্যগুলির ইভেন্টগুলিকে সিরিয়ালাইজ করে।

এই পদ্ধতিটি এমন ডিভাইসগুলির দ্বারা ব্যবহার করার উদ্দেশ্যে করা হয়েছে যেগুলি ঘুমানোর সময় RAM ধরে রাখে না, যা তাদের ঘুমের আগে ইভেন্টগুলি চালিয়ে যেতে দেয় এবং এর ফলে ঘটনাগুলি হারানো রোধ করে

সেটবিডিএক্সআপলোডার

void SetBDXUploader(
  LogBDXUpload *inUploader
)

সেট এক্সচেঞ্জ ম্যানেজার

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

এই লগিং সাবসিস্টেমের সাথে ব্যবহার করার জন্য WeaveExchangeManager সেট করুন।

কিছু প্ল্যাটফর্মে, এটি উপরের CreateLoggingManagement() থেকে আলাদাভাবে ঘটতে হতে পারে।

বিস্তারিত
পরামিতি
[in] inMgr
WeaveExchangeManager এই লগিং সাবসিস্টেমের সাথে ব্যবহার করা হবে

সেটলগিংএন্ডপয়েন্ট

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

স্কিপ ইভেন্ট

void SkipEvent(
  EventLoadOutContext *aContext
)

একটি বরাদ্দকৃত ইভেন্ট আইডির সাথে সম্পর্কিত একটি ইভেন্ট লেখা এড়িয়ে যাওয়ার জন্য সহায়ক ফাংশন৷

বিস্তারিত
পরামিতি
[in,out] aContext
EventLoadOutContext , বাফারের জন্য রাষ্ট্রীয় তথ্য দিয়ে শুরু করা হয়েছে। এই প্রসঙ্গ ব্যবহার করে BlitEvent দ্বারা রাজ্য আপডেট এবং সংরক্ষণ করা হয়।

থ্রটললগার

void ThrottleLogger(
  void
)

ThrottleLogger কার্যকর লগিং স্তরকে উৎপাদন স্তরে উন্নীত করে৷

ইভেন্ট কলব্যাকের জন্য ইমপোর্টেন্স আনরেজিস্টার করুন

void UnregisterEventCallbackForImportance(
  ImportanceType inImportance,
  event_id_t inEventID
)

বাহ্যিকভাবে সঞ্চিত ইভেন্টের একটি সেট আনরেজিস্টার করার জন্য সর্বজনীন API।

কলব্যাক নিবন্ধনমুক্ত করা লগিং ম্যানেজমেন্টকে ইভেন্টের একটি সেটের জন্য কলব্যাক কল করতে বাধা দেবে। লগিং ম্যানেজমেন্ট গ্রাহকদের কাছে সেই ইভেন্ট আইডিগুলি আর পাঠাবে না।

উদ্দেশ্য হল একটি ফাংশন একটি সময়ে ইভেন্টের একটি সেট পরিবেশন করা। যদি একই ফাংশন ব্যবহার করে ইভেন্টের একটি নতুন সেট নিবন্ধিত করার প্রয়োজন হয়, কলব্যাকটি প্রথমে নিবন্ধনমুক্ত করা উচিত, তারপর আবার নিবন্ধিত করা উচিত। এর মানে ইভেন্টের আসল সেট আর আনা যাবে না।

এই ফাংশন নিঃশর্তভাবে সফল হয়. যদি কলব্যাকটি কখনও নিবন্ধিত না হয় বা ইতিমধ্যেই অনিবন্ধিত থাকে তবে এটি একটি নো-অপ।

বিস্তারিত
পরামিতি
[in] inImportance
গুরুত্ব স্তর
[in] inEventID
বহিরাগত ইভেন্ট ব্লকের যেকোনো ইভেন্টের সাথে সম্পর্কিত একটি ইভেন্ট আইডি নিবন্ধনহীন হতে হবে।

UnthrottleLogger

void UnthrottleLogger(
  void
)

UnthrottleLogger কার্যকর লগিং স্তরটিকে কনফিগার করা লগিং স্তরে পুনরুদ্ধার করে৷

পাবলিক স্ট্যাটিক ফাংশন

লগিং ম্যানেজমেন্ট তৈরি করুন

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

LoggingManagement অবজেক্ট তৈরি করুন এবং প্রদত্ত সংস্থানগুলির সাথে লগিং ম্যানেজমেন্ট সাবসিস্টেম শুরু করুন।

LogStorageResources এর একটি অ্যারের সাথে LoggingManagement শুরু করুন। অ্যারেকে অবশ্যই প্রতিটি বৈধ গুরুত্ব স্তরের জন্য একটি সংস্থান সরবরাহ করতে হবে, অ্যারের উপাদানগুলিকে অবশ্যই গুরুত্বের সংখ্যাসূচক মান বৃদ্ধিতে হবে (এবং গুরুত্ব হ্রাসে); অ্যারের প্রথম উপাদানটি সবচেয়ে গুরুত্বপূর্ণ ইভেন্টগুলির জন্য বরাদ্দকৃত সংস্থানগুলির সাথে মিলে যায় এবং শেষ উপাদানটি সবচেয়ে কম গুরুত্বপূর্ণ ইভেন্টগুলির সাথে মিলে যায়৷

বিস্তারিত
পরামিতি
[in] inMgr
WeaveExchangeManager এই লগিং সাবসিস্টেমের সাথে ব্যবহার করা হবে
[in] inNumBuffers
inLogStorageResources অ্যারেতে উপাদানের সংখ্যা
[in] inLogStorageResources
প্রতিটি গুরুত্ব স্তরের জন্য LogStorageResources এর একটি অ্যারে।

লগিং ম্যানেজমেন্ট ধ্বংস করুন

void DestroyLoggingManagement(
  void
)

শাটডাউন করার সময় আমাদের যে কোনো কাজ সম্পাদন করুন।

GetInstance

LoggingManagement & GetInstance(
  void
)