Google is committed to advancing racial equity for Black communities. See how.

এনএল :: তাঁত :: প্রোফাইল :: ডেটা ম্যানেজমেন্ট_ বর্তমান: লগিংম্যানেজমেন্ট

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

মেমরি ইভেন্ট লগগুলিতে পরিচালনার জন্য একটি শ্রেণি।

সারসংক্ষেপ

নির্মাণকারী এবং ধ্বংসকারী

LoggingManagement ( nl::Weave::WeaveExchangeManager *inMgr, size_t inNumBuffers, const LogStorageResources *const inLogStorageResources)
LoggingManagement কন্সট্রাকটর।
LoggingManagement (void)
LoggingManagement ডিফল্ট কন্সট্রাকটর।

পাবলিক ফাংশন

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
এমশুটডাউনআইপ্রোগ্রেস পতাকাটি পরীক্ষা করুন।
IsValid (void)
bool
IsValid আয় কিনা LoggingManagement উদাহরণস্বরূপ বৈধ।
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)
বাহ্যিকভাবে সঞ্চিত ইভেন্টগুলির একটি সেট নিবন্ধনের জন্য সর্বজনীন এপিআই
RegisterEventCallbackForImportance ( ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, NotifyExternalEventsDeliveredFunct inNotifyCallback, size_t inNumEvents, event_id_t *outLastEventID)
বাহ্যিকভাবে সঞ্চিত ইভেন্টগুলির একটি সেট নিবন্ধনের জন্য সর্বজনীন এপিআই
RegisterEventCallbackForImportance ( ImportanceType inImportance, FetchExternalEventsFunct inFetchCallback, size_t inNumEvents, event_id_t *outLastEventID)
বাহ্যিকভাবে সঞ্চিত ইভেন্টগুলির একটি সেট নিবন্ধনের জন্য সর্বজনীন এপিআই
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
থ্রটললগার কার্যকর লগিং স্তরকে উত্পাদন স্তরে উন্নীত করে।
UnregisterEventCallbackForImportance ( ImportanceType inImportance, event_id_t inEventID)
void
বাহ্যিকভাবে সঞ্চিত ইভেন্টগুলির একটি সেটটি নিবন্ধভুক্ত করার জন্য সর্বজনীন এপিআই
UnthrottleLogger (void)
void
আনথ্রটললগার কার্যকর লগিং স্তরটিকে কনফিগার করা লগিং স্তরে পুনরুদ্ধার করে।

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

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 , বাফার জন্য stateful তথ্য সমেত সক্রিয়া। এই প্রসঙ্গটি ব্যবহার করে রাজ্য আপডেট করা এবং ব্লিটইভেন্ট দ্বারা সংরক্ষণ করা হয়েছে।
[in] inSchema
স্কিমা গুরুত্ব, প্রোফাইল আইডি, এবং যারা এই ইভেন্টটির কাঠামো টাইপ সংজ্ঞা।
[in] inEventWriter
ইভেন্টের ডেটা সিরিয়াল করার জন্য কলব্যাক।
[in] inAppData
কলব্যাকের জন্য অ্যাপ্লিকেশন প্রসঙ্গ।
[in] inOptions
EventOptions টাইমস্ট্যাম্প এবং অন্যান্য ট্যাগ এই ইভেন্টে প্রাসঙ্গিক বর্ণনা।

বাতিল করা

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 এর :: বুনা :: TLV :: TLVWriter , একটি গুরুত্ব প্রকার, এবং এমন একটি ইভেন্টের আইডি, ফাংশন নিদিষ্ট ঘটনা যেহেতু নির্দিষ্ট গুরুত্ব ইভেন্ট আনতে হবে। ফাংশন আনার ঘটনা পর্যন্ত এটি আপনার স্থান রান আউট অব্যাহত থাকবেnl এর :: বুনা :: TLV :: TLVWriter -প্রতিষ্ঠান অনুসন্ধান। ফাংশন ইভেন্টের সীমানায় ইভেন্ট লেখাটি সমাপ্ত করবে।

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

গেটবাইটস রাইটেন

uint32_t GetBytesWritten(
  void
) const 

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

বিশদ
ফিরে আসে
লগতে লিখিত বাইট সংখ্যা।

GetEventReader

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

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

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

গেটফার্সএন্টআইডি

event_id_t GetFirstEventID(
  ImportanceType inImportance
)

বর্তমানে একটি নির্দিষ্ট গুরুত্ব স্তরের জন্য সঞ্চিত প্রথম ইভেন্টের আইডি আনুন।

বিশদ
পরামিতি
inImportance
গুরুত্ব স্তর
ফিরে আসে
ইভেন্ট_আইডি_টি বর্তমানে ইভেন্টের গুরুত্বের জন্য প্রথমে ইভেন্ট আইডি সঞ্চয় করে

GetLastEventID

event_id_t GetLastEventID(
  ImportanceType inImportance
)

