nl::Weave::WeaveMessageLayer

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

ההגדרה של הכיתה WeaveMessageLayer, שמנהלת את התקשורת עם צמתים אחרים של Weave.

סיכום

הוא משתמש באחת מנקודות קצה של InetLayer כדי ליצור ערוץ תקשורת עם צומתי Weave אחרים.

פונקציות constructor ו-destructor

WeaveMessageLayer(void)
constructor של שכבת Weave Message.

סוגי פריטים ציבוריים

AcceptErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err) typedef
void(*
הפונקציה הזו היא השכבה הגבוהה יותר לקריאה חוזרת (callback) לדיווח על שגיאה במהלך טיפול בחיבור TCP נכנס.
CallbackRemovedFunct)(void *listenerState) typedef
void(*
הפונקציה הזו מופעלת כדי להסיר קריאה חוזרת (callback).
ConnectionReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveConnection *con) typedef
void(*
הפונקציה הזו היא קריאה חוזרת (callback) של השכבה העליונה לטיפול בחיבור TCP נכנס.
MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive) typedef
void(*
הפונקציה הזו היא קריאה חוזרת (callback) של האפליקציה לדיווח על שינוי בפעילות בשכבת ההודעה.
MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload) typedef
void(*
הפונקציה הזו היא הקריאה החוזרת של השכבה הגבוהה יותר שמופעלת כשמקבלים הודעת Weave דרך UDP.
ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
הפונקציה הזו היא הקריאה החוזרת של השכבה הגבוהה יותר שמופעלת במקרה של שגיאה.
State{
  kState_NotInitialized = 0,
  kState_Initializing = 1,
  kState_Initialized = 2
}
טיפוסים בני מנייה (enum)
המצב של WeaveMessageLayer.
TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload) typedef
void(*
הפונקציה הזו היא פונקציית הקריאה החוזרת בשכבה גבוהה יותר, שנקראת כשמקבלים חבילה במנהרה דרך מנהרה מקומית של UDP.

מאפיינים ציבוריים

AppState
void *
מצביע לאובייקט מצב ספציפי לאפליקציה.
ExchangeMgr
[לקריאה בלבד] האובייקט המשויך מסוג WeaveExchangeManager.
FabricState
[לקריאה בלבד] האובייקט WeaveFabricState המשויך.
IncomingConIdleTimeout
uint32_t
זמן קצוב לתפוגה (באלפיות השנייה) במצב חוסר פעילות כברירת מחדל לחיבורים נכנסים.
Inet
InetLayer *
[לקריאה בלבד] אובייקט InetLayer המשויך.
IsListening
bool
[לקריאה בלבד] הערך הוא True אם מקשיבים להודעות או חיבורים נכנסים, אחרת, הערך יהיה FALSE.
OnAcceptError
OnConnectionReceived
OnMessageReceived
OnReceiveError
OnUDPTunneledMessageReceived
SecurityMgr
[READ ONLY] האובייקט WeaveSecurityManager המשויך.
State
uint8_t
[קריאה בלבד] מצב האובייקט WeaveMessageLayer.
SystemLayer
mDropMessage
bool
פנימית ולניפוי באגים בלבד. כשהיא מוגדרת, WeaveMessageLayer משחררת את ההודעה וחוזרת.

פונקציות ציבוריות

ClearUnsecuredConnectionListener(ConnectionReceiveFunct oldOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved)
CloseEndpoints(void)
סגירה של כל נקודות הקצה הפתוחות מסוג TCP ו-UDP.
CreateTunnel(WeaveConnectionTunnel **tunPtr, WeaveConnection & conOne, WeaveConnection & conTwo, uint32_t inactivityTimeoutMS)
יוצרים WeaveConnectionTunnel על ידי צימוד של שני WeaveConnections מסוימים.
DecodeHeader(PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
פענוח כותרת של שכבת הודעה של Weave מהודעת Weave שהתקבלה.
EncodeMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf, WeaveConnection *con, uint16_t maxLen, uint16_t reserve)
מקודדים כותרת WeaveMessageLayer בתוך PacketBuffer.
EncodeMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntId, WeaveMessageInfo *msgInfo, PacketBuffer *payload)
מקודדים כותרת של שכבת הודעת Weave בתוך PacketBuffer.
EphemeralUDPPortEnabled(void) const
bool
בדיקה אם צריך לשלוח חילופי נתונים של Weave UDP באופן מקומי מיציאת מקור UDP זמנית.
GetConnectionPoolStats(nl::Weave::System::Stats::count_t & aOutInUse) const
void
אחזור מספר ה-WeaveConnections שבשימוש וגודל המאגר.
IPv4ListenEnabled(void) const
bool
בודקים אם ה-WeaveMessageLayer מוגדר להאזנה לתקשורת נכנסת דרך IPv4.
IPv6ListenEnabled(void) const
bool
בודקים אם ה-WeaveMessageLayer מוגדר להאזנה לתקשורת נכנסת דרך IPv4.
Init(InitContext *context)
אתחול האובייקט של שכבת ההודעה ב-Weave.
IsBoundToLocalIPv4Address(void) const
bool
בודקים אם WeaveMessageLayer מקושר לכתובת IPv4 מקומית.
IsBoundToLocalIPv6Address(void) const
bool
בודקים אם ה-WeaveMessageLayer מקושר לכתובת IPv6 מקומית.
IsMessageLayerActive(void)
bool
NewConnection(void)
יצירת אובייקט WeaveConnection חדש ממאגר.
NewConnectionTunnel(void)
יוצרים אובייקט WeaveConnectionTunnel חדש ממאגר.
ReEncodeMessage(PacketBuffer *buf)
RefreshEndpoints(void)
רענון נקודות הקצה של InetLayer בהתאם למצב הנוכחי של ממשקי הרשת של המערכת.
ResendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
שליחת מחדש של הודעת Weave מוצפנת באמצעות נקודת הקצה הבסיסית של Inetlayer UDP.
ResendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
שליחת מחדש של הודעת Weave מקודדת באמצעות נקודת הקצה הבסיסית של Inetlayer UDP.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
שליחת מחדש של הודעת Weave מקודדת באמצעות נקודת הקצה הבסיסית של Inetlayer UDP.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId interfaceId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
שליחה מחדש של הודעת Weave מקודדת באמצעות נקודת הקצה הבסיסית של Inetlayer UDP.
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
שליחת הודעת Weave באמצעות נקודת הקצה הבסיסית של Inetlayer UDP אחרי קידוד שלה.
SendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
שליחת הודעת Weave באמצעות נקודת הקצה הבסיסית של Inetlayer UDP אחרי קידוד שלה.
SendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntfId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
לאחר הקידוד, תישלח הודעת Weave באמצעות נקודת הקצה הבסיסית של Inetlayer UDP.
SendUDPTunneledMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
פונקציה לשליחת חבילה במנהרה דרך מנהרה מקומית של UDP.
SetSignalMessageLayerActivityChanged(MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler)
void
אפשר להגדיר handler של אפליקציות שיישלח בכל פעם שהפעילות של שכבת ההודעות משתנה.
SetTCPListenEnabled(bool val)
void
הפעלה או השבתה של האזנה לחיבורי TCP נכנסים ב-WeaveMessageLayer.
SetUDPListenEnabled(bool val)
void
הפעלה או השבתה של ההאזנה להודעות UDP נכנסות ב-WeaveMessageLayer.
SetUnsecuredConnectionListener(ConnectionReceiveFunct newOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved, bool force, void *listenerState)
Shutdown(void)
משביתים את WeaveMessageLayer.
TCPListenEnabled(void) const
bool
בודקים אם WeaveMessageLayer מוגדר להאזנה לחיבורי TCP נכנסים.
UDPListenEnabled(void) const
bool
בודקים אם ה-WeaveMessageLayer מוגדר להאזנה להודעות UDP נכנסות.
UnsecuredListenEnabled(void) const
bool
הפעלה או השבתה של האפשרות להתחיל החלפות Weave UDP מיציאת מקור זמנית של UDP.

