nl::Weave::WeaveServerDelegateBase

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

Weave सर्वर डेलिगेट ऑब्जेक्ट को लागू करने के लिए एक सामान्य बेस क्लास.

खास जानकारी

इनहेरिटेंस

पहले से मालूम सब-क्लास:
  nl::Weave::Profiles::DeviceControl::DeviceControlDelegate
  nl::Weave::Profiles::FabricProvisioning::FabricProvisioningDelegate
  nl::Weave::Profiles::NetworkProvisioning::NetworkProvisioningDelegate
  nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningDelegate
  nl::Weave::Profiles::TokenPairing::TokenPairingDelegate
  nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::DropcamLegacyPairingDelegate

सुरक्षित किए गए टाइप

@69{
  kAccessControlResult_NotDetermined = 0,
  kAccessControlResult_Accepted = 1,
  kAccessControlResult_Rejected = 2,
  kAccessControlResult_Rejected_RespSent = 3,
  kAccessControlResult_Rejected_Silent = 4
}
enum
AccessControlResult typedef
uint8_t

सुरक्षित फ़ंक्शन

EnforceAccessControl(ExchangeContext *ec, uint32_t msgProfileId, uint8_t msgType, const WeaveMessageInfo *msgInfo, AccessControlResult & result)
virtual void
इनकमिंग सर्वर अनुरोध मैसेज के लिए मैसेज-लेवल ऐक्सेस कंट्रोल की नीति तय करने का वर्चुअल तरीका.
WeaveServerDelegateBase(void)

सुरक्षित किए गए टाइप

@69

 @69

AccessControlResult

uint8_t AccessControlResult

सुरक्षित फ़ंक्शन

EnforceAccessControl

virtual void EnforceAccessControl(
  ExchangeContext *ec,
  uint32_t msgProfileId,
  uint8_t msgType,
  const WeaveMessageInfo *msgInfo,
  AccessControlResult & result
)

इनकमिंग सर्वर अनुरोध मैसेज के लिए मैसेज-लेवल ऐक्सेस कंट्रोल की नीति तय करने का वर्चुअल तरीका.

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

इस तरीके को लागू करने पर, ऐक्सेस कंट्रोल की नीति की जांच के नतीजे के आधार पर, नतीजे की वैल्यू 'स्वीकार किया गया' या 'अस्वीकार किया गया' के तौर पर दिख सकती है. 'अस्वीकार किया गया' का नतीजा मिलने पर, अनुरोध करने वाले व्यक्ति को एक स्टेटस रिपोर्ट भेजी जाती है. इस रिपोर्ट में 'सामान्य/ऐक्सेस-अस्वीकार किया गया' स्थिति होती है. इसके अलावा, लागू करने का तरीका खुद ही अपना जवाब भेज सकता है. यह एक Statusरिपोर्ट या किसी अन्य तरह का मैसेज हो सकता है. इस मामले में, इस तरीके को यह बताने के लिए वेज को अस्वीकार_RespSent का नतीजा देना चाहिए कि जवाब पहले ही भेजा जा चुका है. आखिर में, लागू करने की प्रोसेस के तहत, अनुरोध करने वाले को जवाब भेजे बिना, अनुरोध को अस्वीकार करने का अनुरोध किया जा सकता है. इसके लिए, डेस्क_Silent की मदद से अनुरोध को अस्वीकार किया जाना चाहिए.

अपनी तुरंत पैरंट क्लास पर एक जैसे नाम वाले तरीके को कॉल करने के लिए, EnforceAccessControl() तरीके को बदलने वाली क्लास का इस्तेमाल करना ज़रूरी है. ऐसा तब होता है, जब वह WeaveServerDelegateBase क्लास या उस क्लास से मिली क्लास हो. ओवरराइड करने के तरीकों में सबसे पहले, नतीजे की वैल्यू को अपडेट करना चाहिए. इसके लिए, उन्हें ऐक्सेस कंट्रोल की नीति तय करनी चाहिए. इसके बाद, उन्हें तय करने के लिए बेस क्लास से संपर्क करना चाहिए.

विवरण
पैरामीटर
[in] ec
वह ExchangeContext जिस पर मैसेज मिला था.
[in] msgProfileId
मिले मैसेज का प्रोफ़ाइल आईडी.
[in] msgType
मिलने वाले मैसेज का मैसेज टाइप.
[in] msgInfo
WeaveMessageInfo स्ट्रक्चर, जिसमें मिले मैसेज की जानकारी होती है.
[in,out] result
मिले हुए मैसेज के लिए, ऐक्सेस कंट्रोल से जुड़ी नीति की जांच के नतीजे के बारे में जानकारी देने वाली वैल्यू. तरीके का इस्तेमाल करने पर, वैल्यू, आकलन की प्रक्रिया के मौजूदा पॉइंट पर संभावित नतीजे को दिखाती है. उम्मीद है कि वापस आने पर, मैसेज के लिए ऐक्सेस कंट्रोल की नीति का फ़ाइनल आकलन दिखाया जाएगा.

WeaveServerDelegateBase

 WeaveServerDelegateBase(
  void
)