nl::Weave::WeaveMessageLayer

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

تعريف فئة WeaveMessageLayer، التي تدير الاتصال مع عُقد Weave الأخرى.

ملخّص

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

الشركات المصنّعة والمُصنّعة

WeaveMessageLayer(void)
الدالة الإنشائية لطبقة Weave Message.

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

AcceptErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err) تعريف الكتابة
void(*
هذه الدالة هي استدعاء الطبقة الأعلى للإبلاغ عن خطأ أثناء التعامل مع اتصال TCP الوارد.
CallbackRemovedFunct)(void *listenerState) تعريف الكتابة
void(*
تم استدعاء هذه الدالة لإزالة معاودة الاتصال.
ConnectionReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveConnection *con) تعريف الكتابة
void(*
هذه الدالة هي معاودة الاتصال ذات الطبقة الأعلى للتعامل مع اتصال TCP الوارد.
MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive) تعريف الكتابة
void(*
هذه الدالة هي معاودة الاتصال بالتطبيق للإبلاغ عن تغيير نشاط طبقة الرسائل.
MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload) تعريف الكتابة
void(*
هذه الدالة هي استدعاء الطبقة الأعلى الذي يتم استدعاؤه عند استلام رسالة Weave عبر UDP.
ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo) تعريف الكتابة
void(*
هذه الدالة هي استدعاء الطبقة الأعلى الذي تم استدعاؤه عند حدوث خطأ.
State{
  kState_NotInitialized = 0,
  kState_Initializing = 1,
  kState_Initialized = 2
}
تعداد
TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload) تعريف الكتابة
void(*
هذه الدالة هي استدعاء الطبقة الأعلى الذي يتم استدعاؤه عند استلام حزمة نفقية عبر نفق UDP محلي.

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

AppState
void *
يشير إلى عنصر حالة خاص بالتطبيق.
ExchangeMgr
[للقراءة فقط] كائن WeaveExchangeManager المرتبط
FabricState
[READ ONLY] سمة WeaveFabricState المرتبطة
IncomingConIdleTimeout
uint32_t
مهلة عدم النشاط التلقائية (بالمللي ثانية) للاتصالات الواردة
Inet
InetLayer *
[READ ONLY] كائن InetLayer المرتبط
IsListening
bool
[للقراءة فقط] True عند الاستماع إلى الاتصالات/الرسائل الواردة، وخطأ في الحالات الأخرى.
OnAcceptError
OnConnectionReceived
OnMessageReceived
OnReceiveError
OnUDPTunneledMessageReceived
SecurityMgr
[READ ONLY] كائن WeaveSecurityManager المرتبط
State
uint8_t
[READ ONLY] حالة الكائن 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 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
احصل على عدد WeaveConnections قيد الاستخدام وحجم حوض السباحة.
IPv4ListenEnabled(void) const
bool
تحقَّق من ضبط WeaveMessageLayer على الاستماع إلى الاتصالات الواردة عبر IPv4.
IPv6ListenEnabled(void) const
bool
تحقَّق من ضبط WeaveMessageLayer على الاستماع إلى الاتصالات الواردة عبر IPv4.
Init(InitContext *context)
قم بتهيئة كائن طبقة Weave Message.
IsBoundToLocalIPv4Address(void) const
bool
تحقَّق مما إذا كان WeaveMessageLayer مرتبطًا بعنوان محلي تستند إلى بروتوكول IPv4.
IsBoundToLocalIPv6Address(void) const
bool
تحقَّق مما إذا كان WeaveMessageLayer مرتبطًا بعنوان محلي يعتمد على الإصدار السادس من بروتوكول الإنترنت (IPv6).
IsMessageLayerActive(void)
bool
NewConnection(void)
أنشئ كائن WeaveConnection جديد من مجموعة.
NewConnectionTunnel(void)
أنشِئ كائن WeaveConnectionTunnel جديدًا من مجموعة.
ReEncodeMessage(PacketBuffer *buf)
RefreshEndpoints(void)
أعِد تحميل نقاط نهاية InetLayer بناءً على الحالة الحالية لواجهات الشبكة في النظام.
ResendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
يمكنك إعادة إرسال رسالة Weave مشفرة باستخدام نقطة نهاية Inetlayer UDP الأساسية.
ResendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
يمكنك إعادة إرسال رسالة Weave مشفرة باستخدام نقطة نهاية Inetlayer UDP الأساسية.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
يمكنك إعادة إرسال رسالة Weave مشفرة باستخدام نقطة نهاية Inetlayer UDP الأساسية.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId interfaceId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
يمكنك إعادة إرسال رسالة Weave مشفرة باستخدام نقطة نهاية Inetlayer UDP الأساسية.
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
أرسل رسالة Weave باستخدام نقطة نهاية Inetlayer UDP الأساسية بعد تشفيرها.
SendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
أرسل رسالة Weave باستخدام نقطة نهاية Inetlayer UDP الأساسية بعد تشفيرها.
SendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntfId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
أرسل رسالة Weave باستخدام نقطة نهاية Inetlayer UDP الأساسية بعد تشفيرها.
SendUDPTunneledMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
دالة لإرسال حزمة نفقية عبر نفق UDP محلي.
SetSignalMessageLayerActivityChanged(MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler)
void
عيِّن معالج تطبيق سيتم استدعاؤه في كل مرة يتغير فيها نشاط طبقة الرسالة.
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

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

FabricState

WeaveFabricState * FabricState

[READ ONLY] سمة WeaveFabricState المرتبطة

IncomingConIdleTimeout

uint32_t IncomingConIdleTimeout

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

Inet

InetLayer * Inet

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

IsListening

bool IsListening

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

OnAcceptError

AcceptErrorFunct OnAcceptError

OnConnectionReceived

ConnectionReceiveFunct OnConnectionReceived

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnUDPTunneledMessageReceived

TunneledMsgReceiveFunct OnUDPTunneledMessageReceived

SecurityMgr

WeaveSecurityManager * SecurityMgr

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

الحالة

uint8_t State

[READ ONLY] حالة الكائن 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 مفتوحة.

يُرجى الاطّلاع أيضًا على:
الحالة().

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

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

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

الدالة الإنشائية لطبقة Weave Message.

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

GetMaxWeavePayloadSize

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

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

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

إذا كانت الرسالة هي UDP، فإن الحد الأقصى لحجم الحمولة الذي يتم عرضه لن يؤدي إلى ظهور رسالة Weave التي لن تتجاوز وحدة 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 المطلوب طباعته أو "NULL" (فارغ) إذا كان لا ينبغي طباعة عنوان IP.
[in] port
رقم منفذ IP المطلوب طباعته لن تتم طباعة أي رقم منفذ إذا كان عامل الإضافة "خالٍ" (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 تحتوي على معلومات حول الرسالة.