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 *
[للقراءة فقط] الكائن 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 وUD المفتوحة.
CreateTunnel(WeaveConnectionTunnel **tunPtr, WeaveConnection & conOne, WeaveConnection & conTwo, uint32_t inactivityTimeoutMS)
يمكنك إنشاء WeaveConnectionTunnel من خلال الربط بين اثنين من WeaveConnections معًا.
DecodeHeader(PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
يمكنك فك ترميز رأس طبقة رسالة Weave من رسالة Weave التي تم تلقيها.
EncodeMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf, WeaveConnection *con, uint16_t maxLen, uint16_t reserve)
رمِّز العنوان WeaveMessageLayer إلى الحِزمة PacketBuffer.
EncodeMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntId, WeaveMessageInfo *msgInfo, PacketBuffer *payload)
شفِّر رأس طبقة رسالة Weave في PacketBuffer.
EphemeralUDPPortEnabled(void) const
bool
تحقَّق مما إذا كان يجب إرسال عمليات تبادل Weave UDP محليًا من منفذ مصدر UDP مؤقت.
GetConnectionPoolStats(nl::Weave::System::Stats::count_t & aOutInUse) const
void
احصل على عدد WeaveConnections قيد الاستخدام وحجم المجموعة.
IPv4ListenEnabled(void) const
bool
تحقَّق من إعداد WeaveMessageLayer للاستماع إلى الاتصالات الواردة عبر IPv4.
IPv6ListenEnabled(void) const
bool
تحقَّق من إعداد WeaveMessageLayer للاستماع إلى الاتصالات الواردة عبر IPv4.
Init(InitContext *context)
إعداد كائن طبقة رسالة Weave.
IsBoundToLocalIPv4Address(void) const
bool
تحقّق من ربط WeaveMessageLayer بعنوان IPv4 محلي.
IsBoundToLocalIPv6Address(void) const
bool
تأكَّد من ربط WeaveMessageLayer بعنوان IPv6 محلي.
IsMessageLayerActive(void)
bool
NewConnection(void)
إنشاء كائن WeaveConnection جديد من خلال مجموعة.
NewConnectionTunnel(void)
إنشاء كائن WeaveConnectionTunnel جديد من مجموعة.
ReEncodeMessage(PacketBuffer *buf)
RefreshEndpoints(void)
أعِد تحميل نقاط نهاية InetLayer وفقًا للحالة الحالية لواجهات الشبكة على مستوى النظام.
ResendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
يمكنك إعادة إرسال رسالة Weave مشفّرة باستخدام نقطة نهاية Inetlayer UDP.
ResendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
يمكنك إعادة إرسال رسالة Weave مشفّرة باستخدام نقطة نهاية Inetlayer UDP.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
يمكنك إعادة إرسال رسالة Weave مشفّرة باستخدام نقطة نهاية Inetlayer UDP.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId interfaceId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
يمكنك إعادة إرسال رسالة Weave مشفّرة باستخدام نقطة نهاية Inetlayer UDP.
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
يمكنك إرسال رسالة Weave باستخدام نقطة نهاية Inetlayer UDP بعد ترميزها.
SendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
يمكنك إرسال رسالة Weave باستخدام نقطة نهاية Inetlayer UDP بعد ترميزها.
SendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntfId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
يمكنك إرسال رسالة Weave باستخدام نقطة نهاية Inetlayer UDP بعد ترميزها.
SendUDPTunneledMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
وظيفة لإرسال حزمة أنبوبية عبر نفق UDP محلي.
SetSignalMessageLayerActivityChanged(MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler)
void
يمكنك ضبط معالج التطبيق الذي سيتم استدعاءه في كل مرة يتغير فيها نشاط طبقة الرسالة.
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.

الأنواع العامة

قبول الأخطاء

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

هذه الدالة هي استدعاء طبقة أعلى للإبلاغ عن خطأ أثناء معالجة اتصال TCP الوارد.

التفاصيل
المَعلمات
[in] msgLayer
مؤشر إلى الكائن WeaveMessageLayer.
[in] err
حدث خطأ WEAVE_ERROR أثناء التعامل مع اتصال TCP الوارد.

إزالة معاودة الاتصال

