nl::Weave::WeaveMessageLayer

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

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

סיכום

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

בנייה

WeaveMessageLayer(void)
מבנה שכבת ההודעה של 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(*
הפונקציה הזו היא הקריאה החוזרת של האפליקציה לדיווח על שינוי בפעילות בשכבת ההודעות.
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(*
הפונקציה הזו היא הקריאה החוזרת (callback) של השכבה הגבוהה יותר שמופעלת לאחר קבלת חבילה מנהרת דרך מנהרת 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
מקבלים את מספר ה-WeaveConnects בשימוש ואת גודל המאגר.
IPv4ListenEnabled(void) const
bool
בודקים אם ה-WeaveMessageLayer מוגדר להאזנה לתקשורת נכנסת דרך IPv4.
IPv6ListenEnabled(void) const
bool
בודקים אם ה-WeaveMessageLayer מוגדר להאזנה לתקשורת נכנסת דרך IPv4.
Init(InitContext *context)
אתחול אובייקט השכבה של Weave Message.
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)

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

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

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

MessageReceiveFunct

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

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

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

ReceiveErrorFunct

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

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

פרטים
פרמטרים
[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

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

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 מסוימים.

לאחר שהיצירה בוצעה בהצלחה, ה-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
אם אורך המטען הייעודי (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 Message אינה נתמכת.
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 

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

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.

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

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

SendMessage

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

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

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

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

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

WeaveMessageLayer

 WeaveMessageLayer(
  void
)

constructor של שכבת Weave Message.

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

GetMaxWeavePayloadSize

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

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

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

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

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

פרטים
פרמטרים
[in] msgBuf
מצביע אל PacketBuffer שאליו ייכתב המטען הייעודי של ההודעה.
[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
)

יצירת מחרוזת שמתארת צומת של אפליקציה להשוואה ואת פרטי הכתובת או החיבור שלו.

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

 ([]:%, con )

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