একটি নির্দিষ্ট গুরুত্ব স্তরের জন্য সর্বাধিক সন্ধান পাওয়া আইডি আনুন।

বিশদ
পরামিতি
inImportance
গুরুত্ব স্তর
ফিরে আসে
ইভেন্ট_আইডি_এই ইভেন্টটির গুরুত্বের জন্য সর্বাধিক সবেদ্য ইভেন্ট আইডি

ইসশুটডাউনআইপ্রোগ্রেস

bool IsShutdownInProgress(
  void
)

এমশুটডাউনআইপ্রোগ্রেস পতাকাটি পরীক্ষা করুন।

বৈধ

bool IsValid(
  void
)

IsValid আয় কিনা LoggingManagement উদাহরণস্বরূপ বৈধ।

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

লোডএভেন্টস

WEAVE_ERROR LoadEvents(
  TLVReader & reader
)

লোড পূর্বে বুনা ইভেন্ট অব্যাহত।

লগইভেন্ট

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

কলব্যাকের মাধ্যমে অপশন সহ একটি ইভেন্ট লগ করুন।

ফাংশন একটি ইভেন্ট একটি হিসাবে প্রতিনিধিত্ব লগ EventWriterFunct এবং একটি অ্যাপ্লিকেশন-নির্দিষ্ট appData প্রসঙ্গ। ফাংশন ঘটনা মেটাডেটা লিখেছেন এবং কলের inEventWriter সঙ্গে একটিnl এর :: বুনা :: TLV :: TLVWriter রেফারেন্স এবং inAppData প্রসঙ্গ যাতে ব্যবহারকারী কোড ইভেন্ট লগ সরাসরি ইভেন্ট ডেটা নির্গত পারবেন না। ইভেন্ট লগিংয়ের এই ফর্মটি মেমরির খরচ কমিয়ে দেয়, কারণ ইভেন্টের ডেটাটি লক্ষ্য বাফারে সরাসরি সিরিয়ালযুক্ত হয়। ইভেন্ট ডেটা ধারণ প্রসঙ্গে ট্যাগ স্কিমা দ্বারা চিহ্নিত মধ্যে ব্যাখ্যা করা আবশ্যক inProfileID এবং inEventType । প্রথম উপাদানটির ট্যাগ উপেক্ষা করা হবে; ইভেন্ট লগিং সিস্টেম এটিকে ইভেন্ট ডেটা ট্যাগের সাথে প্রতিস্থাপন করবে।

যদি স্কিমা গুরুত্ব লগিং থ্রেশহোল্ড উল্লেখিত অতিক্রম করে ঘটনা লগ করা হয় LoggingConfiguration । অনুষ্ঠানের গুরুত্ব বর্তমান থ্রেশহোল্ড পূরণ করতে পারছে না, এটা অবনমিত হয়েছে এবং ফাংশন একটি ফেরৎ 0 ফলে ইভেন্ট ID হিসাবে।

আবাহন এই বৈকল্পিক কোনো সমন্বয় সেট করতে আহ্বানকারী অনুমতি দেয় EventOptions :

  • টাইমস্ট্যাম্প, যখন কলটির বিন্দুতে 0 বর্তমান সময়ের চেয়ে ডিফল্ট হয়,
  • ইভেন্ট উত্সের "মূল" বিভাগ (ইভেন্ট উত্স এবং বৈশিষ্ট্য আইডি); যদি নাল, এটি বর্তমান ডিভাইসে ডিফল্ট হয়। ইভেন্টটি কল করছে এমন ডিভাইসের সাথে সম্পর্কিত হিসাবে চিহ্নিত হয়েছে,
  • গোষ্ঠী ইভেন্ট আইডির জন্য সম্পর্কিত ইভেন্ট আইডি; সম্পর্কিত ইভেন্ট আইডি 0 হলে ইভেন্টটি অন্য কোনও ইভেন্টের সাথে সম্পর্কিত না হিসাবে চিহ্নিত করা হয়,
  • জরুরীতা; ডিফল্ট অ জরুরী।

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

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

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

LoggingManagement কন্সট্রাকটর।

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

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

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

 LoggingManagement(
  void
)

LoggingManagement ডিফল্ট কন্সট্রাকটর।

সংকলকটি সুখী করার জন্য প্রাথমিকভাবে সরবরাহ করা হয়েছে।

বিশদ
ফিরে আসে

মার্কশুটডাউনআইপ্রোগ্রেস

void MarkShutdownInProgress(
  void
)

সত্যায় mShutdownInProgress পতাকা সেট করুন।

বিজ্ঞপ্তিপ্রাপ্ত ডেলিভার্ড

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

নিবন্ধনকেন্দ্রিক্যালব্যাকফোর্ড ইমম্পোরেন্স

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

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

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

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

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