void(* CallbackRemovedFunct)(void *listenerState)

تم استدعاء هذه الدالة لإزالة معاودة الاتصال.

التفاصيل
المَعلمات
[in] listenerState
مؤشر إلى كائن حالة التطبيق.

اتصال FunFunct

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

هذه الدالة هي استدعاء طبقة أعلى للتعامل مع اتصال TCP الوارد.

التفاصيل
المَعلمات
[in] msgLayer
مؤشر إلى الكائن WeaveMessageLayer.
[in] con
مؤشر إلى الكائن WeaveConnection.

MessageLayerActivityChangeHandlerFunct

void(* MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive)

هذه الدالة هي استدعاء التطبيق للإبلاغ عن تغيير نشاط طبقة الرسالة.

تُعتبر طبقة الرسالة نشطة إذا كان هناك طلب واحد على الأقل لمبادلة الرسائل المفتوحة أو في انتظار المراجعة.

التفاصيل
المَعلمات
[in] messageLayerIsActive
قيمة منطقية تشير إلى ما إذا كانت طبقة الرسالة نشطة أم لا.

رسالة الاستلام الاستلام

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

هذه الدالة هي استدعاء الطبقة الأعلى الذي يتم استدعاؤه عند استلام رسالة Weave عبر UDP.

التفاصيل
المَعلمات
[in] msgLayer
مؤشر إلى الكائن WeaveMessageLayer.
[in] msgInfo
مؤشر إلى الكائن WeaveMessageInfo.
[in] payload
أشِر إلى رسالة PacketBuffer التي تحتوي على حزمة مُستلَمة نفقية.

رمز خطأ الاستلام

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.

مسار الاتصال النفقي

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

هذه الدالة هي استدعاء الطبقة الأعلى الذي يتم استدعاؤه عند استلام حزمة نفق عبر نفق UDP محلي.

التفاصيل
المَعلمات
[in] msgLayer
مؤشر إلى الكائن WeaveMessageLayer.
[in] payload
أشِر إلى رسالة PacketBuffer التي تحتوي على حزمة مُستلَمة نفقية.

السمات العلنية

حالة التطبيق

void * AppState

مؤشر إلى كائن حالة خاص بالتطبيق.

إدارة Exchange

WeaveExchangeManager * ExchangeMgr

[للقراءة فقط] الكائن WeaveExchangeManager المرتبط.

حالة FabricState

WeaveFabricState * FabricState

[للقراءة فقط] الكائن WeaveFabricState المرتبط.

انتهاء مهلة البريد الوارد

uint32_t IncomingConIdleTimeout

مهلة عدم النشاط التلقائية (بالمللي ثانية) للاتصالات الواردة.

اينت

InetLayer * Inet

[للقراءة فقط] الكائن InetLayer المرتبط.

استماع

bool IsListening

[للقراءة فقط] الإعداد "صحيح" في حال الاستماع إلى اتصالات/رسائل واردة، أو غير صحيح

خطأ في القبول

AcceptErrorFunct OnAcceptError

تم استلام OnConnection

ConnectionReceiveFunct OnConnectionReceived

OnMessageReceived

MessageReceiveFunct OnMessageReceived

خطأ في الاستلام

ReceiveErrorFunct OnReceiveError

OnUDPTunneledMessageReceived

TunneledMsgReceiveFunct OnUDPTunneledMessageReceived

إدارة الأمان

WeaveSecurityManager * SecurityMgr

[للقراءة فقط] الكائن WeaveSecurityManager المرتبط.

الولاية

uint8_t State

[للقراءة فقط] حالة الكائن WeaveMessageLayer.

طبقة النظام

System::Layer * SystemLayer

mDropMessage

bool mDropMessage

داخليًا ولتصحيح الأخطاء فقط، عند الضبط، يؤدي WeaveMessageLayer إلى تجاهل الرسالة وعرضها.

الوظائف العامة

ClearUnsecuredConnectionListener

WEAVE_ERROR ClearUnsecuredConnectionListener(
  ConnectionReceiveFunct oldOnUnsecuredConnectionReceived,
  CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved
)

إغلاق نقاط النهاية

WEAVE_ERROR CloseEndpoints(
  void
)

