nl:: بافت:: لایه WeaveMessage

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

تعریف کلاس WeaveMessageLayer که ارتباط با سایر گره های Weave را مدیریت می کند.

خلاصه

از یکی از چندین نقطه پایانی InetLayer برای ایجاد یک کانال ارتباطی با سایر گره‌های Weave استفاده می‌کند.

سازندگان و ویرانگرها

WeaveMessageLayer (void)
سازنده لایه Weave Message.

انواع عمومی

AcceptErrorFunct )(WeaveMessageLayer *msgLayer, WEAVE_ERROR err) typedef
void(*
این تابع لایه بالاتر فراخوانی برای گزارش خطا در حین رسیدگی به اتصال TCP ورودی است.
CallbackRemovedFunct )(void *listenerState) typedef
void(*
این تابع برای حذف پاسخ تماس فراخوانی می شود.
ConnectionReceiveFunct )(WeaveMessageLayer *msgLayer, WeaveConnection *con) typedef
void(*
این تابع لایه بالاتر فراخوانی برای مدیریت اتصال 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
وضعیت لایه WeaveMessage .
TunneledMsgReceiveFunct )(WeaveMessageLayer *msgLayer, PacketBuffer *payload) typedef
void(*
این تابع لایه بالاتر فراخوانی است که پس از دریافت بسته تونل شده از طریق یک تونل محلی UDP فراخوانی می شود.

صفات عمومی

AppState
void *
یک اشاره گر به یک شیء حالت خاص برنامه.
ExchangeMgr
[فقط بخوانید] شی WeaveExchangeManager مرتبط.
FabricState
[فقط بخوانید] شی WeaveFabricState مرتبط.
IncomingConIdleTimeout
uint32_t
زمان بیکار پیش فرض (بر حسب میلی ثانیه) برای اتصالات ورودی.
Inet
InetLayer *
[READ ONLY] شیء مرتبط InetLayer.
IsListening
bool
[فقط بخوانید] اگر به اتصالات/پیام های ورودی گوش می دهید درست است، در غیر این صورت نادرست است.
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 با جفت کردن دو WeaveConnection مشخص شده ایجاد کنید.
DecodeHeader ( PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
یک هدر لایه Weave Message را از پیام 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 Message را در PacketBuffer رمزگذاری کنید.
EphemeralUDPPortEnabled (void) const
bool
بررسی کنید که آیا مبادلات Weave UDP به صورت محلی باید از یک پورت منبع UDP زودگذر ارسال شوند یا خیر.
GetConnectionPoolStats (nl::Weave::System::Stats::count_t & aOutInUse) const
void
تعداد WeaveConnection های در حال استفاده و اندازه استخر را دریافت کنید.
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 جدید از یک Pool ایجاد کنید.
NewConnectionTunnel (void)
یک شی WeaveConnectionTunnel جدید از یک Pool ایجاد کنید.
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)
پس از رمزگذاری، با استفاده از نقطه پایانی Inetlayer UDP، یک پیام Weave ارسال کنید.
SendMessage (const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
پس از رمزگذاری، با استفاده از نقطه پایانی Inetlayer UDP، یک پیام Weave ارسال کنید.
SendMessage (const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntfId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
پس از رمزگذاری، با استفاده از نقطه پایانی Inetlayer UDP، یک پیام Weave ارسال کنید.
SendUDPTunneledMessage (const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
تابع ارسال یک بسته تونل شده روی یک تونل محلی UDP.
SetSignalMessageLayerActivityChanged ( MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler)
void
یک کنترل کننده برنامه تنظیم کنید که هر بار که فعالیت لایه پیام تغییر می کند، فراخوانی می شود.
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
حداکثر اندازه بار 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)

این تابع لایه بالاتر فراخوانی برای گزارش خطا در حین رسیدگی به اتصال TCP ورودی است.

جزئیات
مولفه های
[in] msgLayer
یک اشاره گر به شی WeaveMessageLayer .
[in] err
WEAVE_ERROR که هنگام مدیریت اتصال TCP ورودی با آن مواجه شد.

CallbackRemovedFunct

void(* CallbackRemovedFunct)(void *listenerState)

این تابع برای حذف پاسخ تماس فراخوانی می شود.

جزئیات
مولفه های
[in] listenerState
یک اشاره گر به شیء حالت برنامه.

ConnectionReceiveFunct

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

این تابع لایه بالاتر فراخوانی برای مدیریت اتصال 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

وضعیت لایه WeaveMessage .

خواص
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 مرتبط.

Fabric State

WeaveFabricState * FabricState

[فقط بخوانید] شی WeaveFabricState مرتبط.

IncomingConIdleTimeout

uint32_t IncomingConIdleTimeout

زمان بیکار پیش فرض (بر حسب میلی ثانیه) برای اتصالات ورودی.

اینت

InetLayer * Inet

[READ ONLY] شیء مرتبط InetLayer.

گوش دادن

bool IsListening

[فقط بخوانید] اگر به اتصالات/پیام های ورودی گوش می دهید درست است، در غیر این صورت نادرست است.

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 را ببندید.

سپس هر WeaveConnection های باز را لغو کنید و هر آبجکت WeaveConnectionTunnel باز را خاموش کنید.

همچنین ببینید:
Shutdown() .

ایجاد تونل

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

یک WeaveConnectionTunnel با جفت کردن دو WeaveConnection مشخص شده ایجاد کنید.

پس از ایجاد موفقیت آمیز، TCPEndPoint های مربوط به اشیاء 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 Message را از پیام 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
فضای رزرو شده قبل از محموله برای نگهداری هدر پیام 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
اگر قبل یا بعد از محموله پیام فضای کافی وجود نداشته باشد.
other
خطاهای ایجاد شده توسط شی حالت فابریک هنگام واکشی وضعیت جلسه.

EncodeMessage

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

یک هدر لایه Weave Message را در 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
اگر قبل یا بعد از محموله پیام فضای کافی وجود نداشته باشد.
other
خطاهای ایجاد شده توسط شی حالت فابریک هنگام واکشی وضعیت جلسه.

EphemeralUDPPortEnabled

bool EphemeralUDPPortEnabled(
  void
) const 

بررسی کنید که آیا مبادلات Weave UDP به صورت محلی باید از یک پورت منبع UDP زودگذر ارسال شوند یا خیر.

GetConnectionPoolStats

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

تعداد WeaveConnection های در حال استفاده و اندازه استخر را دریافت کنید.

جزئیات
مولفه های
[out] aOutInUse
ارجاع به size_t، که در آن تعداد اتصالات در حال استفاده ذخیره می شود.

IPv4Listen فعال است

bool IPv4ListenEnabled(
  void
) const 

بررسی کنید که آیا WeaveMessageLayer برای گوش دادن به ارتباطات ورودی از طریق IPv4 پیکربندی شده است یا خیر.

IPv6Listen فعال است

bool IPv6ListenEnabled(
  void
) const 

بررسی کنید که آیا WeaveMessageLayer برای گوش دادن به ارتباطات ورودی از طریق IPv4 پیکربندی شده است یا خیر.

شروع کنید

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 محلی متصل است یا خیر.

آدرس IsBoundToLocalIPv6

bool IsBoundToLocalIPv6Address(
  void
) const 

بررسی کنید که آیا WeaveMessageLayer به یک آدرس IPv6 محلی متصل است یا خیر.

IsMessageLayerActive

bool IsMessageLayerActive(
  void
)

NewConnection

WeaveConnection * NewConnection(
  void
)

یک شی WeaveConnection جدید از یک Pool ایجاد کنید.

جزئیات
برمی گرداند
یک اشاره گر به شی WeaveConnection تازه ایجاد شده در صورت موفقیت، در غیر این صورت NULL.

NewConnectionTunnel

WeaveConnectionTunnel * NewConnectionTunnel(
  void
)

یک شی WeaveConnectionTunnel جدید از یک Pool ایجاد کنید.

جزئیات
برمی گرداند
یک اشاره گر به شی WeaveConnectionTunnel تازه ایجاد شده در صورت موفقیت، در غیر این صورت NULL.

ReEncodeMessage

WEAVE_ERROR ReEncodeMessage(
  PacketBuffer *buf
)

RefreshEndpoints

WEAVE_ERROR RefreshEndpoints(
  void
)

نقاط انتهایی InetLayer را بر اساس وضعیت فعلی رابط های شبکه سیستم، تازه کنید.

جزئیات
ارزش های بازگشتی
WEAVE_NO_ERROR
در تازه سازی موفقیت آمیز نقاط پایانی
InetLayer
خطاهای مبتنی بر فراخوانی برای ایجاد نقاط پایانی TCP/UDP.

ارسال مجدد پیام

WEAVE_ERROR ResendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

یک پیام Weave رمزگذاری شده را با استفاده از نقطه پایانی Inetlayer UDP مجدد ارسال کنید.

جزئیات
مولفه های
[in] msgInfo
یک اشاره گر به شی WeaveMessageInfo .
[in] payload
یک اشاره گر به شی PacketBuffer که پیام کدگذاری شده Weave را نگه می دارد.
ارزش های بازگشتی
WEAVE_NO_ERROR
در ارسال موفقیت آمیز پیام به لایه شبکه.
errors
در حین ارسال از نقطه پایانی UDP لایه Inet پایین ایجاد می شود.

ارسال مجدد پیام

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 پایین ایجاد می شود.

ارسال مجدد پیام

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 پایین ایجاد می شود.

ارسال مجدد پیام

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 پایین ایجاد می شود.

پیام فرستادن

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

پس از رمزگذاری، با استفاده از نقطه پایانی Inetlayer UDP، یک پیام Weave ارسال کنید.

جزئیات
مولفه های
[in] msgInfo
یک اشاره گر به یک شی WeaveMessageInfo حاوی اطلاعاتی در مورد پیامی که قرار است ارسال شود.
[in] payload
یک اشاره گر به شی PacketBuffer که پیام کدگذاری شده Weave را نگه می دارد.
ارزش های بازگشتی
WEAVE_NO_ERROR
در ارسال موفقیت آمیز پیام به لایه شبکه.
errors
در حین ارسال از نقطه پایانی UDP لایه Inet پایین ایجاد می شود.

پیام فرستادن

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

پس از رمزگذاری، با استفاده از نقطه پایانی Inetlayer UDP، یک پیام Weave ارسال کنید.

توجه: -پورت مقصد مورد استفاده WEAVE_PORT است. -اگر آدرس مقصد ارائه نشده است، سعی کنید آن را از شناسه گره در هدر پیام تعیین کنید. اگر این کار نمی تواند انجام شود، شکست بخورید.

-اگر آدرس مقصد یک آدرس فابریک برای فابریک محلی است و تماس گیرنده شناسه گره مقصد را مشخص نکرده است، آن را از آدرس مقصد استخراج کنید.

جزئیات
مولفه های
[in] destAddr
آدرس IP مقصد
[in] msgInfo
یک اشاره گر به یک شی WeaveMessageInfo حاوی اطلاعاتی در مورد پیامی که قرار است ارسال شود.
[in] payload
یک اشاره گر به شی PacketBuffer که پیام کدگذاری شده Weave را نگه می دارد.
ارزش های بازگشتی
WEAVE_NO_ERROR
در ارسال موفقیت آمیز پیام به لایه شبکه.
errors
در حین ارسال از نقطه پایانی UDP لایه Inet پایین ایجاد می شود.

پیام فرستادن

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

پس از رمزگذاری، با استفاده از نقطه پایانی Inetlayer UDP، یک پیام Weave ارسال کنید.

توجه: -اگر آدرس مقصد ارائه نشده است، سعی کنید آن را از شناسه گره در هدر پیام تعیین کنید. اگر این کار نمی تواند انجام شود، شکست بخورید. -اگر آدرس مقصد یک آدرس فابریک برای فابریک محلی است و تماس گیرنده شناسه گره مقصد را مشخص نکرده است، آن را از آدرس مقصد استخراج کنید.

جزئیات
مولفه های
[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
)

یک کنترل کننده برنامه تنظیم کنید که هر بار که فعالیت لایه پیام تغییر می کند، فراخوانی می شود.

به طور خاص، برنامه هر بار مطلع خواهد شد:

  • تعداد صرافی های باز شده تغییر می کند.
  • تعداد درخواست‌های همگام‌سازی شمارنده پیام معلق از صفر به حداقل یک و دوباره به صفر تغییر می‌کند. کنترل کننده به عنوان سیگنال کلی ارائه می شود که نشان می دهد آیا مکالمات Weave در حال انجام است یا پاسخ های معلق وجود دارد. پس از اینکه WeaveMessageLayer مقداردهی اولیه شد، هندلر باید تنظیم شود. خاموش کردن WeaveMessageLayer کنترل کننده فعلی را پاک می کند.

جزئیات
مولفه های
[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 را ببندید، همه تماس های لایه بالاتر، متغیرهای عضو و اشیاء را بازنشانی کنید. فراخوانی Shutdown() شی WeaveMessageLayer را خاتمه می دهد.

TCPlisten فعال شد

bool TCPListenEnabled(
  void
) const 

بررسی کنید که آیا WeaveMessageLayer برای گوش دادن به اتصالات TCP ورودی پیکربندی شده است یا خیر.

UDPlistenEnabled

bool UDPListenEnabled(
  void
) const 

بررسی کنید که آیا WeaveMessageLayer برای گوش دادن به پیام های UDP ورودی پیکربندی شده است یا خیر.

UnsecuredListenEnabled

bool UnsecuredListenEnabled(
  void
) const 

فعال یا غیرفعال کردن شروع تبادلات Weave UDP از پورت منبع موقت UDP.

توجه: RefreshEndpoints() باید پس از تغییر حالت پورت زودگذر فراخوانی شود. بررسی کنید که آیا گوش دادن ناامن فعال است یا خیر.

لایه WeaveMessage

 WeaveMessageLayer(
  void
)

سازنده لایه Weave Message.

توابع استاتیک عمومی

GetMaxWeavePayloadSize

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

حداکثر اندازه بار Weave را برای پیکربندی پیام و PacketBuffer ارائه شده دریافت کنید.

حداکثر اندازه بار بازگشتی از فضای موجود برای یک محموله در داخل PacketBuffer ارائه شده تجاوز نخواهد کرد.

اگر پیام UDP باشد، حداکثر اندازه بار بازگشتی منجر به پیام Weave نمی شود که UDP MTU مشخص شده را سرریز نمی کند.

در نهایت، حداکثر اندازه بار بازگشتی منجر به پیام Weave نمی شود که حداکثر اندازه پیام Weave را سرریز کند.

جزئیات
مولفه های
[in] msgBuf
اشاره گر به PacketBuffer که بار پیام روی آن نوشته می شود.
[in] isUDP
اگر پیام یک پیام UDP باشد درست است.
[in] udpMTU
اندازه UDP MTU. اگر isUDP نادرست باشد نادیده گرفته می شود.
برمی گرداند
حداکثر اندازه بار بافت.

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
اندازه بافر که توسط buf نشان داده شده است.
[in] nodeId
شناسه گره که باید چاپ شود.
[in] addr
یک اشاره گر به یک آدرس IP که باید چاپ شود. یا اگر آدرس IP نباید چاپ شود NULL.
[in] port
شماره پورت IP که باید چاپ شود. اگر adr 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 که حاوی اطلاعاتی در مورد پیام است.