nl::Weave::WeaveMessageLayer

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

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

סיכום

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

בונים והורסים

WeaveMessageLayer(void)
בונה שכבת ההודעה של Weave.

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

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

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

AppState
void *
מצביע לאובייקט מצב ספציפי לאפליקציה.
ExchangeMgr
[לקריאה בלבד] האובייקט WeaveExchangeManager המשויך.
FabricState
[לקריאה בלבד] האובייקט WeaveFabricState המשויך.
IncomingConIdleTimeout
uint32_t
ברירת המחדל של הזמן הקצוב לתפוגה שהוגדר לחוסר פעילות (באלפיות שנייה) עבור חיבורים נכנסים.
Inet
InetLayer *
[לקריאה בלבד] אובייקט InetLayer המשויך.
IsListening
bool
[לקריאה בלבד] הערך True אם מאזינים להודעות/חיבורים נכנסים. אחרת, צריך להזין false.
OnAcceptError
OnConnectionReceived
OnMessageReceived
OnReceiveError
OnUDPTunneledMessageReceived
SecurityMgr
[לקריאה בלבד] האובייקט 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
צריך לבדוק אם צריך לשלוח החלפות UDP ל-Weave באופן מקומי מיציאת מקור 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
הפעלה או השבתה של התחלת ההפעלה של חילופי UDP ל-Weave מיציאת מקור 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
יוצרת מחרוזת שמתארת צומת של קישור בין רשתות שכנות (peering) ואת הכתובת / פרטי החיבור המשויכים אליו.
GetPeerDescription(char *buf, size_t bufSize, const WeaveMessageInfo *msgInfo)
void
הפונקציה יוצרת מחרוזת שמתארת צומת של אפליקציה להשוואה על סמך המידע שמשויך להודעה שהתקבלה מהעמיתים.

מחלקות

nl::Weave::WeaveMessageLayer::InitContext

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

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

AcceptErrorFunct

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

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

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

CallbackRemovedFunct

void(* CallbackRemovedFunct)(void *listenerState)

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

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

ConnectionReceiveFunct

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

הפונקציה הזו היא הקריאה החוזרת בשכבה הגבוהה יותר לטיפול בחיבור 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)

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

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

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

AppState

void * AppState

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

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

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

FabricState

WeaveFabricState * FabricState

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

IncomingConIdleTimeout

uint32_t IncomingConIdleTimeout

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

אינט

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

[לקריאה בלבד] האובייקט 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 מוגדרים.

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

פרטים
פרמטרים
[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 Message אינה נתמכת.

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 Message אינה נתמכת.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
אם אורך המטען הייעודי במאגר ההודעות הוא אפס.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
אין תמיכה בסוג ההצפנה שבכותרת ההודעה.
WEAVE_ERROR_MESSAGE_TOO_LONG
אם ההודעה המקודדת תהיה ארוכה מהערך המקסימלי המבוקש.
WEAVE_ERROR_BUFFER_TOO_SMALL
אם אין מספיק מקום לפני או אחרי המטען הייעודי (payload) של ההודעה.
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 Message.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
אם אורך המטען הייעודי במאגר ההודעות הוא אפס.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
אין תמיכה בסוג ההצפנה.
WEAVE_ERROR_MESSAGE_TOO_LONG
אם ההודעה המקודדת תהיה ארוכה מהערך המקסימלי המבוקש.
WEAVE_ERROR_BUFFER_TOO_SMALL
אם אין מספיק מקום לפני או אחרי המטען הייעודי (payload) של ההודעה.
other
שגיאות שנוצרו על ידי אובייקט מצב הבד במהלך אחזור מצב הסשן.

EphemeralUDPPortEnabled

bool EphemeralUDPPortEnabled(
  void
) const 

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

GetConnectionPoolStats

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

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

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

IPv4ListenEnabled

bool IPv4ListenEnabled(
  void
) const 

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

IPv6ListenEnabled

bool IPv6ListenEnabled(
  void
) const 

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

הפעלה

WEAVE_ERROR Init(
  InitContext *context
)

מאתחלים את אובייקט שכבת ההודעה של Weave.

פרטים
פרמטרים
[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
שנוצרה מנקודת הקצה התחתונה של ה-UDP בשכבה 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
שנוצרה מנקודת הקצה התחתונה של ה-UDP בשכבה 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
שנוצרה מנקודת הקצה התחתונה של ה-UDP בשכבה Inet במהלך השליחה.

ResendMessage

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

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

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

פרטים
פרמטרים
[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 של אפליקציה שיופעל בכל פעם שהפעילות של שכבת ההודעה משתנה.

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

  • מספר ההחלפות הפתוחות.
  • מספר הבקשות הממתינות לסנכרון מונה להודעות משתנה מאפס לאחד לפחות וחזרה לאפס. ה-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
)

בונה שכבת ההודעה של Weave.

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

GetMaxWeavePayloadSize

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

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

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

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

לסיום, גודל המטען הייעודי המקסימלי שמוחזר לא יגרום להצגת הודעת Weave שחורגת מהגודל המקסימלי של הודעת Weave.

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

GetPeerDescription

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

יוצרת מחרוזת שמתארת צומת של קישור בין רשתות שכנות (peering) ואת הכתובת / פרטי החיבור המשויכים אליו.

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

 ([]:%, con )

פרטים
פרמטרים
[in] buf
מצביע למאגר נתונים זמני שבו יש לכתוב את המחרוזת. המאגר הזמני צריך להיות גדול לפחות מ-kWeavePeerDescription_MaxLength. אם מוקצה מאגר נתונים זמני קטן יותר, המחרוזת תיחתך להתאמה. הפלט יכלול תו סיום NUL בכל המקרים.
[in] bufSize
גודל מאגר הנתונים הזמני שאליו מפנה מאגר הנתונים הזמני.
[in] nodeId
מזהה הצומת להדפסה.
[in] addr
מצביע לכתובת IP להדפסה, או NULL אם אין להדפיס כתובת IP.
[in] port
מספר יציאת IP להדפסה. לא יודפס מספר יציאה אם ה-addr הוא NULL.
[in] interfaceId
מזהה ממשק (API) שמזהה את הממשק להדפסה. מחרוזת הפלט תכיל את שם הממשק, כפי שמוכר לסטאק הרשת הבסיסי. לא יודפס שם ממשק אם הממשק הוא 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
גודל מאגר הנתונים הזמני שאליו מפנה מאגר הנתונים הזמני.
[in] msgInfo
מצביע למבנה של WeaveMessageInfo שמכיל מידע על ההודעה.