إغلاق جميع نقاط نهاية TCP وUD المفتوحة.

بعد ذلك، يمكنك إلغاء أي اتصالات WeaveConnection مفتوحة وإيقاف أي كائنات WeaveConnectionTunnel مفتوحة.

يُرجى الاطِّلاع أيضًا على:
إيقاف التشغيل().

إنشاء نفق

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 جديد.

فك الترميز

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 غير متوافق.

ترميز الرسالة

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
الأخطاء التي تنشأ عن كائن حالة القماش عند استرجاع حالة الجلسة.

ترميز الرسالة

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

شفِّر رأس طبقة رسالة Weave في PacketBuffer.

التفاصيل
المَعلمات
[in] destAddr
عنوان IP الوجهة.
[in] destPort
منفذ الوجهة.
[in] sendIntId
الواجهة التي يمكن إرسال رسالة Weave عليها.
[in] msgInfo
مؤشر إلى كائن WeaveMessageInfo.
[in] payload
مؤشر إلى الكائن PacketBuffer الذي سيحمل رسالة Weave.
قيم الإرجاع
WEAVE_NO_ERROR
على ترميز ناجح لرسالة Weave.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
إذا كان إصدار رسالة Weave غير متوافق.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
إذا كان طول الحمولة في المخزن المؤقت للرسالة صفرًا.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
إذا كان نوع التشفير غير متاح.
WEAVE_ERROR_MESSAGE_TOO_LONG
إذا كانت الرسالة المشفّرة أطول من الحد الأقصى المطلوب.
WEAVE_ERROR_BUFFER_TOO_SMALL
في حال عدم توفّر مساحة كافية قبل أو بعد حمولة الرسالة.
other
الأخطاء التي تنشأ عن كائن حالة القماش عند استرجاع حالة الجلسة.

مؤقت

bool EphemeralUDPPortEnabled(
  void
) const 

تحقَّق مما إذا كان يجب إرسال عمليات تبادل Weave UDP محليًا من منفذ مصدر UDP مؤقت.

الحصول على إحصاءات حول الاتصال

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.

التفاصيل
المَعلمات
[in] context
مؤشر إلى الكائن InitContext.
قيم الإرجاع
WEAVE_NO_ERROR
عند الإعداد بنجاح.
WEAVE_ERROR_INVALID_ARGUMENT
إذا كان الكائن InitContext الذي تم تمريره هو NULL.
WEAVE_ERROR_INCORRECT_STATE
إذا كانت حالة الكائن WeaveMessageLayer غير صحيحة.
other
الأخطاء التي تم إنشاؤها من طبقة Inet المنخفضة أثناء إنشاء نقطة النهاية.

عنوان isBoundToLocalIPv4

bool IsBoundToLocalIPv4Address(
  void
) const 

تحقّق من ربط WeaveMessageLayer بعنوان IPv4 محلي.

عنوان isBoundToLocalIPv6

bool IsBoundToLocalIPv6Address(
  void
) const 

تأكَّد من ربط WeaveMessageLayer بعنوان IPv6 محلي.

IsMessageLayerActive

bool IsMessageLayerActive(
  void
)

اتصال جديد

WeaveConnection * NewConnection(
  void
)

إنشاء كائن WeaveConnection جديد من خلال مجموعة.

التفاصيل
المرتجعات
إشارة إلى كائن WeaveConnection المُنشأ حديثًا في حال نجاح ذلك، أو خلاف القيمة NULL.

اتصال جديد

WeaveConnectionTunnel * NewConnectionTunnel(
  void
)

إنشاء كائن WeaveConnectionTunnel جديد من مجموعة.

التفاصيل
المرتجعات
مؤشر إلى العنصر WeaveConnectionTunnel الذي تم إنشاؤه حديثًا في حال كان ذلك ناجحًا، وبخلاف ذلك القيمة NULL.

رمز ReEncodeMessage

WEAVE_ERROR ReEncodeMessage(
  PacketBuffer *buf
)

إعادة تحميل نقاط النهاية

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 الداخلية ذات الطبقة السفلية أثناء الإرسال.

إعادة إرسال الرسالة

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 الداخلية ذات الطبقة السفلية أثناء الإرسال.