פונקציות סטטיות ציבוריות

GetMaxWeavePayloadSize(const PacketBuffer *msgBuf, bool isUDP, uint32_t udpMTU)
uint32_t
מקבלים את גודל המטען הייעודי (payload) המקסימלי של Weave לתצורת הודעה ול-PacketBuffer שסופק.
GetPeerDescription(char *buf, size_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, InterfaceId interfaceId, const WeaveConnection *con)
void
יצירת מחרוזת שמתארת צומת של אפליקציה להשוואה ואת פרטי הכתובת או החיבור שלו.
GetPeerDescription(char *buf, size_t bufSize, const WeaveMessageInfo *msgInfo)
void
יצירת מחרוזת שמתארת צומת עמית על סמך המידע שמשויך להודעה שהתקבלה מהעמית.

שיעורים

nl::Weave::WeaveMessageLayer::InitContext

ההגדרה של המחלקה InitContext.

סוגים ציבוריים

AcceptErrorFunct

void(* AcceptErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err)

הפונקציה הזו היא קריאה חוזרת (callback) בשכבה גבוהה יותר לדיווח על שגיאה במהלך הטיפול בחיבור TCP נכנס.

פרטים
פרמטרים
[in] msgLayer
הפניה לאובייקט WeaveMessageLayer.
[in] err
השגיאה WEAVE_ERROR נתקלה במהלך טיפול בחיבור TCP נכנס.

CallbackRemovedFunct

void(* CallbackRemovedFunct)(void *listenerState)

