nl::Weave::Binding

#include <src/lib/core/WeaveBinding.h>

Weave कम्यूनिकेशन के लिए टारगेट किए गए टारगेट और उससे जुड़े कॉन्फ़िगरेशन की जानकारी को कैप्चर करता है.

खास जानकारी

बाइंडिंग ऑब्जेक्ट, Weave कम्यूनिकेशन के लिए तय किए गए टारगेट की पहचान करता है. इसे "पीयर" भी कहा जाता है. साथ ही, कॉन्फ़िगरेशन पैरामीटर के एक सेट की पहचान करता है जो यह बताता है कि पीयर के साथ कम्यूनिकेशन कैसे किया जाना चाहिए. बाइंडिंग, दो पक्षों के बीच बोले जा रहे ऐप्लिकेशन प्रोटोकॉल से अलग होते हैं. ऐसे में, वे दर्शकों से बातचीत करते समय, "कौन" और "कैसे" की जानकारी लेते हैं, न कि "क्या".

कॉन्फ़िगरेशन

ऐप्लिकेशन को किसी भी तरह के कम्यूनिकेशन चैनल के लिए, खास पैरामीटर के साथ बाइंडिंग कॉन्फ़िगर करना होगा. बाइंडिंग कई तरह के नेटवर्क ट्रांसपोर्ट के साथ काम करते हैं. इनमें टीसीपी, यूडीपी, Weave भरोसेमंद मैसेज के साथ यूडीपी, और वीव ओवर BLE (WoBLE) शामिल है. ऐप्लिकेशन, पक्षों के बीच भेजे गए मैसेज की सुरक्षा करने के लिए, खास सुरक्षा तरीकों के इस्तेमाल का अनुरोध भी कर सकते हैं. इनमें CASE और PASE सेशन, और ऐप्लिकेशन ग्रुप की कुंजियां शामिल हैं. बाइंडिंग को कॉन्फ़िगर करने के लिए इंटरफ़ेस, डिक्लेरेटिव एपीआई स्टाइल का इस्तेमाल करता है. इसकी मदद से, ऐप्लिकेशन आसान शब्दों में कम्यूनिकेशन के लिए अपनी ज़रूरी शर्तें बता सकते हैं.

ज़्यादा जानकारी के लिए, Binding::Configuration से जुड़े दस्तावेज़ देखें.

वीडियो की रणनीति

किसी के साथ बातचीत शुरू होने से पहले, बाइंडिंग को "तैयार" होना चाहिए. बाइंडिंग को तैयार करने के काम में, यह तय करना शामिल होता है कि बातचीत करने के लिए क्या ज़रूरी है. इसमें इस तरह की चीज़ें शामिल हो सकती हैं: पीयर के नेटवर्क पते की समस्या हल करना, इंटरनेट कनेक्शन बनाना, और सुरक्षा कुंजियों पर बातचीत करना. ऐप्लिकेशन से कॉन्फ़िगर किए जाने के बाद, बाइंडिंग, कम्यूनिकेशन की तैयारी के लिए सभी ज़रूरी चरणों को पूरा करता है. साथ ही, प्रोसेस पूरी होने के बाद ऐप्लिकेशन को वापस कॉल करता है. इस तरह, बाइंडिंग, कम्यूनिकेशन के तरीके को छिपा देते हैं. इससे ऐप्लिकेशन, हाई-लेवल इंटरैक्शन पर ध्यान दे पाते हैं.

संपर्क

बाइंडिंग तैयार हो जाने के बाद, वह इस्तेमाल के लिए तैयार हो जाता है. इस स्थिति में, ऐप्लिकेशन (या सामान्य तौर पर, किसी ऐप्लिकेशन की ओर से काम करने वाला प्रोटोकॉल लेयर कोड), एक Weave एक्सचेंज कॉन्टेक्स्ट आबंटित करने के लिए बाइंडिंग का अनुरोध करते हैं. इससे, आपस में बातचीत करने के लिए कॉन्टेक्स्ट पहले से कॉन्फ़िगर किया जाता है. इससे ऐप्लिकेशन, साथी के साथ तुरंत Weave की अदला-बदली शुरू कर सकता है. ऐप्लिकेशन तब तक बाइंडिंग से एक्सचेंज के कॉन्टेक्स्ट का अनुरोध कर सकता है, जब तक बाइंडिंग बंद नहीं हो जाती या कोई इवेंट, जैसे कि नेटवर्क काम नहीं कर रहा, कम्यूनिकेशन चैनल बंद कर देता है.

बाइंडिंग स्टेटस में बदलाव

