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(*
يتمّ استدعاء هذه الدالة لإزالة طلب استدعاء.
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
}
تعداد
TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload) typedef
void(*
هذه الدالة هي استدعاء الطبقة الأعلى الذي يتم استدعاؤه عند استلام حزمة نفقية عبر نفق UDP محلي.

السمات العامة

AppState
void *
يشير إلى عنصر حالة خاص بالتطبيق.
ExchangeMgr
[للقراءة فقط] عنصر WeaveExchangeManager المرتبط.
FabricState
[للقراءة فقط] عنصر WeaveFabricState المرتبط.
IncomingConIdleTimeout
uint32_t
المهلة التلقائية لانتهاء وضع عدم النشاط (بالملي ثانية) للاتصالات الواردة
Inet
InetLayer *
[READ ONLY] كائن InetLayer المرتبط
IsListening
bool
[للقراءة فقط] True عند الاستماع إلى الاتصالات/الرسائل الواردة، وخطأ في الحالات الأخرى.
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 من خلال إقران عنصرَي WeaveConnection محدّدَين.
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
اضبط معالِج تطبيق سيتم استدعاؤه في كل مرة يتغيّر فيها نشاط طبقة الرسائل.
SetTCPListenEnabled(bool val)
void
فعِّل استقبال اتصالات بروتوكول النقل المتعدّد (TCP) الواردة أو أوقِفها في WeaveMessageLayer.
SetUDPListenEnabled(bool val)
void
فعِّل الاستماع إلى رسائل UDP الواردة أو أوقِفه في WeaveMessageLayer.
SetUnsecuredConnectionListener(ConnectionReceiveFunct newOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved, bool force, void *listenerState)
Shutdown(void)
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

حالة 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

[للقراءة فقط] صحيح إذا كان الجهاز يستمع إلى الاتصالات أو الرسائل الواردة، وخطأ بخلاف ذلك.

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 من خلال إقران عنصرَي WeaveConnection محدّدَين.

عند إنشاء العنصر بنجاح، يتم تسليم نقاط نهاية 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
المساحة المحجوزة قبل الحمولة لحفظ عنوان رسالة Weave
عرض القيم
WEAVE_NO_ERROR
عند نجاح ترميز الرسالة.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
إذا كان إصدار تنسيق عنوان رسالة Weave غير متوافق.
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 في 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 

الحصول على عدد اتصالات WeaveConnections المستخدَمة وحجم المجموعة

التفاصيل
المعلمات
[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 الذي تم تمريره فارغًا.
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
)

عيِّن معالج تطبيق سيتم استدعاؤه في كل مرة يتغير فيها نشاط طبقة الرسالة.

وعلى وجه التحديد، سيتم إشعار التطبيق في كل مرة:

  • تغيُّر عدد عمليات التبادل المفتوحة
  • يتغير عدد طلبات مزامنة عداد الرسائل المعلّقة من صفر إلى واحد على الأقل ويعود إلى الصفر. يتم عرض المعالِج كإشارة عامة تشير إلى ما إذا كانت هناك أي محادثات 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.

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
)

أداة إنشاء طبقة رسائل Weave

الدوال الثابتة العامة

GetMaxWeavePayloadSize

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

الحصول على الحد الأقصى لحجم حمولة Weave لإعداد رسالة وPacketBuffer المقدَّم

لن يتجاوز الحد الأقصى لحجم الحمولة الذي يتم عرضه المساحة المتوفرة للحمولة داخل PacketBuffer المزود.

إذا كانت الرسالة تستخدم بروتوكول UDP، لن يؤدي الحد الأقصى لحجم الحمولة الذي يتم إرجاعه إلى ظهور رسالة Weave لا تتجاوز الحد الأقصى لوحدة النقل المصغّرة (MTU) المحدّدة في UDP.

أخيرًا، لن يؤدي الحد الأقصى لحجم الحمولة الذي يتم إرجاعه إلى ظهور رسالة Weave تتجاوز الحد الأقصى لحجم رسالة Weave.

التفاصيل
المعلمات
[in] msgBuf
مؤشر إلى PacketBuffer الذي سيتم كتابة الحمولة في الرسالة عليه
[in] isUDP
True إذا كانت الرسالة رسالة UDP.
[in] udpMTU
حجم وحدة النقل القصوى (MTU) لـ UDP. يتم تجاهل السياسة إذا كانت قيمة isUDP خطأ.
المرتجعات
الحد الأقصى لحجم الحمولة في 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
حجم ذاكرة التخزين المؤقت التي يشير إليها buf
[in] nodeId
رقم تعريف العقدة المطلوب طباعته.
[in] addr
مؤشر إلى عنوان IP لتتم طباعته، أو "خالٍ" إذا كان لا يلزم طباعة عنوان IP.
[in] port
رقم منفذ IP المطلوب طباعته لن يتم طباعة أي رقم منفذ إذا كان addr يساوي NULL.
[in] interfaceId
رقم تعريف الواجهة يحدِّد الواجهة المطلوب طباعتها. ستتضمّن سلسلة الإخراج اسم الواجهة كما هو معروف لحزمة الشبكات الأساسية. لن تتم طباعة أي اسم واجهة إذا كان رقم تعريف الواجهة هو INET_NULL_INTERFACEID أو إذا كان عامل الإضافة "خالٍ" (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 تحتوي على معلومات حول الرسالة.