הפונקציה הזו מופעלת כדי להסיר קריאה חוזרת (callback).

פרטים
פרמטרים
[in] listenerState
הפניה לאובייקט של מצב האפליקציה.

ConnectionReceiveFunct

void(* ConnectionReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveConnection *con)

הפונקציה הזו היא השכבה הגבוהה יותר של קריאה חוזרת (callback) לטיפול בחיבור TCP נכנס.

פרטים
פרמטרים
[in] msgLayer
מצביע לאובייקט WeaveMessageLayer.
[in] con
מצביע אל האובייקט WeaveConnection.

MessageLayerActivityChangeHandlerFunct

void(* MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive)

הפונקציה הזו היא קריאה חוזרת (callback) של האפליקציה לדיווח על שינוי בפעילות בשכבת ההודעה.

שכבת ההודעות נחשבת פעילה אם יש לפחות חילופי הודעות פתוחים אחד או בקשה אחת בהמתנה לסנכרון של ספירת ההודעות.

פרטים
פרמטרים
[in] messageLayerIsActive
ערך בוליאני שמציין אם שכבת ההודעה פעילה או לא.

MessageReceiveFunct

void(* MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload)

הפונקציה הזו היא פונקציית הקריאה החוזרת (callback) של השכבה העליונה, שנקראת כשמקבלים הודעת Weave ב-UDP.

פרטים
פרמטרים
[in] msgLayer
מצביע לאובייקט WeaveMessageLayer.
[in] msgInfo
מצביע אל האובייקט WeaveMessageInfo.
[in] payload
מצביע על הודעה של PacketBuffer שמכילה חבילה מנהרה.

ReceiveErrorFunct

void(* ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo)

הפונקציה הזו היא קריאה חוזרת (callback) של השכבה העליונה שנקראת כשמתרחשת שגיאה.

פרטים
פרמטרים
[in] msgLayer
הפניה לאובייקט WeaveMessageLayer.
[in] err
השגיאה WEAVE_ERROR נתקלה בעת קבלת נתונים.
[in] pktInfo
הפניה לקריאה בלבד לאובייקט IPPacketInfo.

סטטוס

 State

המצב של WeaveMessageLayer.

מאפיינים
kState_Initialized

המצב שבו מתבצע אתחול של WeaveMessageLayer.

kState_Initializing

המצב שבו WeaveMessageLayer נמצא בתהליך אתחול.

kState_NotInitialized

המצב שבו WeaveMessageLayer לא מאותחל.

TunneledMsgReceiveFunct

void(* TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload)

הפונקציה הזו היא פונקציית הקריאה החוזרת בשכבה גבוהה יותר, שנקראת כשמקבלים חבילה במנהרה דרך מנהרה מקומית של UDP.

פרטים
פרמטרים
[in] msgLayer
הפניה לאובייקט WeaveMessageLayer.
[in] payload
מצביע על הודעה של PacketBuffer שמכילה חבילה מנהרה.

מאפיינים גלויים לכולם

AppState

void * AppState

מצביע לאובייקט מצב ספציפי לאפליקציה.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[לקריאה בלבד] האובייקט המשויך מסוג WeaveExchangeManager.

FabricState

WeaveFabricState * FabricState

[לקריאה בלבד] האובייקט WeaveFabricState המשויך.

IncomingConIdleTimeout

uint32_t IncomingConIdleTimeout

זמן קצוב לתפוגה (באלפיות השנייה) במצב חוסר פעילות כברירת מחדל לחיבורים נכנסים.

Inet

InetLayer * Inet

[לקריאה בלבד] אובייקט InetLayer המשויך.

IsListening

bool IsListening

[לקריאה בלבד] הערך True אם המערכת מקשיבה לחיבורים או להודעות נכנסות, ו-False אחרת.

OnAcceptError

AcceptErrorFunct OnAcceptError

OnConnectionReceived

ConnectionReceiveFunct OnConnectionReceived

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnUDPTunneledMessageReceived

TunneledMsgReceiveFunct OnUDPTunneledMessageReceived

SecurityMgr

WeaveSecurityManager * SecurityMgr

[READ ONLY] האובייקט WeaveSecurityManager המשויך.

סטטוס

uint8_t State

[לקריאה בלבד] המצב של האובייקט WeaveMessageLayer.

SystemLayer

System::Layer * SystemLayer

mDropMessage

bool mDropMessage

פנימית ולניפוי באגים בלבד. כשהיא מוגדרת, WeaveMessageLayer משחררת את ההודעה וחוזרת.

פונקציות ציבוריות

ClearUnsecuredConnectionListener

WEAVE_ERROR ClearUnsecuredConnectionListener(
  ConnectionReceiveFunct oldOnUnsecuredConnectionReceived,
  CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved
)

CloseEndpoints