इसका इस्तेमाल करने के दौरान, Binding ऐप्लिकेशन को एपीआई इवेंट डिलीवर करेगा, ताकि उसे बाइंडिंग की स्थिति में हुए बदलावों के बारे में सूचना दी जा सके. उदाहरण के लिए, आवेदन की तैयारी पूरी होने पर, ऐप्लिकेशन को एक इवेंट मिलेगा. इसमें बताया जाएगा कि बाइंडिंग इस्तेमाल के लिए तैयार है. इसी तरह, अगर दिया गया कम्यूनिकेशन चैनल काम नहीं करता, तो ऐप्लिकेशन में एक इवेंट डिलीवर किया जाता है. इसमें बताया जाता है कि बाइंडिंग अब तैयार स्थिति में नहीं है.

एपीआई इवेंट, ऐप्लिकेशन को एक इवेंट कॉलबैक फ़ंक्शन के ज़रिए डिलीवर किए जाते हैं. यह फ़ंक्शन बाइंडिंग के असाइन होने पर दिया जाता है.

बाइंडिंग लाइफ़टाइम

बाइंडिंग को रेफ़रंस के तौर पर गिना जाता है, ताकि सॉफ़्टवेयर कॉम्पोनेंट को एक साथ इस्तेमाल किया जा सके. जब किसी बाइंडिंग को बांटा जाता है, तो बाइंडिंग के लिए एक रेफ़रंस बनाया जाता है. यह ऐप्लिकेशन इस पहचान फ़ाइल को आने वाले समय में रिलीज़ करने के लिए ज़िम्मेदार है, ताकि बाइंडिंग को दोबारा इस्तेमाल किया जा सके.

जब किसी ऐप्लिकेशन को बाइंडिंग के साथ किया जाता है, तो यह बाइंडिंग पर close() को कॉल कर सकता है. यह बाइंडिंग के लिए ऐप्लिकेशन का रेफ़रंस रिलीज़ करता है और एपीआई इवेंट की आने वाली सभी डिलीवरी को ब्लॉक करता है. जब बाइंडिंग का आखिरी रेफ़रंस रिलीज़ होता है, तो वह अपने-आप बंद हो जाता है.

सार्वजनिक टाइप

