nl::Weave::WeaveMessageLayer

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

تمثّل هذه السمة تعريف الفئة WeaveMessageLayer التي تدير الاتصال بعُقد Weave الأخرى.

ملخّص

وهي تستخدم إحدى نقاط نهاية InetLayer المتعددة لإنشاء قناة اتصال بعُقد Weave الأخرى.

الدلالة والهياكل

WeaveMessageLayer(void)
الدالة الإنشائية لطبقة رسالة النسج.

الأنواع العلنية

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
[READ ONLY] كائن 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 و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
احصل على عدد 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 للاستماع إلى اتصالات بروتوكول التحكم بالنقل الواردة.
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

[READ ONLY] كائن WeaveExchangeManager المرتبط.

FabricState

WeaveFabricState * FabricState

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

IncomingConIdleTimeout

uint32_t IncomingConIdleTimeout

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

إنت

InetLayer * Inet

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

IsListening

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 المفتوحة.

بعد ذلك، عليك إلغاء أي كائنات 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 غير متوافق.

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

إنت

WEAVE_ERROR Init(
  InitContext *context
)

ابدأ في تهيئة كائن طبقة رسالة Weave.

التفاصيل
المَعلمات
[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 الذي تم إنشاؤه حديثًا إذا كانت ناجحة، وإلا تكون فارغة.

NewConnectionTunnel

WeaveConnectionTunnel * NewConnectionTunnel(
  void
)

أنشئ كائن WeaveConnectionTunnel جديدًا من مجموعة.

التفاصيل
المرتجعات
مؤشر إلى الكائن WeaveConnectionTunnel الذي تم إنشاؤه حديثًا في حال نجاحه، وإلا يكون فارغًا.

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 للاستماع إلى اتصالات بروتوكول التحكم بالنقل الواردة.

UDPListenEnabled

bool UDPListenEnabled(
  void
) const 

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

UnsecuredListenEnabled

bool UnsecuredListenEnabled(
  void
) const 

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

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

WeaveMessageLayer

 WeaveMessageLayer(
  void
)

الدالة الإنشائية لطبقة رسالة النسج.

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

GetMaxWeavePayloadSize

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

احصل على الحد الأقصى لحجم حمولة Weave لإعدادات الرسالة وتزويد PacketBuffer.

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

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

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

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