WEAVE_ERROR CloseEndpoints(
  void
)

סגירה של כל נקודות הקצה הפתוחות מסוג TCP ו-UDP.

לאחר מכן, מבטלים את כל ה-WeaveConnections הפתוחים ומשביתים את כל האובייקטים הפתוחים מסוג WeaveConnectionTunnel.

מידע נוסף זמין במאמר:
Shutdown()‎.

CreateTunnel

WEAVE_ERROR CreateTunnel(
  WeaveConnectionTunnel **tunPtr,
  WeaveConnection & conOne,
  WeaveConnection & conTwo,
  uint32_t inactivityTimeoutMS
)

יצירת WeaveConnectionTunnel על ידי צירוף של שני WeaveConnections ספציפיים.

אם היצירה מסתיימת בהצלחה, נקודות הקצה של ה-TCP שתואמות לאובייקטים של הרכיב WeaveConnection מועברות ל-WeaveConnectionTunnel. אחרת, חיבורי WeaveConnection נסגרים.

פרטים
פרמטרים
[out] tunPtr
מצביע של אובייקט WeaveConnectionTunnel.
[in] conOne
הפניה לאובייקט WeaveConnection הראשון.
[in] conTwo
הפניה לאובייקט WeaveConnection השני.
[in] inactivityTimeoutMS
משך הזמן המקסימלי, באלפיות השנייה, שבו מנהרת החיבור של Weave יכולה להיות במצב חוסר פעילות.
ערכים מוחזרים
WEAVE_NO_ERROR
לאחר היצירה המוצלחת של WeaveConnectionTunnel.
WEAVE_ERROR_INCORRECT_STATE
אם אובייקטי WeaveConnection של WeaveConnectionTunnel לא נמצאים במצב הנכון.
WEAVE_ERROR_NO_MEMORY
אם לא ניתן ליצור אובייקט WeaveConnectionTunnel חדש.

DecodeHeader

WEAVE_ERROR DecodeHeader(
  PacketBuffer *msgBuf,
  WeaveMessageInfo *msgInfo,
  uint8_t **payloadStart
)

פענוח הכותרת של שכבת הודעת Weave מהודעת Weave שהתקבלה.

פרטים
פרמטרים
[in] msgBuf
מצביע אל האובייקט PacketBuffer שמחזיק את הודעת Weave.
[in] msgInfo
מצביע לאובייקט WeaveMessageInfo שיקבל מידע על ההודעה.
[out] payloadStart
מצביע על מיקום המיקום במאגר הנתונים הזמני אחרי סיום הפענוח.
ערכים מוחזרים
WEAVE_NO_ERROR
במהלך הפענוח של כותרת ההודעה.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
אם אורך מאגר ההודעות שהוענק לא חוקי.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
אם אין תמיכה בגרסה של פורמט הכותרת של הודעת Weave.

EncodeMessage

WEAVE_ERROR EncodeMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf,
  WeaveConnection *con,
  uint16_t maxLen,
  uint16_t reserve
)

מקודדים כותרת WeaveMessageLayer בתוך PacketBuffer.

פרטים
פרמטרים
[in] msgInfo
הפניה לאובייקט WeaveMessageInfo שמכיל מידע על ההודעה שרוצים לקודד.
[in] msgBuf
מצביע אל האובייקט PacketBuffer שיכיל את הודעת Weave.
[in] con
מצביע אל האובייקט WeaveConnection.
[in] maxLen
האורך המקסימלי של הודעת Weave המקודדת.
[in] reserve
השטח השמור לפני המטען הייעודי (payload) שבו ניתן להחזיק את כותרת ההודעה של Weave.
ערכים מוחזרים
WEAVE_NO_ERROR
קידוד מוצלח של ההודעה.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
אם הגרסה של פורמט הכותרת של הודעת Weave לא נתמכת.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
אם אורך עומס העבודה (payload) במאגר ההודעות הוא אפס.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
אם סוג ההצפנה בכותרת ההודעה לא נתמך.
WEAVE_ERROR_MESSAGE_TOO_LONG
אם ההודעה המקודדת תהיה ארוכה מהמקסימום המבוקש.
WEAVE_ERROR_BUFFER_TOO_SMALL
אם אין מספיק מקום לפני או אחרי עומס העבודה של ההודעה.
other
שגיאות שנוצרות על ידי אובייקט מצב הבד במהלך האחזור של מצב הסשן.

EncodeMessage

WEAVE_ERROR EncodeMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  InterfaceId sendIntId,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *payload
)

קידוד כותרת של שכבת הודעה של Weave ל-PacketBuffer.