@23{
  kGetPeerDescription_MaxLength = nl::Weave::kWeavePeerDescription_MaxLength
}
enum
EventCallback)(void *apAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutParam) typedef
void(*
EventType{
  kEvent_ConnectionEstablished = 1,
  kEvent_BindingReady = 2,
  kEvent_PrepareFailed = 3,
  kEvent_BindingFailed = 4,
  kEvent_PrepareRequested = 5,
  kEvent_PASEParametersRequested = 6,
  kEvent_TAKEParametersRequested = 7,
  kEvent_DefaultCheck = 100
}
enum
State enum

सार्वजनिक एट्रिब्यूट

AppState
void *

सार्वजनिक फ़ंक्शन

AddRef(void)
void
बाइंडिंग ऑब्जेक्ट के लिए एक रेफ़रंस रिज़र्व करें.
AdjustResponseTimeout(ExchangeContext *apExchangeContext) const
रिस्पॉन्स के टाइम आउट में बदलाव करने के लिए, मौजूदा Exchange कॉन्टेक्स्ट को फिर से कॉन्फ़िगर करें.
AllocateRightSizedBuffer(PacketBuffer *& buf, const uint32_t desiredSize, const uint32_t minSize, uint32_t & outMaxPayloadSize)
BeginConfiguration()
बाइंडिंग को कॉन्फ़िगर करने की प्रोसेस.
CanBePrepared(void) const
bool
Close(void)
void
बाइंडिंग ऑब्जेक्ट को बंद करें और रेफ़रंस रिलीज़ करें.
GetConnection() const
बाइंडिंग से जुड़ा Weave कनेक्शन ऑब्जेक्ट पाएं.
GetDefaultResponseTimeout() const
uint32_t
मिलते-जुलते ऐप्लिकेशन से बातचीत करते समय, एक्सचेंज रिस्पॉन्स का डिफ़ॉल्ट टाइम आउट पाएं.
GetDefaultWRMPConfig(void) const
const WRMPConfig &
मिलते-जुलते ऐप्लिकेशन से संपर्क करते समय, डिफ़ॉल्ट WRMP कॉन्फ़िगरेशन का इस्तेमाल करें.
GetEncryptionType(void) const
uint8_t
पीयर को/से मैसेज एन्क्रिप्ट करते समय इस्तेमाल किया जाने वाला मैसेज एन्क्रिप्शन टाइप वापस पाएं.
GetEventCallback() const
EventCallback
वह फ़ंक्शन पाएं जिसे बाइंडिंग के लिए कोई एपीआई इवेंट होने पर कॉल किया जाएगा.
GetExchangeManager() const
GetKeyId(void) const
uint32_t
पीयर को मैसेज भेजने या उससे भेजने को एन्क्रिप्ट (सुरक्षित) करते समय, इस्तेमाल की जाने वाली मैसेज एन्क्रिप्ट (सुरक्षित) करने की कुंजी का आईडी वापस पाएं.
GetLogId(void) const
uint16_t
बाइंडिंग के लिए एक यूनीक आईडी पाएं.
GetMaxWeavePayloadSize(const System::PacketBuffer *msgBuf)
uint32_t
Weave की सबसे बड़ी पेलोड साइज़ की जानकारी पाएं, जो साथ में दिए गए पैकेटBuffer के अंदर फ़िट हो सके.
GetPeerDescription(char *buf, uint32_t bufSize) const
void
पीयर नोड और उससे जुड़े पते / कनेक्शन की जानकारी के बारे में बताने वाली स्ट्रिंग बनाता है.
GetPeerIPAddress(nl::Inet::IPAddress & address, uint16_t & port, InterfaceId & interfaceId) const
void
उपलब्ध होने पर, साथी के आईपी पते की जानकारी वापस पाएं.
GetPeerNodeId(void) const
uint64_t
बाइंडिंग पीयर का नोड आईडी वापस पाएं.
GetProtocolLayerCallback(EventCallback & callback, void *& state) const
void
GetState(void) const
State
बाइंडिंग की मौजूदा स्थिति वापस पाएं.
IsAuthenticMessageFromPeer(const WeaveMessageInfo *msgInfo)
bool
यह देख लें कि कोई खास इनकमिंग मैसेज, कॉन्फ़िगर किए गए मिलते-जुलते ऐप्लिकेशन से आया हो और उसकी पुष्टि सही तरीके से की गई हो.
IsConnectionTransport() const
bool
IsPreparing(void) const
bool
IsReady(void) const
bool
IsUDPTransport() const
bool
IsUnreliableUDPTransport() const
bool
IsWRMTransport() const
bool
NewExchangeContext(ExchangeContext *& appExchangeContext)
बाइंडिंग के टारगेट में जिस पीयर को टारगेट किया गया है उसके साथ बातचीत करने के लिए, नया एक्सचेंज कॉन्टेक्स्ट तय करें.
Release(void)
void
बाइंडिंग ऑब्जेक्ट का रेफ़रंस रिलीज़ करें.
RequestPrepare()
बाइंडिंग को कॉन्फ़िगर और तैयार करने के लिए, ऐप्लिकेशन का अनुरोध करें.
Reset(void)
void
बाइंडिंग को वापस कॉन्फ़िगर नहीं की गई स्थिति पर रीसेट करें.
SetDefaultResponseTimeout(uint32_t msec)
void
मिलते-जुलते ऐप्लिकेशन से बातचीत करते समय, एक्सचेंज रिस्पॉन्स का डिफ़ॉल्ट टाइम आउट सेट करें.
SetDefaultWRMPConfig(const WRMPConfig & wrmpConfig)
void
मिलते-जुलते ऐप्लिकेशन से संपर्क करते समय, WRMP कॉन्फ़िगरेशन का डिफ़ॉल्ट कॉन्फ़िगरेशन सेट करें.
SetEventCallback(EventCallback aEventCallback)
void
बाइंडिंग के लिए कोई एपीआई इवेंट होने पर, ऐप्लिकेशन के लिए तय किए गए फ़ंक्शन को कॉल करने के लिए सेट करें.
SetProtocolLayerCallback(EventCallback callback, void *state)
void
किसी ऐप्लिकेशन की ओर से बाइंडिंग का इस्तेमाल करके, प्रोटोकॉल लेयर कोड के लिए इवेंट कॉलबैक फ़ंक्शन सेट करें.

सार्वजनिक स्टैटिक फ़ंक्शन

DefaultEventHandler(void *apAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam)
void
बाइंडिंग एपीआई इवेंट के लिए डिफ़ॉल्ट हैंडलर.

क्लास

nl::Weave::Binding::Configuration

यह बाइंडिंग ऑब्जेक्ट को कॉन्फ़िगर करने और तैयार करने के लिए, डिक्लेरेटिव स्टाइल का इंटरफ़ेस देता है.

संरचना

nl::Weave::Binding::InEventParam

किसी Binding API इवेंट के लिए, इनपुट पैरामीटर.

nl::Weave::Binding::OutEventParam

Binding एपीआई इवेंट के लिए आउटपुट पैरामीटर.

सार्वजनिक टाइप

@23

 @23
प्रॉपर्टी
kGetPeerDescription_MaxLength

स्ट्रिंग की ज़्यादा से ज़्यादा लंबाई (जिसमें NUL वर्ण शामिल है) GetPeerDescription() से मिली है.

EventCallback

void(* EventCallback)(void *apAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)

EventType

 EventType
प्रॉपर्टी
kEvent_BindingFailed

बाइंडिंग नहीं हो सकी और अब उसका इस्तेमाल, पीयर से संपर्क करने के लिए नहीं किया जा सकता.

kEvent_BindingReady

बाइंडिंग की तैयारी पूरी हो गई है. अब बाइंडिंग का इस्तेमाल, साथी से संपर्क करने के लिए किया जा सकता है.

kEvent_ConnectionEstablished

अनुरोध किया गया Weave कनेक्शन स्थापित कर दिया गया है.

kEvent_DefaultCheck

इसका इस्तेमाल, ऐप्लिकेशन में डिफ़ॉल्ट इवेंट हैंडलिंग के सही तरीके की पुष्टि करने के लिए किया जाता है.

kEvent_PASEParametersRequested

ऐप्लिकेशन से अनुरोध किया जाता है कि वह PASE सेशन शुरू होने के दौरान इस्तेमाल किए जाने वाले पैरामीटर उपलब्ध कराए.

kEvent_PrepareFailed

बाइंडिंग के लिए तैयार कार्रवाई पूरी नहीं हो सकी.

kEvent_PrepareRequested

ऐप्लिकेशन से अनुरोध किया गया है कि वह बाइंडिंग को कॉन्फ़िगर और तैयार करे, ताकि नेटवर्क स्टैक का इस्तेमाल किया जा सके.

kEvent_TAKEParametersRequested

ऐप्लिकेशन से अनुरोध किया जाता है कि वह TAG सेशन शुरू करने के दौरान इस्तेमाल किए जाने वाले पैरामीटर उपलब्ध कराए.

स्थिति

 State

सार्वजनिक एट्रिब्यूट

AppState

void * AppState

सार्वजनिक फ़ंक्शन

AddRef

void AddRef(
  void
)

बाइंडिंग ऑब्जेक्ट के लिए एक रेफ़रंस रिज़र्व करें.

AdjustResponseTimeout

WEAVE_ERROR AdjustResponseTimeout(
  ExchangeContext *apExchangeContext
) const 

रिस्पॉन्स के टाइम आउट में बदलाव करने के लिए, मौजूदा Exchange कॉन्टेक्स्ट को फिर से कॉन्फ़िगर करें.

जानकारी
पैरामीटर
[in] apExchangeContext
एक्सचेंज कॉन्टेक्स्ट ऑब्जेक्ट के लिए, फिर से कॉन्फ़िगर किया जाने वाला पॉइंटर

AllocateRightSizedBuffer

WEAVE_ERROR AllocateRightSizedBuffer(
  PacketBuffer *& buf,
  const uint32_t desiredSize,
  const uint32_t minSize,
  uint32_t & outMaxPayloadSize
)

BeginConfiguration

Configuration BeginConfiguration()

बाइंडिंग को कॉन्फ़िगर करने की प्रोसेस.

पीयर के साथ संपर्क करने के लिए तैयार करने से पहले, ऐप्लिकेशन को बाइंडिंग को कॉन्फ़िगर करने के लिए, BeginConfiguration() को कॉल करना होगा.

जानकारी
लौटाए गए सामान
एक Binding::Configuration ऑब्जेक्ट, जिसका इस्तेमाल बाइंडिंग को कॉन्फ़िगर करने के लिए किया जा सकता है.

CanBePrepared

bool CanBePrepared(
  void
) const 

बंद करें

void Close(
  void
)

बाइंडिंग ऑब्जेक्ट को बंद करें और रेफ़रंस रिलीज़ करें.

कॉल करने पर, इस तरीके की वजह से बाइंडिंग, क्लोज़्ड स्थिति में पहुंच जाती है. बाइंडिंग के लिए पहले से जारी सभी कार्रवाइयों को रद्द कर दिया जाता है और बाइंडिंग के तहत आने वाले सभी बाहरी कम्यूनिकेशन रिसॉर्स रिलीज़ कर दिए जाते हैं.

close() को कॉल करने पर बाइंडिंग से जुड़ी रेफ़रंस की संख्या कम हो जाती है. साथ ही, अगर रेफ़रंस की संख्या शून्य हो जाती है, तो ऑब्जेक्ट फ़्री हो जाता है.

GetConnection

WeaveConnection * GetConnection() const 

बाइंडिंग से जुड़ा Weave कनेक्शन ऑब्जेक्ट पाएं.

जानकारी
लौटाए गए सामान
बाइंडिंग से कोई कनेक्शन न जुड़े होने पर, WeaveConnection ऑब्जेक्ट का पॉइंटर या NULL.

GetDefaultResponseTimeout

uint32_t GetDefaultResponseTimeout() const 

मिलते-जुलते ऐप्लिकेशन से बातचीत करते समय, एक्सचेंज रिस्पॉन्स का डिफ़ॉल्ट टाइम आउट पाएं.

जानकारी
लौटाए गए सामान
प्रतिक्रिया मिलने का समय मिलीसेकंड में.

GetDefaultWRMPConfig

const WRMPConfig & GetDefaultWRMPConfig(
  void
) const 

मिलते-जुलते ऐप्लिकेशन से संपर्क करते समय, डिफ़ॉल्ट WRMP कॉन्फ़िगरेशन का इस्तेमाल करें.

जानकारी
लौटाए गए सामान
ऐसे WRMPConfig स्ट्रक्चर का रेफ़रंस जिसमें डिफ़ॉल्ट कॉन्फ़िगरेशन वैल्यू हैं.

GetEncryptionType

uint8_t GetEncryptionType(
  void
) const 

पीयर को/से मैसेज एन्क्रिप्ट करते समय इस्तेमाल किया जाने वाला मैसेज एन्क्रिप्शन टाइप वापस पाएं.

GetEventCallback

EventCallback GetEventCallback() const 

वह फ़ंक्शन पाएं जिसे बाइंडिंग के लिए कोई एपीआई इवेंट होने पर कॉल किया जाएगा.

जानकारी
लौटाए गए सामान
कॉलबैक फ़ंक्शन के लिए पॉइंटर.

GetExchangeManager

WeaveExchangeManager * GetExchangeManager() const 

GetKeyId

uint32_t GetKeyId(
  void
) const 

पीयर को मैसेज भेजने या उससे भेजने को एन्क्रिप्ट (सुरक्षित) करते समय, इस्तेमाल की जाने वाली मैसेज एन्क्रिप्ट (सुरक्षित) करने की कुंजी का आईडी वापस पाएं.

GetLogId

uint16_t GetLogId(
  void
) const 

बाइंडिंग के लिए एक यूनीक आईडी पाएं.

GetMaxWeavePayloadSize

uint32_t GetMaxWeavePayloadSize(
  const System::PacketBuffer *msgBuf
)

Weave की सबसे बड़ी पेलोड साइज़ की जानकारी पाएं, जो साथ में दिए गए पैकेटBuffer के अंदर फ़िट हो सके.

यूडीपी और डब्ल्यूआरएम वाले यूडीपी के लिए, पेलोड का ज़्यादा से ज़्यादा साइज़ यह पक्का करेगा कि कॉन्फ़िगर किया गया Weave मैसेज, कॉन्फ़िगर किए गए UDP MTU से बाहर न हो.

इसके अलावा, इस तरीके से यह पक्का किया जाएगा कि Weave पेलोड, दिए गए पैकेटBuffer से ऊपर नहीं जाएगा.

जानकारी
पैरामीटर
[in] msgBuf
पैकेटबफ़र के लिए पॉइंटर, जिसमें मैसेज पेलोड लिखा जाएगा.
लौटाए गए सामान
Weave की ज़्यादा से ज़्यादा पेलोड साइज़.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  uint32_t bufSize
) const 

