nl::Weave::WeaveFabricState

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

WeaveFabricState के बारे में फ़ॉरवर्ड एलान.

खास जानकारी

कंस्ट्रक्टर और डिस्ट्रक्टर

WeaveFabricState(void)

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

PeerIndexType typedef
uint8_t
SessionEndCbFunct)(uint16_t keyId, uint64_t peerNodeId, void *context) typedef
void(*
State enum

सार्वजनिक विशेषताएं

AutoCreateKeys
bool
DebugFabricId
uint64_t
DefaultSubnet
uint16_t
FabricId
uint64_t
GroupKeyStore
ListenIPv4Addr
IPAddress
ListenIPv6Addr
IPAddress
LocalNodeId
uint64_t
LogKeys
bool
MaxUnencUDPMsgIdRcvd[WEAVE_CONFIG_MAX_PEER_NODES]
uint32_t
MessageLayer
MostRecentlyUsedIndexes[WEAVE_CONFIG_MAX_PEER_NODES]
PeerIndexType
NodeId[WEAVE_CONFIG_MAX_PEER_NODES]
uint64_t
PairingCode
const char *
State
uint8_t
UnencRcvFlags[WEAVE_CONFIG_MAX_PEER_NODES]
WeaveSessionState::ReceiveFlagsType
UseTestKey
bool

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

AddSharedSessionEndNode(uint64_t endNodeId, uint64_t terminatingNodeId, uint16_t keyId)
AddSharedSessionEndNode(WeaveSessionKey *sessionKey, uint64_t endNodeId)
यह तरीका शेयर किए गए एंड नोड रिकॉर्ड में नया आखिरी नोड जोड़ता है.
AllocSessionKey(uint64_t peerNodeId, uint16_t keyId, WeaveConnection *boundCon, WeaveSessionKey *& sessionKey)
ClearFabricState(void)
void
CreateFabric(void)
FindSessionKey(uint16_t keyId, uint64_t peerNodeId, bool create, WeaveSessionKey *& retRec)
इस तरीके से सेशन की एंट्री का पता चलता है.
FindSharedSession(uint64_t terminatingNodeId, WeaveAuthMode authMode, uint8_t encType)
शेयर किए गए किसी ऐसे सेशन की टेबल को खोजें जो शेयर किए गए किसी सेशन को खत्म करने के लिए बताए गए नोड को टारगेट करती है. साथ ही, यह दिए गए ऑथराइज़ेशन मोड और एन्क्रिप्शन टाइप से मैच करती है.
GetFabricState(uint8_t *buf, uint32_t bufSize, uint32_t & fabricStateLen)
GetPassword(uint8_t pwSrc, const char *& ps, uint16_t & pwLen)
GetSessionKey(uint16_t keyId, uint64_t peerNodeId, WeaveSessionKey *& outSessionKey)
GetSessionState(uint64_t remoteNodeId, uint16_t keyId, uint8_t encType, WeaveConnection *con, WeaveSessionState & outSessionState)
GetSharedSessionEndNodeIds(const WeaveSessionKey *sessionKey, uint64_t *endNodeIds, uint8_t endNodeIdsBufSize, uint8_t & endNodeIdsCount)
इस तरीके से, किसी खास सेशन को शेयर करने वाले सभी आखिरी नोड के आईडी दिखते हैं.
HandleConnectionClosed(WeaveConnection *con)
void
Init(void)
Init(nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase *groupKeyStore)
IsFabricAddress(const IPAddress & addr) const
bool
यह तय करता है कि कोई आईपी पता, लोकल वीव फ़ैब्रिक के अंदर किसी नोड के पते को दिखाता है या नहीं.
IsLocalFabricAddress(const IPAddress & addr) const
bool
यह तय करता है कि कोई आईपी पता, लोकल नोड के लिए वीव फ़ैब्रिक पते को दिखाता है या नहीं.
IsSharedSession(uint16_t keyId, uint64_t peerNodeId)
bool
इस तरीके से यह पता चलता है कि मिलते-जुलते ऐप्लिकेशन और keyId से जुड़ा सुरक्षित सेशन शेयर किया गया है या नहीं.
JoinExistingFabric(const uint8_t *fabricState, uint32_t fabricStateLen)
RegisterSessionEndCallback(SessionEndCbCtxt *sessionEndCb)
RemoveIdleSessionKeys()
bool
RemoveSessionKey(uint16_t keyId, uint64_t peerNodeId)
RemoveSessionKey(WeaveSessionKey *sessionKey, bool wasIdle)
void
RemoveSharedSessionEndNodes(const WeaveSessionKey *sessionKey)
void
RestoreSession(uint8_t *serializedSession, uint16_t serializedSessionLen)
किसी क्रम वाली स्थिति से, पहले से निलंबित Weave सुरक्षा सेशन को वापस लाएं.
SelectNodeAddress(uint64_t nodeId, uint16_t subnet) const
किसी तय नोड के लिए Weave ULA वाला IPAddress देता है.
SelectNodeAddress(uint64_t nodeId) const
किसी तय नोड के लिए Weave ULA वाला IPAddress देता है.
SetDelegate(FabricStateDelegate *aDelegate)
void
यह तरीका डेलिगेट ऑब्जेक्ट सेट करता है.
SetSessionKey(uint16_t keyId, uint64_t peerNodeId, uint8_t encType, WeaveAuthMode authMode, const WeaveEncryptionKey *encKey)
SetSessionKey(WeaveSessionKey *sessionKey, uint8_t encType, WeaveAuthMode authMode, const WeaveEncryptionKey *encKey)
Shutdown(void)
SuspendSession(uint16_t keyId, uint64_t peerNodeId, uint8_t *buf, uint16_t bufSize, uint16_t & serializedSessionLen)
Weave सुरक्षा के किसी चालू सेशन की स्थिति को निलंबित करें और क्रम से लगाएं.

स्ट्रक्चर

nl::Weave::WeaveFabricState::SessionEndCbCtxt

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

PeerIndexType

uint8_t PeerIndexType

SessionEndCbFunct

void(* SessionEndCbFunct)(uint16_t keyId, uint64_t peerNodeId, void *context)

स्थिति

 State

सार्वजनिक विशेषताएं

AutoCreateKeys

bool AutoCreateKeys

DebugFabricId

uint64_t DebugFabricId

DefaultSubnet

uint16_t DefaultSubnet

FabricId

uint64_t FabricId

GroupKeyStore

nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase * GroupKeyStore

ListenIPv4Addr

IPAddress ListenIPv4Addr

ListenIPv6Addr

IPAddress ListenIPv6Addr

LocalNodeId

uint64_t LocalNodeId

LogKeys

bool LogKeys

MaxUnencUDPMsgIdRcvd

uint32_t MaxUnencUDPMsgIdRcvd[WEAVE_CONFIG_MAX_PEER_NODES]

MessageLayer

WeaveMessageLayer * MessageLayer

MostRecentlyUsedIndexes

PeerIndexType MostRecentlyUsedIndexes[WEAVE_CONFIG_MAX_PEER_NODES]

NodeId

uint64_t NodeId[WEAVE_CONFIG_MAX_PEER_NODES]

PairingCode

const char * PairingCode

स्थिति

uint8_t State

UnencRcvFlags

WeaveSessionState::ReceiveFlagsType UnencRcvFlags[WEAVE_CONFIG_MAX_PEER_NODES]

UseTestKey

bool UseTestKey

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

AddSharedSessionEndNode

WEAVE_ERROR AddSharedSessionEndNode(
  uint64_t endNodeId,
  uint64_t terminatingNodeId,
  uint16_t keyId
)

AddSharedSessionEndNode

WEAVE_ERROR AddSharedSessionEndNode(
  WeaveSessionKey *sessionKey,
  uint64_t endNodeId
)

यह तरीका शेयर किए गए एंड नोड रिकॉर्ड में नया आखिरी नोड जोड़ता है.

विवरण
पैरामीटर
[in] sessionKey
WeaveSessionKey ऑब्जेक्ट उस सेशन को दिखाता है जिसके लिए नया आखिरी नोड जोड़ा जाना चाहिए.
[in] endNodeId
सेशन खत्म होने वाले नोड का नोड आईडी जोड़ना है.
रिटर्न वैल्यू
WEAVE_ERROR_TOO_MANY_SHARED_SESSION_END_NODES
अगर शेयर किए गए एंड नोड की सूची में नई एंट्री के लिए कोई खाली जगह नहीं है.
WEAVE_NO_ERROR
सफलता पर.

AllocSessionKey

WEAVE_ERROR AllocSessionKey(
  uint64_t peerNodeId,
  uint16_t keyId,
  WeaveConnection *boundCon,
  WeaveSessionKey *& sessionKey
)

ClearFabricState

void ClearFabricState(
  void
)

CreateFabric

WEAVE_ERROR CreateFabric(
  void
)

FindSessionKey

WEAVE_ERROR FindSessionKey(
  uint16_t keyId,
  uint64_t peerNodeId,
  bool create,
  WeaveSessionKey *& retRec
)

इस तरीके से सेशन की एंट्री का पता चलता है.

विवरण
पैरामीटर
[in] keyId
Weave की आइडेंटिफ़ायर.
[in] peerNodeId
मिलते-जुलते ऐप्लिकेशन का नोड आइडेंटिफ़ायर.
[in] create
एक बूलियन वैल्यू, जिससे पता चलता है कि किसी कुंजी के न मिलने पर, नई कुंजी बनाई जानी चाहिए या नहीं.
[out] retRec
WeaveSessionKey ऑब्जेक्ट का पॉइंटर रेफ़रंस.
रिटर्न वैल्यू
WEAVE_ERROR_WRONG_KEY_TYPE
अगर डाली गई कुंजी, सेशन कुंजी का टाइप नहीं है.
WEAVE_ERROR_INVALID_ARGUMENT
अगर इनपुट आर्ग्युमेंट में गलत वैल्यू हैं.
WEAVE_ERROR_KEY_NOT_FOUND
अगर तय की गई कुंजी नहीं मिलती है.
WEAVE_ERROR_TOO_MANY_KEYS
अगर नई सेशन कुंजी बनाने के लिए कोई मुफ़्त एंट्री नहीं है.
WEAVE_NO_ERROR
सफलता पर.

FindSharedSession

WeaveSessionKey * FindSharedSession(
  uint64_t terminatingNodeId,
  WeaveAuthMode authMode,
  uint8_t encType
)

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

विवरण
पैरामीटर
[in] terminatingNodeId
सेशन टर्मिनेटर का नोड आइडेंटिफ़ायर.
[in] authMode
पसंदीदा सेशन की पुष्टि करने वाला मोड.
[in] encType
मैसेज को एन्क्रिप्ट (सुरक्षित) करने का मनचाहा टाइप.
रिटर्न वैल्यू
WeaveSessionKey
* WeaveSessionKey ऑब्जेक्ट का पॉइंटर, जो मैच करने वाले शेयर किए गए सेशन को दिखाता है; या अगर कोई मिलता-जुलता सेशन नहीं मिलता है, तो वैल्यू शून्य हो जाएगी.

GetFabricState

WEAVE_ERROR GetFabricState(
  uint8_t *buf,
  uint32_t bufSize,
  uint32_t & fabricStateLen
)

GetPassword

WEAVE_ERROR GetPassword(
  uint8_t pwSrc,
  const char *& ps,
  uint16_t & pwLen
)

GetSessionKey

WEAVE_ERROR GetSessionKey(
  uint16_t keyId,
  uint64_t peerNodeId,
  WeaveSessionKey *& outSessionKey
)

GetSessionState

WEAVE_ERROR GetSessionState(
  uint64_t remoteNodeId,
  uint16_t keyId,
  uint8_t encType,
  WeaveConnection *con,
  WeaveSessionState & outSessionState
)

GetSharedSessionEndNodeIds

WEAVE_ERROR GetSharedSessionEndNodeIds(
  const WeaveSessionKey *sessionKey,
  uint64_t *endNodeIds,
  uint8_t endNodeIdsBufSize,
  uint8_t & endNodeIdsCount
)

इस तरीके से, किसी खास सेशन को शेयर करने वाले सभी आखिरी नोड के आईडी दिखते हैं.

विवरण
पैरामीटर
[in] sessionKey
सेशन के मुख्य ऑब्जेक्ट का पॉइंटर.
[in] endNodeIds
नोड आईडी के बफ़र का पॉइंटर.
[in] endNodeIdsMaxCount
बफ़र में फ़िट हो सकने वाले नोड आईडी की ज़्यादा से ज़्यादा संख्या.
[out] endNodeIdsCount
बताए गए सेशन को शेयर करने वाले आखिरी नोड के आईडी की संख्या.
रिटर्न वैल्यू
WEAVE_ERROR_BUFFER_TOO_SMALL
अगर आखिरी नोड के आईडी का बफ़र दिया गया है, तो वह काफ़ी बड़ा नहीं है.
WEAVE_NO_ERROR
सफलता पर.

HandleConnectionClosed

void HandleConnectionClosed(
  WeaveConnection *con
)

इनिट

WEAVE_ERROR Init(
  void
)

इनिट

WEAVE_ERROR Init(
  nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase *groupKeyStore
)

IsFabricAddress

bool IsFabricAddress(
  const IPAddress & addr
) const 

यह तय करता है कि कोई आईपी पता, लोकल वीव फ़ैब्रिक के अंदर किसी नोड के पते को दिखाता है या नहीं.

IsLocalFabricAddress

bool IsLocalFabricAddress(
  const IPAddress & addr
) const 

यह तय करता है कि कोई आईपी पता, लोकल नोड के लिए वीव फ़ैब्रिक पते को दिखाता है या नहीं.

IsSharedSession

bool IsSharedSession(
  uint16_t keyId,
  uint64_t peerNodeId
)

इस तरीके से यह पता चलता है कि मिलते-जुलते ऐप्लिकेशन और keyId से जुड़ा सुरक्षित सेशन शेयर किया गया है या नहीं.

विवरण
पैरामीटर
[in] keyId
सेशन के लिए मुख्य आइडेंटिफ़ायर.
[in] peerNodeId
मिलते-जुलते ऐप्लिकेशन का नोड आइडेंटिफ़ायर.
रिटर्न वैल्यू
bool
तय किया गया सेशन शेयर किया गया है या नहीं.

JoinExistingFabric

WEAVE_ERROR JoinExistingFabric(
  const uint8_t *fabricState,
  uint32_t fabricStateLen
)

RegisterSessionEndCallback

WEAVE_ERROR RegisterSessionEndCallback(
  SessionEndCbCtxt *sessionEndCb
)

RemoveIdleSessionKeys

bool RemoveIdleSessionKeys()

RemoveSessionKey

WEAVE_ERROR RemoveSessionKey(
  uint16_t keyId,
  uint64_t peerNodeId
)

RemoveSessionKey

void RemoveSessionKey(
  WeaveSessionKey *sessionKey,
  bool wasIdle
)

RemoveSharedSessionEndNodes

void RemoveSharedSessionEndNodes(
  const WeaveSessionKey *sessionKey
)

RestoreSession

WEAVE_ERROR RestoreSession(
  uint8_t *serializedSession,
  uint16_t serializedSessionLen
)

किसी क्रम वाली स्थिति से, पहले से निलंबित Weave सुरक्षा सेशन को वापस लाएं.

SelectNodeAddress

IPAddress SelectNodeAddress(
  uint64_t nodeId,
  uint16_t subnet
) const 

किसी खास नोड के लिए Weave ULA वाला IPAddress देता है.

इस वैरिएंट से, सबनेट तय करने की अनुमति मिलती है.

विवरण
पैरामीटर
[in] nodeId
नोड का नोड आईडी नंबर जिसकी शिकायत की गई है.
[in] subnet
ULA का मनचाहा सबनेट.
रिटर्न वैल्यू
IPAddress
कोई IPAddress ऑब्जेक्ट.

SelectNodeAddress

IPAddress SelectNodeAddress(
  uint64_t nodeId
) const 

किसी तय नोड के लिए Weave ULA वाला IPAddress देता है.

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

विवरण
पैरामीटर
[in] nodeId
नोड का नोड आईडी नंबर जिसकी शिकायत की गई है.
रिटर्न वैल्यू
IPAddress
कोई IPAddress ऑब्जेक्ट.

SetDelegate

void SetDelegate(
  FabricStateDelegate *aDelegate
)

यह तरीका डेलिगेट ऑब्जेक्ट सेट करता है.

जब हम फ़ैब्रिक आईडी बदलते हैं या कोई फ़ैब्रिक बनाते हैं या कोई कपड़ा छोड़ देते हैं, तो डेलिगेट के कॉलबैक मेथड शुरू हो जाते हैं (फ़ैब्रिक की स्थिति को साफ़ तौर पर सेट करते समय)

अगर डेलिगेट पहले से सेट है, तो इस तरीके का इस्तेमाल करने पर दूसरा कॉल करने पर पिछले डेलिगेट की जगह ले लिया जाएगा.

विवरण
पैरामीटर
[in] aDelegate
डेलिगेट ऑब्जेक्ट. अगर किसी प्रतिनिधि की ज़रूरत नहीं है, तो यह वैल्यू शून्य हो सकती है.

SetSessionKey

WEAVE_ERROR SetSessionKey(
  uint16_t keyId,
  uint64_t peerNodeId,
  uint8_t encType,
  WeaveAuthMode authMode,
  const WeaveEncryptionKey *encKey
)

SetSessionKey

WEAVE_ERROR SetSessionKey(
  WeaveSessionKey *sessionKey,
  uint8_t encType,
  WeaveAuthMode authMode,
  const WeaveEncryptionKey *encKey
)

बंद करें

WEAVE_ERROR Shutdown(
  void
)

SuspendSession

WEAVE_ERROR SuspendSession(
  uint16_t keyId,
  uint64_t peerNodeId,
  uint8_t *buf,
  uint16_t bufSize,
  uint16_t & serializedSessionLen
)

Weave सुरक्षा के किसी चालू सेशन की स्थिति को निलंबित करें और क्रम से लगाएं.

यह फ़ंक्शन, बताए गए Weave सुरक्षा सेशन की स्थिति को, दिए गए बफ़र में क्रम से लगाता है. साथ ही, सेशन को इस तरह निलंबित कर देता है कि कोई और मैसेज न तो भेजा जा सके और न ही लिया जा सके.

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

WeaveFabricState

 WeaveFabricState(
  void
)