פרטים
פרמטרים
[in] destAddr
כתובת ה-IP של היעד.
[in] destPort
יציאת היעד.
[in] sendIntId
הממשק שבו יש לשלוח את הודעת Weave.
[in] msgInfo
הפניה לאובייקט WeaveMessageInfo.
[in] payload
מצביע אל האובייקט PacketBuffer שיכיל את הודעת Weave.
ערכים שמוחזרים
WEAVE_NO_ERROR
לאחר קידוד מוצלח של הודעת Weave.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
אם אין תמיכה בגרסה של הודעת Weave.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
אם אורך עומס העבודה (payload) במאגר ההודעות הוא אפס.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
אם סוג ההצפנה לא נתמך.
WEAVE_ERROR_MESSAGE_TOO_LONG
אם ההודעה המוצפנת תהיה ארוכה יותר מהאורך המקסימלי המבוקש.
WEAVE_ERROR_BUFFER_TOO_SMALL
אם אין מספיק מקום לפני או אחרי עומס העבודה של ההודעה.
other
שגיאות שנוצרות על ידי אובייקט מצב הבד במהלך האחזור של מצב הסשן.

EphemeralUDPPortEnabled

bool EphemeralUDPPortEnabled(
  void
) const 

בדיקה אם חילופי UDP של Weave שהתרחשו באופן מקומי צריכים להישלח מיציאת מקור זמנית של UDP.

GetConnectionPoolStats

void GetConnectionPoolStats(
  nl::Weave::System::Stats::count_t & aOutInUse
) const 

מקבלים את מספר ה-WeaveConnects בשימוש ואת גודל המאגר.

פרטים
פרמטרים
[out] aOutInUse
הפניה ל-size_t, שבה מאוחסן מספר החיבורים שבשימוש.

IPv4ListenEnabled

bool IPv4ListenEnabled(
  void
) const 

בודקים אם ה-WeaveMessageLayer מוגדר להאזנה לתקשורת נכנסת דרך IPv4.

IPv6ListenEnabled

bool IPv6ListenEnabled(
  void
) const 

בודקים אם WeaveMessageLayer מוגדר להאזנה לתקשורת נכנסת דרך IPv4.

Init

WEAVE_ERROR Init(
  InitContext *context
)

אתחול אובייקט השכבה של Weave Message.

פרטים
פרמטרים
[in] context
מצביע אל האובייקט InitContext.
ערכים מוחזרים
WEAVE_NO_ERROR
אחרי אתחול מוצלח.
WEAVE_ERROR_INVALID_ARGUMENT
אם אובייקט InitContext שהועבר הוא NULL.
WEAVE_ERROR_INCORRECT_STATE
אם הסטטוס של האובייקט WeaveMessageLayer שגוי.
other
שגיאות שנוצרו משכבת ה-Inet התחתונה במהלך יצירת נקודת הקצה.

IsBoundToLocalIPv4Address

bool IsBoundToLocalIPv4Address(
  void
) const 

בודקים אם WeaveMessageLayer מקושר לכתובת IPv4 מקומית.

IsBoundToLocalIPv6Address

bool IsBoundToLocalIPv6Address(
  void
) const 

בודקים אם ה-WeaveMessageLayer מקושר לכתובת IPv6 מקומית.

IsMessageLayerActive

bool IsMessageLayerActive(
  void
)

NewConnection

WeaveConnection * NewConnection(
  void
)

יצירת אובייקט WeaveConnection חדש ממאגר.

פרטים
החזרות
אם הפעולה בוצעה בהצלחה, הפונקציה מחזירה הפניה לאובייקט WeaveConnection שנוצר. אחרת, הפונקציה מחזירה את הערך NULL.

NewConnectionTunnel

WeaveConnectionTunnel * NewConnectionTunnel(
  void
)

יוצרים אובייקט WeaveConnectionTunnel חדש ממאגר.

פרטים
החזרות
מצביע לאובייקט WeaveConnectionTunnel החדש שנוצר, אם הפעולה בוצעה ללא שגיאות, אחרת הערך NULL.

ReEncodeMessage

WEAVE_ERROR ReEncodeMessage(
  PacketBuffer *buf
)

RefreshEndpoints

WEAVE_ERROR RefreshEndpoints(
  void
)

רענון נקודות הקצה של InetLayer בהתאם למצב הנוכחי של ממשקי הרשת של המערכת.

פרטים
ערכים שמוחזרים
WEAVE_NO_ERROR
אחרי רענון מוצלח של נקודות קצה.
InetLayer
שגיאות על סמך קריאות ליצירת נקודות קצה מסוג TCP/UDP.

ResendMessage

WEAVE_ERROR ResendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

שליחת מחדש של הודעת Weave מקודדת באמצעות נקודת הקצה הבסיסית של Inetlayer UDP.

פרטים
פרמטרים
[in] msgInfo
מצביע אל האובייקט WeaveMessageInfo.
[in] payload
הפניה לאובייקט PacketBuffer שמכיל את הודעת Weave המוצפנת.
ערכים מוחזרים
WEAVE_NO_ERROR
על שליחת ההודעה לשכבת הרשת.
errors
שנוצר מנקודת הקצה (endpoint) התחתונה של השכבה Inet במהלך השליחה.