पीयर नोड और उससे जुड़े पते / कनेक्शन की जानकारी के बारे में बताने वाली स्ट्रिंग बनाता है.

जानकारी
पैरामीटर
[in] buf
उस बफ़र का पॉइंटर, जिसमें स्ट्रिंग लिखी जानी चाहिए. दिया गया बफ़र कम से कम kGetPeerDescription_MaxLength के बराबर होना चाहिए. अगर छोटा बफ़र दिया गया है, तो फ़िट करने के लिए स्ट्रिंग में काट-छांट की जाएगी. सभी मामलों में, आउटपुट में NUL खत्म करने वाला वर्ण शामिल होगा.
[in] bufSize
बफ़र का साइज़, जिसके लिए बफ़र की तरफ़ इशारा किया गया है.

GetPeerIPAddress

void GetPeerIPAddress(
  nl::Inet::IPAddress & address,
  uint16_t & port,
  InterfaceId & interfaceId
) const 

उपलब्ध होने पर, साथी के आईपी पते की जानकारी वापस पाएं.

पीयरिंग की स्थिति और कॉन्फ़िगरेशन पर निर्भर करता है कि मिलते-जुलते ऐप्लिकेशन के आईपी पते की जानकारी उपलब्ध होगी या नहीं. आईपी पते की जानकारी सिर्फ़ तब उपलब्ध होती है, जब आईपी पर आधारित ट्रांसपोर्ट (टीसीपी, यूडीपी या डब्ल्यूआरपीपी के साथ यूडीपी) का इस्तेमाल किया जाता है. तैयारी शुरू होने से पहले, पते की जानकारी सिर्फ़ तब उपलब्ध होती है, जब कॉन्फ़िगरेशन के दौरान ऐप्लिकेशन ने इसे साफ़ तौर पर सेट किया हो. तैयारी के दौरान, पते की जानकारी उपलब्ध हो जाती है. जैसे, डीएनएस रिज़ॉल्यूशन पूरा होने के बाद. बाइंडिंग के तैयार होने के बाद, पते की जानकारी तब तक उपलब्ध रहती है, जब तक बाइंडिंग रीसेट नहीं हो जाती.

