nl:: Weave:: Profiles:: DataManagement_Current
इस नेमस्पेस में Weave डेटा मैनेजमेंट (WDM) प्रोफ़ाइल के लिए वे सभी इंटरफ़ेस शामिल हैं जो फ़िलहाल प्रोडक्शन के लिए काम करते हैं.
खास जानकारी
टाइपडीफ़ |
|
---|---|
CommandFlags
|
typedef |
DataVersion
|
typedefuint64_t
|
EventProcessor
|
typedefvoid *
|
EventWriterFunct)(nl::Weave::TLV::TLVWriter &ioWriter, uint8_t inDataTag, void *appData)
|
typedef ऐसा फ़ंक्शन जो इवेंट लॉग करने वाले सबसिस्टम के लिए, eventData एलिमेंट उपलब्ध कराता है. |
FetchExternalEventsFunct)(EventLoadOutContext *aContext)
|
typedef इवेंट डेटा फ़ेच करने वाले प्लैटफ़ॉर्म कॉलबैक के लिए फ़ंक्शन प्रोटोटाइप. |
GenericTraitSinkCatalog
|
typedef |
GenericTraitSourceCatalog
|
typedef |
ImportanceType
|
typedef लॉग एंट्री की अहमियत. |
IteratorCallback)(void *aTraitInstance, TraitDataHandle aHandle, void *aContext)
|
typedefvoid(*
Trait हैंडल इटरेटर. |
LoggingBufferHandler)(void *inAppState, PacketBuffer *inBuffer)
|
typedef |
NotifyExternalEventsDeliveredFunct)(ExternalEvents *inEv, event_id_t inLastDeliveredEventID, uint64_t inRecipientNodeID)
|
typedefvoid(*
कॉलबैक के लिए फ़ंक्शन प्रोटोटाइप तब शुरू होता है, जब रिमोट सदस्य को बाहरी इवेंट डिलीवर किए जाते हैं. |
NotifyExternalEventsEvictedFunct)(ExternalEvents *inEv)
|
typedefvoid(*
कॉलबैक के लिए फ़ंक्शन प्रोटोटाइप तब शुरू किया जाता है, जब बाहरी इवेंट को बफ़र से निकाला जाता है. |
PropertyDictionaryKey
|
typedefuint16_t
|
PropertyPathHandle
|
typedefuint32_t
प्रॉपर्टीPathHandle, trait इंस्टेंस के रूट के मुकाबले किसी WDM पाथ का 32-बिट वाला यूनीक नंबर वाला हैश है. |
PropertySchemaHandle
|
typedefuint16_t
|
SchemaVersion
|
typedefuint16_t
|
SingleResourceSinkTraitCatalog
|
typedef |
SingleResourceSourceTraitCatalog
|
typedef |
TimestampType
|
typedef टाइमस्टैंप की मान्यता और उसका टाइप, EventOptions में शामिल किया गया है. |
TraitDataHandle
|
typedefuint16_t
|
duration_t
|
nl::Weave::Profiles::DataManagement_Current::duration_tuint32_t
अवधि की जानकारी देने के लिए, मिलीसेकंड में इस्तेमाल किया जाने वाला टाइप. |
event_id_t
|
nl::Weave::Profiles::DataManagement_Current::event_id_tuint32_t
इवेंट आईडी का टाइप. |
timestamp_t
|
nl::Weave::Profiles::DataManagement_Current::timestamp_tuint32_t
टाइमस्टैंप की जानकारी देने के लिए, मिलीसेकंड में इस्तेमाल किया जाने वाला टाइप. |
utc_timestamp_t
|
nl::Weave::Profiles::DataManagement_Current::utc_timestamp_tuint64_t
यूटीसी टाइमस्टैंप की जानकारी देने के लिए, मिलीसेकंड में इस्तेमाल किया जाने वाला टाइप. |
वैरिएबल |
|
---|---|
sInstance
|
|
sLogFileName = "topazlog"[]
|
char
|
फ़ंक्शन |
|
---|---|
BdxErrorHandler(nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer, WEAVE_ERROR aErrorCode)
|
void
|
BdxGetBlockHandler(nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aIsLastBlock)
|
void
|
BdxRejectHandler(nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer, nl::Weave::Profiles::StatusReporting::StatusReport *aReport)
|
void
|
BdxSendAcceptHandler(nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer, nl::Weave::Profiles::BulkDataTransfer::SendAccept *aSendAcceptMsg)
|
|
BdxXferDoneHandler(nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer)
|
void
|
BdxXferErrorHandler(nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer, nl::Weave::Profiles::StatusReporting::StatusReport *aXferError)
|
void
|
CreatePropertyPathHandle(PropertySchemaHandle aPropertyPathSchemaId, PropertyDictionaryKey aPropertyPathDictionaryKey)
|
|
EventWriterTLVCopy(TLVWriter & ioWriter, uint8_t inDataTag, void *appData)
|
ऐसा हेल्पर फ़ंक्शन जो पहले से क्रम से लगाए गए इवेंट डेटा एलिमेंट को इवेंट बफ़र में बदलता है.
|
GetPropertyDictionaryKey(PropertyPathHandle aHandle)
|
PropertyDictionaryKey
|
GetPropertySchemaHandle(PropertyPathHandle aHandle)
|
PropertySchemaHandle
|
IsNullPropertyPathHandle(PropertyPathHandle aHandle)
|
bool
|
IsRootPropertyPathHandle(PropertyPathHandle aHandle)
|
bool
|
IsVersionNewer(const DataVersion & aVersion, const DataVersion & aReference)
|
bool
यह वर्शन की तुलना करने के लिए, एल्गोरिदम को ऑप्टिमाइज़ किया गया है.
|
IsVersionNewerOrEqual(const DataVersion & aVersion, const DataVersion & aReference)
|
bool
|
Locate(TraitDataHandle aTraitDataHandle, const TraitCatalogBase< TraitDataSink > *aDataSinkCatalog)
|
यूटिलिटी फ़ंक्शन, जिसे TraitDataSink कैटलॉग में TraitUpdatableDataSink मिलता है.
|
LogEvent(const EventSchema & inSchema, nl::Weave::TLV::TLVReader & inData)
|
पहले से क्रम में लगाए गए फ़ॉर्म से इवेंट लॉग करें.
|
LogEvent(const EventSchema & inSchema, nl::Weave::TLV::TLVReader & inData, const EventOptions *inOptions)
|
पहले से क्रम के मुताबिक बनाए गए फ़ॉर्म से इवेंट लॉग करें. इसमें ज़्यादा विकल्प शामिल हैं.
|
LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData)
|
कॉलबैक के ज़रिए इवेंट लॉग करें.
|
LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
|
कॉलबैक के ज़रिए, विकल्पों के साथ इवेंट लॉग करें.
|
LogFreeform(ImportanceType inImportance, const char *inFormat, ...)
|
LogFreeform, डिफ़ॉल्ट इवेंट स्ट्रीम से एक फ़्रीफ़ॉर्म स्ट्रिंग देता है.
|
LookForElementWithTag(const nl::Weave::TLV::TLVReader & aSrcReader, const uint64_t aTagInApiForm, nl::Weave::TLV::TLVReader *apDstReader)
|
|
PlainTextWriter(TLVWriter & ioWriter, uint8_t inDataTag, void *appData)
|
यह एक हेल्पर फ़ंक्शन है, जो डीबग इवेंट के तौर पर फ़्रीफ़ॉर्म टेक्स्ट उत्सर्जित करने में मदद करता है.
|
PlainTextWriter(::nl::Weave::TLV::TLVWriter & ioWriter, uint8_t inDataTag, void *appData)
|
यह एक हेल्पर फ़ंक्शन है, जो डीबग इवेंट के तौर पर फ़्रीफ़ॉर्म टेक्स्ट उत्सर्जित करने में मदद करता है.
|
operator!=(const ResourceIdentifier & lhs, const ResourceIdentifier & rhs)
|
bool
|
operator==(const ResourceIdentifier & lhs, const ResourceIdentifier & rhs)
|
bool
|
यूनियन |
|
---|---|
nl:: |
वह यूनियन जो ऐप्लिकेशन सेट सिस्टम या यूटीसी टाइमस्टैंप देता है. |
गिनती
@100
@100
kNestDebug_StringLogEntryEvent के लिए टैग.
प्रॉपर्टी | |
---|---|
kTag_Message
|
इस स्ट्रिंग में असल डीबग मैसेज होता है. |
kTag_Region
|
बिना साइन वाला 32-बिट, जो लॉग के क्षेत्र को दिखाता है. उदाहरण के लिए, वह मॉड्यूल जिससे लॉग मैसेज जुड़ा है. |
@101
@101
kNestDebug_TokenizedLogEntryEvent के लिए टैग.
प्रॉपर्टी | |
---|---|
kTag_Args
|
टोकन मैसेज के साथ भेजे जाने वाले आर्ग्युमेंट का कलेक्शन. |
kTag_Token
|
टोकन से जुड़ा 32-बिट बिना साइन वाला मान. |
@102
@102
स्थायी इवेंट के लिए टैग.
@104
@104
WDM प्रोफ़ाइल मैसेज के टाइप.
इन वैल्यू के बारे में डेटा मैनेजमेंट स्पेसिफ़िकेशन में बताया गया है.
@105
@105
WDM के लिए खास स्टेटस कोड.
@147
@147
@95
@95
लॉगिंग सेटिंग टैग.
प्रॉपर्टी | |
---|---|
kTag_CurrentImportance
|
डेटा को लॉग करने की मौजूदा अहमियत, वैल्यू का टाइपकॉल-टाइप इंपोर्ट है. |
kTag_ImportanceExpiration
|
समय, यूटीसी सेकंड में जब बेहतर लॉग इन करने की मौजूदा सेटिंग डिफ़ॉल्ट वैल्यू पर वापस आती हैं. |
kTag_LoggingDestination
|
लॉग अपलोड का डेस्टिनेशन दिखाने वाला यूआरएल. |
kTag_MaximumLogUploadInterval
|
अपने-आप ट्रिगर हुए लॉग को अपलोड करने की कोशिशों के बीच, ज़्यादा से ज़्यादा समय (सेकंड में). |
kTag_MinimumLogUploadInterval
|
अपने-आप जनरेट हुए लॉग को अपलोड करने की कोशिशों के बीच, कम से कम समय (सेकंड में). |
kTag_TraitLoggingImportance
|
एक वैकल्पिक कलेक्शन, चुनिंदा प्रोफ़ाइल को बड़े लॉग लेवल पर मैप करता है. कलेक्शन का हर एलिमेंट (profile,path,loggingImportance) का रूप ले लेता है, ताकि सिस्टम के सबसेट से चुनिंदा तरीके से लॉगिंग को बढ़ाया जा सके. प्रोफ़ाइल को लॉग करने की बेहतर प्राथमिकता सिर्फ़ तब अहम होती है, जब डेटा को लॉग करने की प्राथमिकता, मौजूदा अहमियत से ज़्यादा हो. साथ ही, उसकी समयसीमा खत्म होने का मौजूदा समय जितना ज़रूरी हो. |
@96
@96
डेटा लॉग करने की सुविधाओं के लिए टैग.
प्रॉपर्टी | |
---|---|
kTag_LogBufferingCapacity
|
लॉग बफ़र होने की क्षमता के बारे में 32-बिट का साइन न किया गया पूर्णांक, जो केबी में दिखता है. |
kTag_LoggingVolume
|
बिना साइन वाला 32-बिट पूर्णांक, जो केबी/दिन में लॉगिन की अनुमानित संख्या के बारे में बताता है. |
kTag_SupportedLogTransports
|
लॉग ट्रांसपोर्ट करने के साथ काम करने वाले तरीकों की कैटगरी. |
kTag_SupportsNonVolatileStorage
|
इस बूलियन से पता चलता है कि डिवाइस पर नॉनवोलाटाइल लॉग स्टोरेज काम करता है या नहीं. |
kTag_SupportsPerTraitVerbosity
|
इस बूलियन से पता चलता है कि डिवाइस पर हर एट्रिब्यूट की वर्बोसिटी की सेटिंग काम करती है या नहीं. |
kTag_SupportsStreaming
|
इस बूलियन से पता चलता है कि डिवाइस पर स्ट्रीमिंग लॉग काम करते हैं या नहीं. |
@97
@97
इवेंट मेटाडेटा के लिए टैग.
टैग वैल्यू के सिमेंटिक्स के लिए, इवेंट के डिज़ाइन से जुड़ी जानकारी देखें.
प्रॉपर्टी | |
---|---|
kTag_EventData
|
ज़रूरी नहीं. इवेंट डेटा. खाली होने पर, डिफ़ॉल्ट तौर पर खाली स्ट्रक्चर दिखता है. |
kTag_EventDeltaSystemTime
|
WDM आंतरिक टैग, एन्कोडिंग में पिछले इवेंट से समय का अंतर. |
kTag_EventDeltaUTCTime
|
WDM आंतरिक टैग, एन्कोडिंग में पिछले इवेंट से समय का अंतर. |
kTag_EventID
|
इवेंट का क्रम नंबर, जिसे 64-बिट की बिना साइन की संख्या के तौर पर दिखाया जाता है. क्रम में होना चाहिए, क्रम में होने वाला जंप, इवेंट गैप को दिखाता है. |
kTag_EventImportance
|
इवेंट की अहमियत. |
kTag_EventResourceID
|
ज़रूरी नहीं. मान उस संसाधन का आईडी है जिससे इवेंट जुड़ा है. अगर वैल्यू छोड़ी जाती है, तो यह kTag_EventSource की वैल्यू के बराबर होती है |
kTag_EventSource
|
इवेंट जनरेट करने वाले डिवाइस का NodeID. |
kTag_EventSystemTimestamp
|
ज़रूरी नहीं. इवेंट का सिस्टम टाइमस्टैंप, मिलीसेकंड में. |
kTag_EventTraitInstanceID
|
ज़रूरी नहीं, उस Trait का इंस्टेंस जिससे इवेंट जनरेट हुआ. |
kTag_EventTraitProfileID
|
ज़रूरी है. बिना हस्ताक्षर वाला 32-बिट पूर्णांक, जो trait के ProfileID के बराबर है. |
kTag_EventType
|
ज़रूरी है. साइन नहीं किया गया 16-बिट का पूर्णांक, जो इस तरह के इवेंट के लिए wdl.event.id के बराबर है. |
kTag_EventUTCTimestamp
|
ज़रूरी नहीं. इवेंट का यूटीसी टाइमस्टैंप, मिलीसेकंड में. |
kTag_ExternalEventStructure
|
बाहरी इवेंट के लिए अंदरूनी टैग. कभी भी वायर पर ट्रांसमिट नहीं करें, इसका इस्तेमाल Weave लाइब्रेरी के बाहर कभी नहीं किया जाना चाहिए. |
kTag_RelatedEventID
|
ज़रूरी नहीं. उस इवेंट का आईडी जिससे यह इवेंट जुड़ा है. अगर इसे छोड़ा जाता है, तो वैल्यू, kTag_EventID की वैल्यू के बराबर होती है. |
kTag_RelatedEventImportance
|
ज़रूरी नहीं. मिलते-जुलते इवेंट की अहमियत. अगर इसे छोड़ा जाता है, तो वैल्यू kTag_EventImportance के मान के बराबर होती है. |
@98
@98
डीबग trait के लिए प्रोफ़ाइल की परिभाषाएं.
@99
@99
Nest Debug trait के लिए इवेंट के टाइप.
प्रॉपर्टी | |
---|---|
kNestDebug_StringLogEntryEvent
|
फ़्रीफ़ॉर्म स्ट्रिंग डीबग मैसेज के लिए इवेंट. |
kNestDebug_TokenizedHeaderEntryEvent
|
टोकन के तौर पर मौजूद हेडर की जानकारी देने के लिए इवेंट. |
kNestDebug_TokenizedLogEntryEvent
|
टोकन के तौर पर मौजूद डीबग मैसेज के लिए इवेंट. |
CommandFlags
CommandFlags
प्रॉपर्टी | |
---|---|
kCommandFlag_ActionTimeValid
|
कार्रवाई का समय मान्य होने पर सेट करें. |
kCommandFlag_ExpiryTimeValid
|
समयसीमा खत्म होने की तारीख मान्य होने पर सेट करें. |
kCommandFlag_InitiationTimeValid
|
इनिट समय के मान्य होने पर सेट करें. |
kCommandFlag_IsOneWay
|
सेट करें कि निर्देश एकतरफ़ा हों. |
kCommandFlag_MustBeVersionValid
|
वर्शन फ़ील्ड के मान्य होने पर सेट करें. |
ImportanceType
ImportanceType
लॉग एंट्री की अहमियत.
महत्व का इस्तेमाल, लॉग में इवेंट के असल में एमिशन होने से पहले ही, उन्हें फ़िल्टर करने के तरीके के तौर पर किया जाता है. इवेंट के लॉग में जाने के बाद, हम उसे लॉग से हमेशा के लिए मिटाने का कोई प्रावधान नहीं रखते हैं. अहमियत के लेवल पर, इवेंट के स्टोरेज को प्राथमिकता दी जाती है. अगर किसी फ़ुल बफ़र में बहुत ज़्यादा ज़रूरी इवेंट जोड़ा जाता है, तो उसे जगह देने के लिए इवेंट को अहमियत (और उम्र) के क्रम में हटा दिया जाता है. इसलिए, अहमियत के लेवल की वैल्यू सिर्फ़ एक जैसी होती है. अगर सिस्टम, अहमियत के सिर्फ़ एक लेवल का इस्तेमाल कर रहा है, तो इवेंट को सिर्फ़ उम्र के हिसाब से हटाया जाता है. जैसे, रिंग बफ़र.
प्रॉपर्टी | |
---|---|
Debug
|
डीबग की अहमियत, सिस्टम के डेवलपर की दिलचस्पी वाली लॉग एंट्री है. इसका इस्तेमाल मुख्य रूप से डेवलपमेंट के दौरान किया जाता है. डीबग के महत्व के लॉग को, सीमित किए गए डिवाइसों के बैंडविड्थ या पावर बजट में शामिल नहीं किया जाता. इस वजह से, उनका इस्तेमाल प्रोडक्शन सिस्टम में सीमित समय में किया जाना चाहिए. |
Info
|
'ज़रूरी जानकारी' की मदद से उन लॉग एंट्री का पता चलता है जो मौजूदा सिस्टम के बारे में ज़्यादा अहम जानकारी और गड़बड़ी की जानकारी देती हैं. जानकारी को लॉग करने के लेवल का इस्तेमाल, प्रोडक्शन सिस्टम में लंबे समय तक किया जा सकता है या फ़ील्ड ट्रायल में डिफ़ॉल्ट लॉग लेवल के तौर पर इस्तेमाल किया जा सकता है. सीमित ऐक्सेस वाले डिवाइसों पर, जानकारी के लेवल के साथ लॉग की गई एंट्री को बैंडविड्थ और मेमोरी बजट में शामिल किया जाना चाहिए, लेकिन पावर बजट में नहीं. |
Production
|
प्रोडक्शन वैल्यू से उन लॉग एंट्री का पता चलता है जिनका इस्तेमाल Nest नेटवर्क की निगरानी और रखरखाव के लिए किया जाता है. सीमित ऐक्सेस वाले डिवाइसों पर, प्रोडक्शन अहमियत के साथ लॉग की गई एंट्री को पावर और मेमोरी बजट में गिना जाना चाहिए. ऐसा इसलिए, क्योंकि यह उम्मीद की जाती है कि डिवाइस से हमेशा लॉग और ऑफ़लोड किए जाते हैं. |
ProductionCritical
|
प्रोडक्शन की अहमियत उन इवेंट को दिखाती है जिनमें नुकसान होने का सीधा असर ग्राहकों को दी जाने वाली सुविधाओं पर पड़ेगा. ऐप्लिकेशन, प्रोडक्शन से जुड़े गंभीर इवेंट में आई कमी का इस्तेमाल सिस्टम की गड़बड़ी दिखाने के लिए कर सकते हैं. सीमित ऐक्सेस वाले डिवाइसों पर, प्रोडक्शन के लिए ज़रूरी अहमियत वाली एंट्री को पावर और मेमोरी बजट में गिना जाना चाहिए. ऐसा इसलिए, क्योंकि डिवाइस से हमेशा इन्हें लॉग और ऑफ़लोड किया जाता है. |
LoggingManagementStates
LoggingManagementStates
प्रॉपर्टी | |
---|---|
kLoggingManagementState_Holdoff
|
लॉग ऑफ़लोड पूरा हो गया है; होल्डऑफ़ की समयसीमा खत्म होने तक हम लॉग को फिर से शुरू नहीं करते. |
kLoggingManagementState_Idle
|
कोई लॉग ऑफ़लोड नहीं है. लॉग ऑफ़लोड बिना किसी रुकावट के शुरू हो सकता है. |
kLoggingManagementState_InProgress
|
लॉग ऑफ़लोड हो रहा है. |
kLoggingManagementState_Shutdown
|
कोई भी लॉगिंग कार्रवाई करने में सक्षम नहीं है. |
टाइपडीफ़
CommandFlags
enum nl::Weave::Profiles::DataManagement_Current::CommandFlags CommandFlags
DataVersion
uint64_t DataVersion
EventProcessor
void * EventProcessor
EventWriterFunct
WEAVE_ERROR(* EventWriterFunct)(nl::Weave::TLV::TLVWriter &ioWriter, uint8_t inDataTag, void *appData)
ऐसा फ़ंक्शन जो इवेंट लॉग करने वाले सबसिस्टम के लिए, eventData एलिमेंट उपलब्ध कराता है.
इस तरह के फ़ंक्शन से इवेंट लॉग करने वाले सबसिस्टम के लिए, eventData एलिमेंट मिलने की उम्मीद होती है. जब इवेंट सबसिस्टम सभी ज़रूरी इवेंट मेटाडेटा जनरेट कर लेता है, तब इस तरह के फ़ंक्शन को कॉल किया जाता है. फ़ंक्शन को nl::Weave::TLV::TLVWriter ऑब्जेक्ट के साथ कॉल किया जाता है. इस ऑब्जेक्ट में, kTag_EventData टैग किया गया सिर्फ़ एक TLV एलिमेंट उत्सर्जित करेगा. उस एलिमेंट की वैल्यू, इवेंट डेटा वाला स्ट्रक्चर होना चाहिए. इवेंट डेटा को संदर्भ टैग का इस्तेमाल करके स्ट्रक्चर्ड किया जाना चाहिए.
जानकारी | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
रिटर्न वैल्यू |
|
PlainTextWriter
EventWriterTLV कॉपी
FetchExternalEventsFunct
WEAVE_ERROR(* FetchExternalEventsFunct)(EventLoadOutContext *aContext)
इवेंट डेटा फ़ेच करने वाले प्लैटफ़ॉर्म कॉलबैक के लिए फ़ंक्शन प्रोटोटाइप.
फे़च इवेंट की तरह, फ़ेच करने का यह फ़ंक्शन, ExternalEvents.mLastEventID के ज़रिए EventLoadOutContext.mStartEventID से सभी इवेंट दिखाता है.
कॉन्टेक्स्ट पॉइंटर, फ़ीड एक्सटर्नल इवेंट्सकॉन्टेक्स्ट टाइप का होता है. इसमें TLV फ़ॉर्मैट के लिए कुछ हेल्पर वैरिएबल के साथ, EventLoadOutContext शामिल है. इसमें कॉलबैक के रजिस्ट्रेशन पर बनाए गए ExternalEvents स्ट्रक्चर के लिए एक पॉइंटर भी शामिल है. यह कॉलबैक के लिए इवेंट आईडी की रेंज तय करता है.
फ़ंक्शन से वापस आने पर, EventLoadOutContext.mCurrentEventID को वह पहला इवेंट आईडी दिखाना चाहिए जो TLV बफ़र में नहीं लिखा गया है. प्लैटफ़ॉर्म को इवेंट हेडर और डेटा को, EventLogging प्रोटोकॉल में तय किए गए, सही फ़ॉर्मैट में TLV राइटर को लिखा जाना चाहिए. साथ ही, प्लैटफ़ॉर्म पर अलग-अलग इवेंट और टाइमस्टैंप भी मौजूद होने चाहिए.
टीएलवी की सभी गड़बड़ियां, बड़े लेवल पर लागू की जानी चाहिए. उदाहरण के लिए, बफ़र में जगह खत्म होने पर एक भेजा गया मैसेज ट्रिगर होगा और इसके बाद कॉलबैक को एक और कॉल आएगा, जिसमें से जो भी इवेंट आईडी बचेगा.
जानकारी | |||||||||
---|---|---|---|---|---|---|---|---|---|
रिटर्न वैल्यू |
|
GenericTraitSinkCatalog
GenericTraitCatalogImpl< TraitDataSink > GenericTraitSinkCatalog
GenericTraitSourceCatalog
GenericTraitCatalogImpl< TraitDataSource > GenericTraitSourceCatalog
ImportanceType
enum nl::Weave::Profiles::DataManagement_Current::ImportanceType ImportanceType
लॉग एंट्री की अहमियत.
महत्व का इस्तेमाल, लॉग में इवेंट के असल में एमिशन होने से पहले ही, उन्हें फ़िल्टर करने के तरीके के तौर पर किया जाता है. इवेंट के लॉग में जाने के बाद, हम उसे लॉग से हमेशा के लिए मिटाने का कोई प्रावधान नहीं रखते हैं. अहमियत के लेवल पर, इवेंट के स्टोरेज को प्राथमिकता दी जाती है. अगर किसी फ़ुल बफ़र में बहुत ज़्यादा ज़रूरी इवेंट जोड़ा जाता है, तो उसे जगह देने के लिए इवेंट को अहमियत (और उम्र) के क्रम में हटा दिया जाता है. इसलिए, अहमियत के लेवल की वैल्यू सिर्फ़ एक जैसी होती है. अगर सिस्टम, अहमियत के सिर्फ़ एक लेवल का इस्तेमाल कर रहा है, तो इवेंट को सिर्फ़ उम्र के हिसाब से हटाया जाता है. जैसे, रिंग बफ़र.
IteratorCallback
void(* IteratorCallback)(void *aTraitInstance, TraitDataHandle aHandle, void *aContext)
Trait हैंडल इटरेटर.
LoggingBufferHandler
WEAVE_ERROR(* LoggingBufferHandler)(void *inAppState, PacketBuffer *inBuffer)
NotifyExternalEventsDeliveredFunct
void(* NotifyExternalEventsDeliveredFunct)(ExternalEvents *inEv, event_id_t inLastDeliveredEventID, uint64_t inRecipientNodeID)
कॉलबैक के लिए फ़ंक्शन प्रोटोटाइप तब शुरू होता है, जब रिमोट सदस्य को बाहरी इवेंट डिलीवर किए जाते हैं.
जब किसी दूसरी जगह मौजूद सदस्य को बाहरी इवेंट डिलीवर किए जाते हैं, तब इंजन, इवेंट की सेवा देने वाली बाहरी कंपनी को इसकी सूचना देता है. कॉलबैक में, डिलीवर किए गए आखिरी आईडी का इवेंट और इवेंट पाने वाले सदस्य का आईडी शामिल होता है.
जानकारी | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
NotifyExternalEventsEvictedFunct
void(* NotifyExternalEventsEvictedFunct)(ExternalEvents *inEv)
कॉलबैक के लिए फ़ंक्शन प्रोटोटाइप तब शुरू किया जाता है, जब बाहरी इवेंट को बफ़र से निकाला जाता है.
जब बाहरी इवेंट ऑब्जेक्ट को आउटबाउंड मैसेज बफ़र से हटाया जाता है, तो इंजन इवेंट की सेवा देने वाली बाहरी कंपनी को इसकी सूचना देता है. कॉलबैक में, एक्सटर्नल इवेंट शामिल होता है.
जानकारी | |||
---|---|---|---|
पैरामीटर |
|
PropertyDictionaryKey
uint16_t PropertyDictionaryKey
PropertyPathHandle
uint32_t PropertyPathHandle
प्रॉपर्टीPathHandle, trait इंस्टेंस के रूट के मुकाबले किसी WDM पाथ का 32-बिट वाला यूनीक नंबर वाला हैश है.
इसके दो हिस्से होते हैं:
- कम 16-बिट की संख्या, जो स्कीमा के स्टैटिक हिस्से से मैप होती है.
- जहां निचले 16-बिट किसी डिक्शनरी एलिमेंट के अंदर के पाथ को रेफ़र करते हैं, वहां ऊपरी 16-बिट नंबर मौजूद होता है, जो उस एलिमेंट से जुड़ी डिक्शनरी कुंजी दिखाता है. अगर नीचे के 16-बिट किसी नॉन डिक्शनरी एलिमेंट को रेफ़र करते हैं, तो ऊपरी 16-बिट की वैल्यू 0 होनी चाहिए.
कुछ खास बातें:
- हर Trait का अपना प्रॉपर्टी पाथ होता है, जहां हैंडल स्पेस होता है.
- हर यूनीक WDM सब-पाथ पाथ में एक यूनीक प्रॉपर्टीPathHandle होगा.
- प्रॉपर्टीPathHandles, आईडीएल के ट्रैट कंपाइलर के ज़रिए अपने-आप जनरेट होता है (अभी के लिए हाथ से किया जाता है). साथ ही, इसे संबंधित Trait की हेडर फ़ाइल में एन्यूमरंट सूची के तौर पर दिखाया जाता है.
- इस कंस्ट्रक्शन के साथ, ऐप्लिकेशन लॉजिक को कभी भी सीधे WDM पाथ से निपटना नहीं पड़ता है. इसके बजाय, WDM के साथ उनकी बातचीत खास तौर पर इन हैंडल के ज़रिए होती है.
- खास मतलब वाले पाथ हैंडल के लिए दो रिज़र्व वैल्यू हैं:
- 0 का मतलब है कि 'NULL' हैंडल है
- 1, ऐसे हैंडल के बारे में बताता है जो Trait इंस्टेंस के रूट की ओर इशारा करता है.
PropertySchemaHandle
uint16_t PropertySchemaHandle
SchemaVersion
uint16_t SchemaVersion
SingleResourceSinkTraitCatalog
SingleResourceTraitCatalog< TraitDataSink > SingleResourceSinkTraitCatalog
SingleResourceSourceTraitCatalog
SingleResourceTraitCatalog< TraitDataSource > SingleResourceSourceTraitCatalog
TimestampType
enum nl::Weave::Profiles::DataManagement_Current::TimestampType TimestampType
टाइमस्टैंप की मान्यता और उसका टाइप, EventOptions में शामिल किया गया है.
TraitDataHandle
uint16_t TraitDataHandle
duration_t
uint32_t duration_t
अवधि की जानकारी देने के लिए, मिलीसेकंड में इस्तेमाल किया जाने वाला टाइप.
event_id_t
uint32_t event_id_t
इवेंट आईडी का टाइप.
timestamp_t
uint32_t timestamp_t
टाइमस्टैंप की जानकारी देने के लिए, मिलीसेकंड में इस्तेमाल किया जाने वाला टाइप.
utc_timestamp_t
uint64_t utc_timestamp_t
यूटीसी टाइमस्टैंप की जानकारी देने के लिए, मिलीसेकंड में इस्तेमाल किया जाने वाला टाइप.
वैरिएबल
sInstance
LoggingManagement sInstance
sLogFileName
char sLogFileName[] = "topazlog"
फ़ंक्शन
BdxErrorHandler
void BdxErrorHandler( nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer, WEAVE_ERROR aErrorCode )
BdxGetBlockHandler
void BdxGetBlockHandler( nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aIsLastBlock )
BdxRejectHandler
void BdxRejectHandler( nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer, nl::Weave::Profiles::StatusReporting::StatusReport *aReport )
BdxSendAcceptHandler
WEAVE_ERROR BdxSendAcceptHandler( nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer, nl::Weave::Profiles::BulkDataTransfer::SendAccept *aSendAcceptMsg )
BdxXferDoneHandler
void BdxXferDoneHandler( nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer )
BdxXferErrorHandler
void BdxXferErrorHandler( nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer, nl::Weave::Profiles::StatusReporting::StatusReport *aXferError )
CreatePropertyPathHandle
PropertyPathHandle CreatePropertyPathHandle( PropertySchemaHandle aPropertyPathSchemaId, PropertyDictionaryKey aPropertyPathDictionaryKey )
EventWriterTLVCopy
WEAVE_ERROR EventWriterTLVCopy( TLVWriter & ioWriter, uint8_t inDataTag, void *appData )
ऐसा हेल्पर फ़ंक्शन जो पहले से क्रम से लगाए गए इवेंट डेटा एलिमेंट को इवेंट बफ़र में बदलता है.
जानकारी | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
रिटर्न वैल्यू |
|
GetPropertyDictionaryKey
PropertyDictionaryKey GetPropertyDictionaryKey( PropertyPathHandle aHandle )
GetPropertySchemaHandle
PropertySchemaHandle GetPropertySchemaHandle( PropertyPathHandle aHandle )
IsNullPropertyPathHandle
bool IsNullPropertyPathHandle( PropertyPathHandle aHandle )
IsRootPropertyPathHandle
bool IsRootPropertyPathHandle( PropertyPathHandle aHandle )
IsVersionNewer
bool IsVersionNewer( const DataVersion & aVersion, const DataVersion & aReference )
यह वर्शन की तुलना करने के लिए, एल्गोरिदम को ऑप्टिमाइज़ किया गया है.
क्लाइंट साइड पर, सेवा से मिलने वाला वर्शन हमेशा सबसे नया होता है.
IsVersionNewerOrEqual
bool IsVersionNewerOrEqual( const DataVersion & aVersion, const DataVersion & aReference )
पता लगाएं
TraitUpdatableDataSink * Locate( TraitDataHandle aTraitDataHandle, const TraitCatalogBase< TraitDataSink > *aDataSinkCatalog )
यूटिलिटी फ़ंक्शन, जिसे TraitDataSink कैटलॉग में TraitUpdatableDataSink मिलता है.
जानकारी | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
लौटाए गए सामान |
TraitUpdatableDataSink के लिए पॉइंटर; अगर हैंडल मौजूद न हो या यह अपडेट न किए जा सकने वाले TraitDataSink पर ले जाता हो, तो इसे NULL कर दें.
|
LogEvent
event_id_t LogEvent( const EventSchema & inSchema, nl::Weave::TLV::TLVReader & inData )
पहले से क्रम में लगाए गए फ़ॉर्म से इवेंट लॉग करें.
फ़ंक्शन, किसी इवेंट को लॉग करता है, जिसे nl::Weave::TLV::TLVReader एट्रिब्यूट के तौर पर दिखाया जाता है. इसका मतलब है कि nl::Weave::TLV::TLVReader एट्रिब्यूट के स्टोरेज में, इवेंट डेटा को पहले से ही क्रम से लगाया जा चुका है. nl::Weave::TLV::TLVReader फ़ील्ड में कम से कम एक डेटा एलिमेंट शामिल होना चाहिए. वह एलिमेंट एक स्ट्रक्चर होना चाहिए. रीडर से पढ़े जाने वाले पहले एलिमेंट को इवेंट डेटा माना जाता है और उसे इवेंट लॉग में सेव किया जाता है. इवेंट डेटा में, inProfileID और inEventType से पहचाने गए स्कीमा के हिसाब से संदर्भ टैग शामिल होने चाहिए. पहले एलिमेंट का टैग नज़रअंदाज़ कर दिया जाएगा; इवेंट लॉगिंग सिस्टम इसे eventData टैग से बदल देगा.
अगर इवेंट की वैल्यू, LoggingConfiguration में बताई गई लॉगिंग थ्रेशोल्ड से ज़्यादा हो जाती है, तो उसे लॉग किया जाता है. अगर इवेंट की अहमियत मौजूदा थ्रेशोल्ड से कम है, तो उसे हटा दिया जाता है. इसके बाद, फ़ंक्शन, नतीजे के तौर पर मिलने वाले इवेंट आईडी के तौर पर 0
दिखाता है.
बातचीत शुरू करने वाले इस वैरिएंट में, इवेंट के सभी डिफ़ॉल्ट विकल्पों के बारे में साफ़ तौर पर बताया जाता है:
- इवेंट का टाइमस्टैंप, कॉल के पॉइंट पर मौजूदा समय से जुड़ा हो.
- जिस डिवाइस पर कॉल किया जा रहा है उससे जुड़ा इवेंट के तौर पर मार्क किया जाता है,
- इवेंट स्टैंडअलोन है, जो किसी अन्य इवेंट से जुड़ा नहीं है.
- इवेंट को गैर-ज़रूरी के तौर पर मार्क किया गया है,
जानकारी | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
लौटाए गए सामान |
event_id_t अगर इवेंट को लॉग में लिखा गया था, तो इवेंट आईडी, 0 नहीं होता है.
|
LogEvent
event_id_t LogEvent( const EventSchema & inSchema, nl::Weave::TLV::TLVReader & inData, const EventOptions *inOptions )
पहले से क्रम के मुताबिक बनाए गए फ़ॉर्म से इवेंट लॉग करें. इसमें ज़्यादा विकल्प शामिल हैं.
फ़ंक्शन, किसी इवेंट को लॉग करता है, जिसे nl::Weave::TLV::TLVReader एट्रिब्यूट के तौर पर दिखाया जाता है. इसका मतलब है कि nl::Weave::TLV::TLVReader एट्रिब्यूट के स्टोरेज में, इवेंट डेटा को पहले से ही क्रम से लगाया जा चुका है. nl::Weave::TLV::TLVReader फ़ील्ड में कम से कम एक डेटा एलिमेंट शामिल होना चाहिए. वह एलिमेंट एक स्ट्रक्चर होना चाहिए. रीडर से पढ़े जाने वाले पहले एलिमेंट को इवेंट डेटा माना जाता है और उसे इवेंट लॉग में सेव किया जाता है. इवेंट डेटा में, inProfileID और inEventType से पहचाने गए स्कीमा के हिसाब से संदर्भ टैग शामिल होने चाहिए. पहले एलिमेंट का टैग नज़रअंदाज़ कर दिया जाएगा; इवेंट लॉगिंग सिस्टम इसे eventData टैग से बदल देगा.
अगर इवेंट की वैल्यू, LoggingConfiguration में बताई गई लॉगिंग थ्रेशोल्ड से ज़्यादा हो जाती है, तो उसे लॉग किया जाता है. अगर इवेंट की अहमियत मौजूदा थ्रेशोल्ड से कम है, तो उसे हटा दिया जाता है. इसके बाद, फ़ंक्शन, नतीजे के तौर पर मिलने वाले इवेंट आईडी के तौर पर 0
दिखाता है.
बातचीत के इस वैरिएंट की मदद से, कॉल करने वाले (कॉलर) को EventOptions
का कोई भी कॉम्बिनेशन सेट करने की अनुमति मिलती है:
- टाइमस्टैंप, जब कॉल के पॉइंट पर 0 डिफ़ॉल्ट रूप से मौजूदा समय होता है,
- इवेंट सोर्स का "रूट" सेक्शन (इवेंट सोर्स और Trait ID). अगर NULL होता है, तो यह डिफ़ॉल्ट रूप से मौजूदा डिवाइस पर सेट हो जाता है. इवेंट, कॉल करने वाले डिवाइस से जुड़ा हुआ के तौर पर मार्क किया जाता है,
- इवेंट आईडी को ग्रुप करने के लिए मिलता-जुलता इवेंट आईडी. उससे मिलते-जुलते इवेंट आईडी के शून्य होने पर, उस इवेंट को 'अन्य इवेंट से जुड़ा नहीं है' के तौर पर मार्क किया जाता है,
- बहुत ज़रूरी है; डिफ़ॉल्ट रूप से गैर-ज़रूरी है.
जानकारी | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
लौटाए गए सामान |
event_id_t अगर इवेंट को लॉग में लिखा गया था, तो इवेंट आईडी, 0 नहीं होता है.
|
LogEvent
event_id_t LogEvent( const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData )
कॉलबैक के ज़रिए इवेंट लॉग करें.
यह फ़ंक्शन, EventWriterFunct को दिखाने वाले इवेंट और ऐप्लिकेशन के हिसाब से appData
कॉन्टेक्स्ट के तौर पर इवेंट लॉग करता है. यह फ़ंक्शन, इवेंट मेटाडेटा को लिखता है और inEventWriter
को nl::Weave::TLV::TLVWriter रेफ़रंस और inAppData
कॉन्टेक्स्ट के साथ कॉल करता है, ताकि उपयोगकर्ता कोड, इवेंट डेटा को सीधे इवेंट लॉग में भेज सके. इवेंट लॉगिंग का यह तरीका मेमोरी की खपत को कम करता है, क्योंकि इवेंट डेटा को सीधे टारगेट बफ़र में क्रम से लगाया जाता है. इवेंट डेटा में कॉन्टेक्स्ट टैग होने चाहिए, ताकि inProfileID
और inEventType
के बताए गए स्कीमा के हिसाब से इसका इस्तेमाल किया जा सके. पहले एलिमेंट का टैग नज़रअंदाज़ कर दिया जाएगा; इवेंट लॉगिंग सिस्टम इसे eventData टैग से बदल देगा.
अगर इवेंट की वैल्यू, LoggingConfiguration में बताई गई लॉगिंग थ्रेशोल्ड से ज़्यादा हो जाती है, तो उसे लॉग किया जाता है. अगर इवेंट की अहमियत मौजूदा थ्रेशोल्ड से कम है, तो उसे हटा दिया जाता है. इसके बाद, फ़ंक्शन, नतीजे के तौर पर मिलने वाले इवेंट आईडी के तौर पर 0
दिखाता है.
बातचीत शुरू करने वाले इस वैरिएंट में, इवेंट के सभी डिफ़ॉल्ट विकल्पों के बारे में साफ़ तौर पर बताया जाता है:
- इवेंट का टाइमस्टैंप, कॉल के पॉइंट पर मौजूदा समय से जुड़ा हो.
- जिस डिवाइस पर कॉल किया जा रहा है उससे जुड़ा इवेंट के तौर पर मार्क किया जाता है,
- इवेंट स्टैंडअलोन है, जो किसी अन्य इवेंट से जुड़ा नहीं है.
- इवेंट को गैर-ज़रूरी के तौर पर मार्क किया गया है,
जानकारी | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
लौटाए गए सामान |
event_id_t अगर इवेंट को लॉग में लिखा गया था, तो इवेंट आईडी, 0 नहीं होता है.
|
LogEvent
event_id_t LogEvent( const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions )
कॉलबैक के ज़रिए, विकल्पों के साथ इवेंट लॉग करें.
यह फ़ंक्शन, EventWriterFunct को दिखाने वाले इवेंट और ऐप्लिकेशन के हिसाब से appData
कॉन्टेक्स्ट के तौर पर इवेंट लॉग करता है. यह फ़ंक्शन, इवेंट मेटाडेटा को लिखता है और inEventWriter
को nl::Weave::TLV::TLVWriter रेफ़रंस और inAppData
कॉन्टेक्स्ट के साथ कॉल करता है, ताकि उपयोगकर्ता कोड, इवेंट डेटा को सीधे इवेंट लॉग में भेज सके. इवेंट लॉगिंग का यह तरीका मेमोरी की खपत को कम करता है, क्योंकि इवेंट डेटा को सीधे टारगेट बफ़र में क्रम से लगाया जाता है. इवेंट डेटा में कॉन्टेक्स्ट टैग होने चाहिए, ताकि inProfileID
और inEventType
के बताए गए स्कीमा के हिसाब से इसका इस्तेमाल किया जा सके. पहले एलिमेंट का टैग नज़रअंदाज़ कर दिया जाएगा; इवेंट लॉगिंग सिस्टम इसे eventData टैग से बदल देगा.
अगर इवेंट की वैल्यू, LoggingConfiguration में बताई गई लॉगिंग थ्रेशोल्ड से ज़्यादा हो जाती है, तो उसे लॉग किया जाता है. अगर इवेंट की अहमियत मौजूदा थ्रेशोल्ड से कम है, तो उसे हटा दिया जाता है. इसके बाद, फ़ंक्शन, नतीजे के तौर पर मिलने वाले इवेंट आईडी के तौर पर 0
दिखाता है.
बातचीत के इस वैरिएंट की मदद से, कॉल करने वाले (कॉलर) को EventOptions
का कोई भी कॉम्बिनेशन सेट करने की अनुमति मिलती है:
- टाइमस्टैंप, जब कॉल के पॉइंट पर 0 डिफ़ॉल्ट रूप से मौजूदा समय होता है,
- इवेंट सोर्स का "रूट" सेक्शन (इवेंट सोर्स और Trait ID). अगर NULL होता है, तो यह डिफ़ॉल्ट रूप से मौजूदा डिवाइस पर सेट हो जाता है. इवेंट, कॉल करने वाले डिवाइस से जुड़ा हुआ के तौर पर मार्क किया जाता है,
- इवेंट आईडी को ग्रुप करने के लिए मिलता-जुलता इवेंट आईडी. उससे मिलते-जुलते इवेंट आईडी के शून्य होने पर, उस इवेंट को 'अन्य इवेंट से जुड़ा नहीं है' के तौर पर मार्क किया जाता है,
- बहुत ज़रूरी है; डिफ़ॉल्ट रूप से गैर-ज़रूरी है.
जानकारी | |||||||||
---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||
लौटाए गए सामान |
event_id_t अगर इवेंट को लॉग में लिखा गया था, तो इवेंट आईडी, 0 नहीं होता है.
|
LogFreeform
event_id_t LogFreeform( ImportanceType inImportance, const char *inFormat, ... )
LogFreeform, डिफ़ॉल्ट इवेंट स्ट्रीम से एक फ़्रीफ़ॉर्म स्ट्रिंग देता है.
स्ट्रिंग को डीबग इवेंट स्ट्रक्चर में एन्कैप्सुलेट किया जाएगा. यह स्ट्रक्चर, लॉग की गई अन्य स्ट्रिंग की तरह होगा. इवेंट प्रोफ़ाइल आईडी, Nest डीबग इवेंट की तरह होगा और इवेंट टाइप kNestDebug_StringLogEntryEvent
होगा.
जानकारी | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
लौटाए गए सामान |
event_id_t अगर इवेंट को लॉग में लिखा गया था, तो इवेंट आईडी, 0 नहीं होता है.
|
LookForElementWithTag
WEAVE_ERROR LookForElementWithTag( const nl::Weave::TLV::TLVReader & aSrcReader, const uint64_t aTagInApiForm, nl::Weave::TLV::TLVReader *apDstReader )
PlainTextWriter
WEAVE_ERROR PlainTextWriter( TLVWriter & ioWriter, uint8_t inDataTag, void *appData )
यह एक हेल्पर फ़ंक्शन है, जो डीबग इवेंट के तौर पर फ़्रीफ़ॉर्म टेक्स्ट उत्सर्जित करने में मदद करता है.
डीबग इवेंट एक स्ट्रक्चर है, जिसमें लॉगक्षेत्र और फ़्रीफ़ॉर्म टेक्स्ट होता है.
जानकारी | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
रिटर्न वैल्यू |
|
PlainTextWriter
WEAVE_ERROR PlainTextWriter( ::nl::Weave::TLV::TLVWriter & ioWriter, uint8_t inDataTag, void *appData )
यह एक हेल्पर फ़ंक्शन है, जो डीबग इवेंट के तौर पर फ़्रीफ़ॉर्म टेक्स्ट उत्सर्जित करने में मदद करता है.
डीबग इवेंट एक स्ट्रक्चर है, जिसमें लॉगक्षेत्र और फ़्रीफ़ॉर्म टेक्स्ट होता है.
जानकारी | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
रिटर्न वैल्यू |
|