ইভেন্টগুলি সরবরাহ করা হলে, বহিরাগত সরবরাহকারীকে সেই সম্পর্কে প্রাপকের নোড আইডি এবং সেই প্রাপকের কাছে সরবরাহ করা শেষ ইভেন্টের আইডি সহ অবহিত করা হয়। দ্রষ্টব্য যে বহিরাগত সরবরাহকারী একই ইভেন্ট আইডির জন্য বেশ কয়েকবার অবহিত হতে পারে। হ্যান্ডলারের কোনও নির্দিষ্ট বিধিনিষেধ নেই, বিশেষত, হ্যান্ডলার বাহ্যিক ইভেন্ট আইডিগুলিকে নিবন্ধন করতে পারে।

যদি লগ বাফারগুলি থেকে বাহ্যিক ইভেন্ট অবজেক্টকে উচ্ছেদ করা হয় তবে বাহ্যিক ইভেন্টের অবজেক্টের অনুলিপি সহ বাহ্যিক সরবরাহকারীকে অবহিত করা হবে।

পয়েন্টার ExternalEvents struct হয় ব্যর্থতা উপর শূন্য হবে, অন্যথায় কলব্যাক নির্ধারিত শুরু এবং শেষের ঘটনা ID- র সঙ্গে জনবহুল করা হবে না। এই পয়েন্টারটি ইভেন্টের সেটটি নিবন্ধন করতে ব্যবহার করা উচিত।

জন্য ডকুমেন্টেশন দেখুন FetchExternalEventsFunct কি কলব্যাক বাস্তবায়ন করতে হবে বিস্তারিত।

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

নিবন্ধনকেন্দ্রিক্যালব্যাকফোর্ড ইমম্পোরেন্স

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

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

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

কলব্যাক কল করা হবে যখনই কোনও গ্রাহক রেজিস্ট্রেশনহীন না হওয়া অবধি যে কোনও সংখ্যক বার রেঞ্জের মধ্যে ইভেন্ট আইডি আনার চেষ্টা করবেন।

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

পয়েন্টার ExternalEvents struct হয় ব্যর্থতা উপর শূন্য হবে, অন্যথায় কলব্যাক নির্ধারিত শুরু এবং শেষের ঘটনা ID- র সঙ্গে জনবহুল করা হবে না। এই পয়েন্টারটি ইভেন্টের সেটটি নিবন্ধন করতে ব্যবহার করা উচিত।

জন্য ডকুমেন্টেশন দেখুন FetchExternalEventsFunct কি কলব্যাক বাস্তবায়ন করতে হবে বিস্তারিত।

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

নিবন্ধনকেন্দ্রিক্যালব্যাকফোর্ড ইমম্পোরেন্স

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

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

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

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

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

পয়েন্টার ExternalEvents struct হয় ব্যর্থতা উপর শূন্য হবে, অন্যথায় কলব্যাক নির্ধারিত শুরু এবং শেষের ঘটনা ID- র সঙ্গে জনবহুল করা হবে না। এই পয়েন্টারটি ইভেন্টের সেটটি নিবন্ধন করতে ব্যবহার করা উচিত।

জন্য ডকুমেন্টেশন দেখুন FetchExternalEventsFunct কি কলব্যাক বাস্তবায়ন করতে হবে বিস্তারিত।

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

শিডিউলফ্লুশফিডেড

WEAVE_ERROR ScheduleFlushIfNeeded(
  bool inFlushRequested
)

একটি লগ অফলোড কাজের সময়সূচী।

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

ফ্লাশের সময় নির্ধারণের সিদ্ধান্তটি তিনটি কারণের উপর নির্ভরশীল:

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

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

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

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

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

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

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

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

WEAVE_ERROR SerializeEvents(
  TLVWriter & writer
)

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

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

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

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

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
)

SkipEvent

void SkipEvent(
  EventLoadOutContext *aContext
)

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

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

থ্রোটললগার

void ThrottleLogger(
  void
)

থ্রটললগার কার্যকর লগিং স্তরকে উত্পাদন স্তরে উন্নীত করে।

নিবন্ধভুক্তEventCallbackForImportance

void UnregisterEventCallbackForImportance(
  ImportanceType inImportance,
  event_id_t inEventID
)

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

কলব্যাক নিবন্ধন মুক্ত করা হচ্ছে প্রতিরোধ করবে LoggingManagement ঘটনা একটি সেট জন্য কলব্যাক কলিং থেকে। LoggingManagement আর গ্রাহকদের জন্য ঐ ঘটনা ID- র পাঠাবে।

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

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

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

আনথ্রোটললগার

void UnthrottleLogger(
  void
)

আনথ্রটললগার কার্যকর লগিং স্তরটিকে কনফিগার করা লগিং স্তরে পুনরুদ্ধার করে।

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

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

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

তৈরি করুন LoggingManagement বস্তুর এবং প্রদত্ত সম্পদ সঙ্গে লগিং ব্যবস্থাপনা সাব-সিস্টেম আরম্ভ।

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

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

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

void DestroyLoggingManagement(
  void
)

শাটডাউনে আমাদের যে কোনও ক্রিয়া দরকার।

গেটইনস্ট্যান্স

LoggingManagement & GetInstance(
  void
)