إعادة إرسال الرسالة

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 الداخلية ذات الطبقة السفلية أثناء الإرسال.

إعادة إرسال الرسالة

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 الداخلية ذات الطبقة السفلية أثناء الإرسال.

إرسال رسالة

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

يمكنك إرسال رسالة Weave باستخدام نقطة نهاية Inetlayer UDP بعد ترميزها.

التفاصيل
المَعلمات
[in] msgInfo
مؤشر إلى عنصر WeaveMessageInfo يحتوي على معلومات حول الرسالة التي سيتم إرسالها.
[in] payload
مؤشر إلى الكائن PacketBuffer الذي يحتوي على رسالة Weave المشفرة.
قيم الإرجاع
WEAVE_NO_ERROR
على إرسال الرسالة بنجاح إلى طبقة الشبكة.
errors
تم إنشاؤها من نقطة نهاية UDP الداخلية ذات الطبقة السفلية أثناء الإرسال.

إرسال رسالة

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 الداخلية ذات الطبقة السفلية أثناء الإرسال.

إرسال رسالة

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 الداخلية ذات الطبقة السفلية أثناء الإرسال.

إرسال رسالة ترحيبية

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 الداخلية ذات الطبقة السفلية أثناء الإرسال.

تم تغيير SetSignalMessageLayerActivity

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 المفتوحة وأعِد ضبط جميع استدعاءات الطبقات الأعلى ومتغيرات الأعضاء والكائنات. ويؤدي الاستدعاء إلى Closeddown() إلى إنهاء الكائن WeaveMessageLayer.

TCPListenEnabled

bool TCPListenEnabled(
  void
) const 

تحقَّق من إعداد WeaveMessageLayer للاستماع إلى اتصالات TCP الواردة.

تم تفعيل UDPListening

bool UDPListenEnabled(
  void
) const 

تحقّق من إعداد WeaveMessageLayer للاستماع إلى رسائل UDP الواردة.

UnsecuredListenEnabled

bool UnsecuredListenEnabled(
  void
) const 

تفعيل عمليات تبادل Weave UDP أو إيقافها من منفذ مصدر UDP المؤقت.

ملاحظة: يجب طلب RefreshEndpoints() بعد تغيير حالة النقل المؤقت. التحقّق من تفعيل ميزة الاستماع غير الآمن

WeaMessageMessageLayer

 WeaveMessageLayer(
  void
)

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

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

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 خطأ.
المرتجعات
الحد الأقصى لحجم حمولة Weave.

وصف GetPeer

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 لطباعته، أو رمز NULL في حال عدم طباعة عنوان IP.
[in] port
رقم منفذ IP المراد طباعته. ولن تتم طباعة رقم المنفذ إذا كانت قيمة الإضافة NULL.
[in] interfaceId
رقم تعريف واجهة مستخدم يُحدّد الواجهة التي ستتم طباعتها. ستحتوي سلسلة الناتج على اسم الواجهة كما هو معروف في حزمة الشبكة الأساسية. ولن تتم طباعة أي اسم لواجهة إذا كانت UIId هي INET_NULL_INTERfaceID أو إذا كانت الإضافة هي NULL.
[in] con
إشارة إلى كائن WeaveConnection الذي ستتم طباعة معرّف التسجيل الخاص به، أو رمز NULL في حال عدم طباعة معرّف الاتصال.

وصف GetPeer

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

تنشئ سلسلة تصف عقدة من الأقران استنادًا إلى المعلومات المرتبطة برسالة تم تلقيها من نظير.

التفاصيل
المَعلمات
[in] buf
مؤشر إلى المخزن المؤقت الذي يجب كتابة السلسلة فيه. يجب ألا يقل حجم المخزن المؤقت عن kWeavePeerDescription_MaxLength. إذا تم توفير المخزن المؤقت الأصغر، سيتم اقتطاع السلسلة لتناسبها. ستحتوي المخرجات على حرف إنهاء NUL في جميع الحالات.
[in] bufSize
حجم المخزن المؤقت المُشار إليه باسم buf.
[in] msgInfo
مؤشر إلى بنية WeaveMessageInfo تحتوي على معلومات حول الرسالة.