जानकारी
पैरामीटर
[out] address
ऐसे IPAddress ऑब्जेक्ट का रेफ़रंस जिसे मिलते-जुलते ऐप्लिकेशन का आईपी पता मिलेगा. अगर साथी के आईपी पते की जानकारी उपलब्ध नहीं है, तो यह वैल्यू IPAddress::Other पर सेट कर दी जाएगी.
[out] port
उस पूर्णांक का रेफ़रंस जिसे मिलते-जुलते ऐप्लिकेशन का पोर्ट नंबर मिलेगा. अगर साथी के आईपी पते की जानकारी उपलब्ध नहीं है, तो इस वैल्यू के बारे में कोई जानकारी नहीं दी जाती.
[out] interfaceId
उस पूर्णांक का रेफ़रंस जिसे नेटवर्क इंटरफ़ेस का आईडी मिलेगा, जिससे पीयर तक पहुंचा जा सकता है. अगर साथी के आईपी पते की जानकारी उपलब्ध नहीं है, तो इस वैल्यू के बारे में कोई जानकारी नहीं दी जाती.

GetPeerNodeId

uint64_t GetPeerNodeId(
  void
) const 

बाइंडिंग पीयर का नोड आईडी वापस पाएं.

बाइंडिंग ऑब्जेक्ट तैयार हो जाने के बाद ही मान्य होगा.