ResendMessage

WEAVE_ERROR ResendMessage(
  const IPAddress & destAddr,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

שליחת מחדש של הודעת Weave מקודדת באמצעות נקודת הקצה הבסיסית של Inetlayer UDP.

פרטים
פרמטרים
[in] destAddr
כתובת ה-IP של היעד.
[in] msgInfo
מצביע אל האובייקט WeaveMessageInfo.
[in] payload
מצביע אל האובייקט PacketBuffer שמחזיק את הודעת Weave המקודדת.
ערכים מוחזרים
WEAVE_NO_ERROR
על שליחת ההודעה לשכבת הרשת.
errors
שנוצר מנקודת הקצה (endpoint) התחתונה של השכבה Inet במהלך השליחה.

ResendMessage

WEAVE_ERROR ResendMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

שליחת מחדש של הודעת Weave מקודדת באמצעות נקודת הקצה הבסיסית של Inetlayer UDP.

פרטים
פרמטרים
[in] destAddr
כתובת ה-IP של היעד.
[in] destPort
יציאת היעד.
[in] msgInfo
הפניה לאובייקט WeaveMessageInfo.
[in] payload
מצביע אל האובייקט PacketBuffer שמחזיק את הודעת Weave המקודדת.
ערכים מוחזרים
WEAVE_NO_ERROR
על שליחת ההודעה לשכבת הרשת.
errors
שנוצר מנקודת הקצה (endpoint) התחתונה של השכבה Inet במהלך השליחה.

ResendMessage

WEAVE_ERROR ResendMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  InterfaceId interfaceId,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

שליחה מחדש של הודעת Weave מקודדת באמצעות נקודת הקצה הבסיסית של Inetlayer UDP.

הערה: אם לא סופקה כתובת היעד, יש לנסות לאתר אותה ממזהה הצומת בכותרת ההודעה. אם לא ניתן לעשות זאת, הפונקציה נכשלת. -אם כתובת היעד היא כתובת של fabric ב-fabric המקומי, והמבצע לא ציין את מזהה הצומת של היעד, צריך לחלץ אותו מכתובת היעד.

פרטים
פרמטרים
[in] aDestAddr
כתובת ה-IP של היעד.
[in] destPort
יציאת היעד.
[in] interfaceId
הממשק שבו שולחים את הודעת Weave.
[in] msgInfo
הפניה לאובייקט WeaveMessageInfo.
[in] payload
מצביע אל האובייקט PacketBuffer שמחזיק את הודעת Weave המקודדת.
ערכים מוחזרים
WEAVE_NO_ERROR
על שליחת ההודעה לשכבת הרשת.
errors
נוצר מנקודת הקצה של UDP בשכבה התחתונה של Inet במהלך השליחה.

SendMessage

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

שליחת הודעת Weave באמצעות נקודת הקצה הבסיסית של Inetlayer UDP אחרי קידוד שלה.

פרטים
פרמטרים
[in] msgInfo
הפניה לאובייקט WeaveMessageInfo שמכיל מידע על ההודעה שרוצים לשלוח.
[in] payload
מצביע אל האובייקט PacketBuffer שמחזיק את הודעת Weave המקודדת.
ערכים מוחזרים
WEAVE_NO_ERROR
על שליחת ההודעה לשכבת הרשת.
errors
נוצר מנקודת הקצה של UDP בשכבה התחתונה של Inet במהלך השליחה.

SendMessage

WEAVE_ERROR SendMessage(
  const IPAddress & destAddr,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

שליחת הודעת Weave באמצעות נקודת הקצה הבסיסית של Inetlayer UDP אחרי קידוד שלה.

הערה:-יציאת היעד שבה נעשה שימוש היא WEAVE_PORT. -אם לא סופקה כתובת היעד, יש לנסות לאתר אותה ממזהה הצומת בכותרת ההודעה. אם לא ניתן לעשות זאת, הפונקציה נכשלת.

-אם כתובת היעד היא כתובת בד עבור האזור המקומי, והמתקשר לא ציין את מזהה צומת היעד, יש לחלץ אותו מכתובת היעד.

פרטים
פרמטרים
[in] destAddr
כתובת ה-IP של היעד.
[in] msgInfo
הפניה לאובייקט WeaveMessageInfo שמכיל מידע על ההודעה שרוצים לשלוח.
[in] payload
מצביע אל האובייקט PacketBuffer שמחזיק את הודעת Weave המקודדת.
ערכים מוחזרים
WEAVE_NO_ERROR
על שליחת ההודעה לשכבת הרשת.
errors
נוצר מנקודת הקצה של UDP בשכבה התחתונה של Inet במהלך השליחה.

SendMessage

WEAVE_ERROR SendMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  InterfaceId sendIntfId,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

לאחר הקידוד, תישלח הודעת Weave באמצעות נקודת הקצה הבסיסית של Inetlayer UDP.

הערה: אם לא צוינה כתובת היעד, מנסים לקבוע אותה לפי מזהה הצומת בכותרת ההודעה. תיכשל אם לא ניתן יהיה לבצע את הפעולה הזו. -אם כתובת היעד היא כתובת בד עבור האזור המקומי, והמתקשר לא ציין את מזהה צומת היעד, יש לחלץ אותו מכתובת היעד.

פרטים
פרמטרים
[in] aDestAddr
כתובת ה-IP של היעד.
[in] destPort
יציאת היעד.
[in] sendIntfId
הממשק שבו יש לשלוח את הודעת Weave.
[in] msgInfo
מצביע אל אובייקט WeaveMessageInfo שמכיל מידע על ההודעה שצריך לשלוח.
[in] payload
מצביע אל האובייקט PacketBuffer שמחזיק את הודעת Weave המקודדת.
ערכים מוחזרים
WEAVE_NO_ERROR
על שליחת ההודעה לשכבת הרשת.
WEAVE_ERROR_INVALID_ADDRESS
אם destAddr לא צוין או שלא ניתן לקבוע אותו ממזהה צומת היעד.
errors
נוצר מנקודת הקצה של UDP בשכבה התחתונה של Inet במהלך השליחה.

SendUDPTunneledMessage

WEAVE_ERROR SendUDPTunneledMessage(
  const IPAddress & destAddr,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

פונקציה לשליחת חבילת מנהור דרך מנהרת UDP מקומית.

שליחת הודעת נתונים של IPv6 עם מנהרה באמצעות UDP.

פרטים
פרמטרים
[in] msgInfo
הפניה לאובייקט WeaveMessageInfo.
[in] destAddr
כתובת ה-IP של יעד המנהרה של UDP.
[in] msgBuf
מצביע אל האובייקט PacketBuffer שמחזיק את החבילה לשליחה.
ערכים מוחזרים
WEAVE_NO_ERROR
על שליחת ההודעה לשכבת הרשת.
WEAVE_ERROR_INVALID_ADDRESS
אם destAddr לא צוין או שלא ניתן לקבוע אותו ממזהה צומת היעד.
errors
נוצר מנקודת הקצה של UDP בשכבה התחתונה של Inet במהלך השליחה.

SetSignalMessageLayerActivityChanged

void SetSignalMessageLayerActivityChanged(
  MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler
)

אפשר להגדיר handler של אפליקציות שיישלח בכל פעם שהפעילות של שכבת ההודעות משתנה.

באופן ספציפי, האפליקציה תקבל התראה בכל פעם:

  • מספר הסבבים הפתוחים משתנה.
  • מספר הבקשות לסנכרון של ספירת ההודעות בהמתנה משתנה מאפס לאחת לפחות ובחזרה לאפס. הטיפול מופיע כאות כללי שמציין אם יש שיחות מתמשכות ב-Weave או תשובות בהמתנה. יש להגדיר את ה-handler אחרי האתחול של WeaveMessageLayer. השבתה של WeaveMessageLayer תסיר את ה-handler הנוכחי.

פרטים
פרמטרים
[in] messageLayerActivityChangeHandler
מצביע על פונקציה שצריך לקרוא אליה בכל פעם שפעילות של שכבת ההודעות משתנה.
ערכים שמוחזרים
None.

SetTCPListenEnabled

void SetTCPListenEnabled(
  bool val
)

הפעלה או השבתה של ההאזנה לחיבורי TCP נכנסים ב-WeaveMessageLayer.

הערה: חובה לבצע קריאה אל RefreshEndpoints() לאחר שינוי מצב ההאזנה של TCP.

SetUDPListenEnabled

void SetUDPListenEnabled(
  bool val
)

הפעלה או השבתה של ההאזנה להודעות UDP נכנסות ב-WeaveMessageLayer.

הערה: חובה לבצע קריאה אל RefreshEndpoints() לאחר שינוי מצב ההאזנה ל-UDP.

SetUnsecuredConnectionListener

WEAVE_ERROR SetUnsecuredConnectionListener(
  ConnectionReceiveFunct newOnUnsecuredConnectionReceived,
  CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved,
  bool force,
  void *listenerState
)

כיבוי

WEAVE_ERROR Shutdown(
  void
)

משביתים את WeaveMessageLayer.

סגירת כל נקודות הקצה הפתוחות בשכבת Inet ואיפוס כל הקריאות החוזרות (callback) בשכבות הגבוהות יותר, המשתנים של החברים והאובייקטים. הקריאה ל-Shutdown() מפסיקה את האובייקט WeaveMessageLayer.

TCPListenEnabled

bool TCPListenEnabled(
  void
) const 

בודקים אם WeaveMessageLayer מוגדר להאזנה לחיבורי TCP נכנסים.

UDPListenEnabled

bool UDPListenEnabled(
  void
) const 

בודקים אם WeaveMessageLayer מוגדר להאזנה להודעות UDP נכנסות.

UnsecuredListenEnabled

bool UnsecuredListenEnabled(
  void
) const 

הפעלה או השבתה של התחלת חילופי UDP של Weave מיציאת מקור זמנית של UDP.

הערה: צריך להפעיל את RefreshEndpoints() אחרי שמשנים את מצב השקע הזמני. בודקים אם ההאזנה ללא אבטחה מופעלת.

WeaveMessageLayer

 WeaveMessageLayer(
  void
)

constructor של שכבת Weave Message.

פונקציות סטטיות ציבוריות

GetMaxWeavePayloadSize

uint32_t GetMaxWeavePayloadSize(
  const PacketBuffer *msgBuf,
  bool isUDP,
  uint32_t udpMTU
)

מקבלים את גודל המטען הייעודי (payload) המקסימלי של Weave לתצורת הודעה ול-PacketBuffer שסופק.

גודל המטען הייעודי (payload) המקסימלי שיוחזר לא יעלה על המרחב הזמין למטען הייעודי ב-PacketBuffer שסופק.

אם ההודעה היא UDP, גודל המטען הייעודי (payload) המקסימלי שיוחזר לא יוביל להודעת Weave שלא תחרוג מ-UDP MTU שצוין.

לבסוף, גודל המטען הייעודי (payload) המקסימלי שיוחזר לא יוביל להודעת Weave שתחרוג מגודל ההודעה המקסימלי של Weave.

פרטים
פרמטרים
[in] msgBuf
הפניה ל-PacketBuffer שאליו ייכתב עומס העבודה של ההודעה.
[in] isUDP
הערך True מוחזר אם ההודעה היא הודעת UDP.
[in] udpMTU
הגודל של ה-MTU ב-UDP. המערכת תתעלם אם ה-isUDP מוגדר כ-False.
החזרות
גודל המטען הייעודי המקסימלי ב-Weave.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  size_t bufSize,
  uint64_t nodeId,
  const IPAddress *addr,
  uint16_t port,
  InterfaceId interfaceId,
  const WeaveConnection *con
)

יצירת מחרוזת שמתארת צומת עמית ומידע על הכתובת או החיבור שלו.

המחרוזת שנוצרה היא בפורמט הבא:

 ([]:%, con )

פרטים
פרמטרים
[in] buf
הפניה למאגר שבו צריך לכתוב את המחרוזת. מאגר הנתונים הזמני שסופק צריך להיות גדול לפחות כמו הערך של kWeavePeerDescription_MaxLength. אם מציינים מאגר קטן יותר, המחרוזת תיקטע בהתאם. בכל המקרים, הפלט יכלול תו סיום NUL.
[in] bufSize
גודל מאגר הנתונים הזמני שפונה אליו.
[in] nodeId
מזהה הצומת שרוצים להדפיס.
[in] addr
מצביע אל כתובת IP להדפסה או NULL אם לא צריך להדפיס כתובת IP.
[in] port
מספר יציאת IP שרוצים להדפיס. אם addr הוא NULL, לא יודפס מספר יציאה.
[in] interfaceId
מזהה InterfaceId שמזהה את הממשק שרוצים להדפיס. מחרוזת הפלט תכיל את שם הממשק כפי שהוא ידוע למחסנית הרשת הבסיסית. לא יודפס שם של ממשק אם הערך של interfaceId הוא INET_NULL_INTERFACEID או אם הערך של addr הוא NULL.
[in] con
הפניה לאובייקט WeaveConnection שצריך להדפיס את המזהה שלו ביומן, או NULL אם לא צריך להדפיס מזהה חיבור.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  size_t bufSize,
  const WeaveMessageInfo *msgInfo
)

יוצרת מחרוזת שמתארת צומת של אפליקציה להשוואה, על סמך המידע שמשויך להודעה שהתקבלה מהעמיתים.

פרטים
פרמטרים
[in] buf
הפניה למאגר שבו צריך לכתוב את המחרוזת. מאגר הנתונים הזמני שסופק צריך להיות גדול לפחות כמו הערך של kWeavePeerDescription_MaxLength. אם מציינים מאגר קטן יותר, המחרוזת תיקטע בהתאם. בכל המקרים, הפלט יכלול תו סיום NUL.
[in] bufSize
הגודל של המאגר ש-buf מפנה אליו.
[in] msgInfo
מצביע למבנה WeaveMessageInfo שמכיל מידע על ההודעה.