जानकारी
लौटाए गए सामान
पीयर का वीव नोड आईडी

GetProtocolLayerCallback

void GetProtocolLayerCallback(
  EventCallback & callback,
  void *& state
) const 

GetState

State GetState(
  void
) const 

बाइंडिंग की मौजूदा स्थिति वापस पाएं.

जानकारी
लौटाए गए सामान
बाइंडिंग स्टेट.

IsAuthenticMessageFromPeer

bool IsAuthenticMessageFromPeer(
  const WeaveMessageInfo *msgInfo
)

यह देख लें कि कोई खास इनकमिंग मैसेज, कॉन्फ़िगर किए गए मिलते-जुलते ऐप्लिकेशन से आया हो और उसकी पुष्टि सही तरीके से की गई हो.

यह तरीका दिए गए मैसेज के बारे में नीचे दी गई जानकारी की पुष्टि करता है:

  • मैसेज, बाइंडिंग के पीयर नोड से आता है
  • यह मैसेज, बाइंडिंग के तौर पर एक ही ट्रांसपोर्ट टाइप पर मिला था. अगर मैसेज किसी कनेक्शन पर मिला था, तो तरीका यह भी पुष्टि करता है कि मैसेज उसी कनेक्शन पर मिला था जो बाइंडिंग से जुड़ा था.
  • मैसेज को एन्क्रिप्ट करने के लिए इस्तेमाल किया गया एन्क्रिप्शन कुंजी और टाइप, बाइंडिंग में कॉन्फ़िगर की गई कुंजी से मेल खाता है. सुरक्षा का इस्तेमाल किए बिना कॉन्फ़िगर की गई बाइंडिंग के लिए, यह तरीका पुष्टि करता है कि आने वाले मैसेज को एन्क्रिप्ट (सुरक्षित) नहीं किया गया है.

इस तरीके का इस्तेमाल, WDM जैसे प्रोटोकॉल में किया जाना है. इसकी मदद से मिलते-जुलते ऐप्लिकेशन, नोड से पीयर से शुरुआती एक्सचेंज के बाद लोकल नोड में अपने-आप ही एक्सचेंज शुरू कर सकते हैं. ऐसे मामलों में, यह तरीका लोकल नोड को यह पुष्टि करने की अनुमति देता है कि इनकमिंग अनचाहा मैसेज, उससे जुड़े साथी ने भेजा था. (बेशक, मैसेज एन्क्रिप्ट (सुरक्षित) करने की सुविधा का इस्तेमाल किए बिना कॉन्फ़िगर की गई बाइंडिंग के लिए, यह दावा सुरक्षा के नज़रिए से कोई वैल्यू नहीं देता. इससे सिर्फ़ यह पुष्टि होती है कि भेजने वाले के नोड का आईडी और ट्रांसपोर्ट के टाइप मैच होते हैं.)

ध्यान दें कि अगर बाइंडिंग 'तैयार है' स्थिति में नहीं है, तो यह तरीका हमेशा 'गलत' दिखाएगा.

जानकारी
पैरामीटर
[in] msgInfo
आने वाले मैसेज के लिए Weave मैसेज की जानकारी.
लौटाए गए सामान
अगर मैसेज साथी ने दिया है, तो 'सही'.

IsConnectionTransport

bool IsConnectionTransport() const 

IsPreparing

bool IsPreparing(
  void
) const 

जानकारी
लौटाए गए सामान
अगर बाइंडिंग अभी तैयार है, तो वैल्यू 'सही' होगी.

IsReady

bool IsReady(
  void
) const 

जानकारी
लौटाए गए सामान
अगर बाइंडिंग 'तैयार है' स्थिति में है, तो 'सही'.

IsUDPTransport

bool IsUDPTransport() const 

IsUnreliableUDPTransport

bool IsUnreliableUDPTransport() const 

IsWRMTransport

bool IsWRMTransport() const 

NewExchangeContext

WEAVE_ERROR NewExchangeContext(
  ExchangeContext *& appExchangeContext
)

बाइंडिंग के टारगेट में जिस पीयर को टारगेट किया गया है उसके साथ बातचीत करने के लिए, नया एक्सचेंज कॉन्टेक्स्ट तय करें.

जानकारी
पैरामीटर
[out] appExchangeContext
ऐसे पॉइंटर का रेफ़रंस जिसे असाइन किया गया नया Exchange कॉन्टेक्स्ट ऑब्जेक्ट मिलेगा. अगर यह तरीका काम नहीं करता, तो पॉइंटर को NULL पर सेट कर दिया जाएगा.
रिटर्न वैल्यू
WEAVE_NO_ERROR
अगर एक्सचेंज कॉन्टेक्स्ट असाइन किया गया है.
WEAVE_ERROR_NO_MEMORY
अगर एक्सचेंज कॉन्टेक्स्ट बांटने के लिए कोई मेमोरी उपलब्ध नहीं थी.
WEAVE_ERROR_INCORRECT_STATE
अगर बाइंडिंग 'रेडी स्थिति' में नहीं है.
other
बाइंडिंग के कॉन्फ़िगरेशन के आधार पर एक्सचेंज का कॉन्टेक्स्ट कॉन्फ़िगर करने से जुड़ी अन्य गड़बड़ियां.

रिलीज़ करें

void Release(
  void
)

बाइंडिंग ऑब्जेक्ट का रेफ़रंस रिलीज़ करें.

अगर बाइंडिंग ऑब्जेक्ट का कोई रेफ़रंस नहीं है, तो बाइंडिंग को बंद और फ़्री कर दिया जाता है.

RequestPrepare

WEAVE_ERROR RequestPrepare()

बाइंडिंग को कॉन्फ़िगर और तैयार करने के लिए, ऐप्लिकेशन का अनुरोध करें.

प्रोटोकॉल लेयर कोड, इस तरीके का इस्तेमाल उस बाइंडिंग पर कर सकता है जिसे कॉन्फ़िगर नहीं किया गया है या जिसके लिए यह अनुरोध पूरा नहीं किया जा सका. इस तरीके से, ऐप्लिकेशन में इवेंट ट्रिगर नहीं किया जा सकता (kEvent_ Readyrequest) कि अनुरोध करने पर, यह बाइंडिंग को इस्तेमाल के लिए कॉन्फ़िगर और तैयार करे.

इस तरीके को सिर्फ़ गैर-ज़रूरी या असफल स्थितियों में बाइंडिंग पर कॉल किया जा सकता है.

अगर यह ऐप्लिकेशन, मांग पर मिलने वाले कॉन्फ़िगरेशन/बाइंडिंग को बनाने की सुविधा के साथ काम नहीं करता, तो यह तरीका WEAVE_ERROR_NOT_IMPLEMENTED के साथ काम नहीं करेगा.

रीसेट करें

void Reset(
  void
)

बाइंडिंग को वापस कॉन्फ़िगर नहीं की गई स्थिति पर रीसेट करें.

जब Reset() को कॉल किया जाता है, तो बाइंडिंग के लिए पहले से जारी सभी कार्रवाइयां रद्द कर दी जाती हैं. साथ ही, बाइंडिंग से जुड़े सभी बाहरी कम्यूनिकेशन रिसॉर्स रिलीज़ कर दिए जाते हैं. Reset(), बाइंडिंग को कॉन्फ़िगर नहीं की गई स्थिति में रखता है. इसके बाद, इसे कॉन्फ़िगर करके फिर से तैयार किया जा सकता है.

Reset(), बाइंडिंग की पहचान संख्या में बदलाव नहीं करता.

SetDefaultResponseTimeout

void SetDefaultResponseTimeout(
  uint32_t msec
)

मिलते-जुलते ऐप्लिकेशन से बातचीत करते समय, एक्सचेंज रिस्पॉन्स का डिफ़ॉल्ट टाइम आउट सेट करें.

जानकारी
पैरामीटर
[in] timeout
नए जवाब का समय मिलीसेकंड में.

SetDefaultWRMPConfig

void SetDefaultWRMPConfig(
  const WRMPConfig & wrmpConfig
)

मिलते-जुलते ऐप्लिकेशन से संपर्क करते समय, WRMP कॉन्फ़िगरेशन का डिफ़ॉल्ट कॉन्फ़िगरेशन सेट करें.

जानकारी
पैरामीटर
[in] aWRMPConfig
नए डिफ़ॉल्ट कॉन्फ़िगरेशन वाले WRMPConfig स्ट्रक्चर का रेफ़रंस.

SetEventCallback

void SetEventCallback(
  EventCallback aEventCallback
)

बाइंडिंग के लिए कोई एपीआई इवेंट होने पर, ऐप्लिकेशन के लिए तय किए गए फ़ंक्शन को कॉल करने के लिए सेट करें.

जानकारी
पैरामीटर
[in] aEventCallback
कॉलबैक फ़ंक्शन के लिए पॉइंटर.

SetProtocolLayerCallback

void SetProtocolLayerCallback(
  EventCallback callback,
  void *state
)

किसी ऐप्लिकेशन की ओर से बाइंडिंग का इस्तेमाल करके, प्रोटोकॉल लेयर कोड के लिए इवेंट कॉलबैक फ़ंक्शन सेट करें.

बाइंडिंग के लिए एपीआई इवेंट होने पर, ऐप्लिकेशन के तय किए गए कॉलबैक फ़ंक्शन के साथ इस फ़ंक्शन को कॉल किया जाएगा.

जानकारी
पैरामीटर
[in] callback
कॉलबैक फ़ंक्शन के लिए पॉइंटर.
[in] state
स्टेट ऑब्जेक्ट का पॉइंटर. इसे प्रोटोकॉल लेयर कॉलबैक होने पर, प्रोटोकॉल लेयर कोड को दिया जाएगा.

सार्वजनिक स्टैटिक फ़ंक्शन

DefaultEventHandler

void DefaultEventHandler(
  void *apAppState,
  EventType aEvent,
  const InEventParam & aInParam,
  OutEventParam & aOutParam
)

बाइंडिंग एपीआई इवेंट के लिए डिफ़ॉल्ट हैंडलर.

ऐप्लिकेशन को ऐसे किसी भी एपीआई इवेंट के लिए इस तरीके का इस्तेमाल करना होगा जिसे वे नहीं पहचानते या मैनेज नहीं करते. दिए गए पैरामीटर बिलकुल वही होने चाहिए जो ऐप्लिकेशन के इवेंट हैंडलर फ़ंक्शन को बाइंडिंग के ज़रिए पास करते हैं.

जानकारी
पैरामीटर
[in] apAppState
बाइंडिंग से जुड़ी ऐप्लिकेशन की तय की गई स्थिति की जानकारी का पॉइंटर.
[in] aEvent
इवेंट कॉलबैक से पास किया गया इवेंट आईडी
[in] aInParam
इवेंट कॉलबैक से पास किए गए इनपुट इवेंट पैरामीटर का रेफ़रंस
[in] aOutParam
इवेंट कॉलबैक से पास किए गए आउटपुट इवेंट पैरामीटर का रेफ़रंस