nl::Weave::WeaMessageMessageLayer

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

Definisi class WeaveMessageLayer, yang mengelola komunikasi dengan node Weave lainnya.

Ringkasan

Server ini menggunakan salah satu dari beberapa endpoint InetLayer untuk membuat saluran komunikasi dengan node Weave lainnya.

Konstruktor dan Destruktor

WeaveMessageLayer(void)
Konstruktor lapisan Weave Message.

Jenis publik

AcceptErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err) typedef
void(*
Fungsi ini adalah callback lapisan yang lebih tinggi untuk melaporkan error selama penanganan koneksi TCP yang masuk.
CallbackRemovedFunct)(void *listenerState) typedef
void(*
Fungsi ini dipanggil untuk menghapus callback.
ConnectionReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveConnection *con) typedef
void(*
Fungsi ini adalah callback lapisan yang lebih tinggi untuk menangani koneksi TCP yang masuk.
MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive) typedef
void(*
Fungsi ini adalah callback aplikasi untuk melaporkan perubahan aktivitas lapisan pesan.
MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload) typedef
void(*
Fungsi ini adalah callback lapisan yang lebih tinggi yang dipanggil setelah menerima pesan Weave melalui UDP.
ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
Fungsi ini adalah callback lapisan yang lebih tinggi yang dipanggil setelah mengalami error.
State{
  kState_NotInitialized = 0,
  kState_Initializing = 1,
  kState_Initialized = 2
}
enum
TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload) typedef
void(*
Fungsi ini adalah callback lapisan yang lebih tinggi yang dipanggil setelah menerima paket Tunneled melalui tunnel UDP lokal.

Atribut publik

AppState
void *
Pointer ke objek status khusus aplikasi.
ExchangeMgr
[READ ONLY] Objek WeaveExchangeManager terkait.
FabricState
[HANYA BACA] Objek WeaveFabricState terkait.
IncomingConIdleTimeout
uint32_t
Waktu tunggu tidak ada aktivitas default (dalam milidetik) untuk koneksi masuk.
Inet
InetLayer *
[HANYA BACA] Objek InetLayer terkait.
IsListening
bool
[HANYA BACA] Benar jika mendengarkan koneksi/pesan masuk, salah jika tidak.
OnAcceptError
OnConnectionReceived
OnMessageReceived
OnReceiveError
OnUDPTunneledMessageReceived
SecurityMgr
[HANYA BACA] Objek WeaveSecurityManager terkait.
State
uint8_t
[HANYA BACA] Status objek WeaveMessageLayer.
SystemLayer
mDropMessage
bool
Internal dan Khusus Debug; Jika ditetapkan, WeaveMessageLayer akan menghapus pesan dan kembali.

Fungsi publik

ClearUnsecuredConnectionListener(ConnectionReceiveFunct oldOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved)
CloseEndpoints(void)
Tutup semua endpoint TCP dan UDP yang terbuka.
CreateTunnel(WeaveConnectionTunnel **tunPtr, WeaveConnection & conOne, WeaveConnection & conTwo, uint32_t inactivityTimeoutMS)
Membuat WeaveConnectionTunnel dengan menggabungkan dua WeaveConnections yang ditentukan.
DecodeHeader(PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
Mendekode header lapisan Weave Message dari pesan Weave yang diterima.
EncodeMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf, WeaveConnection *con, uint16_t maxLen, uint16_t reserve)
Mengenkode header WeaveMessageLayer ke dalam PacketBuffer.
EncodeMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntId, WeaveMessageInfo *msgInfo, PacketBuffer *payload)
Mengenkode header lapisan Weave Message menjadi PacketBuffer.
EphemeralUDPPortEnabled(void) const
bool
Periksa apakah pertukaran UDP Weave yang dimulai secara lokal harus dikirim dari port sumber UDP sementara.
GetConnectionPoolStats(nl::Weave::System::Stats::count_t & aOutInUse) const
void
Dapatkan jumlah WeaveConnections yang digunakan dan ukuran kumpulannya.
IPv4ListenEnabled(void) const
bool
Periksa apakah WeaveMessageLayer dikonfigurasi guna memproses komunikasi masuk melalui IPv4.
IPv6ListenEnabled(void) const
bool
Periksa apakah WeaveMessageLayer dikonfigurasi guna memproses komunikasi masuk melalui IPv4.
Init(InitContext *context)
Lakukan inisialisasi objek lapisan Weave Message.
IsBoundToLocalIPv4Address(void) const
bool
Periksa apakah WeaveMessageLayer terikat ke alamat IPv4 lokal.
IsBoundToLocalIPv6Address(void) const
bool
Periksa apakah WeaveMessageLayer terikat ke alamat IPv6 lokal.
IsMessageLayerActive(void)
bool
NewConnection(void)
Buat objek WeaveConnection baru dari kumpulan.
NewConnectionTunnel(void)
Buat objek WeaveConnectionTunnel baru dari kumpulan.
ReEncodeMessage(PacketBuffer *buf)
RefreshEndpoints(void)
Muat ulang endpoint InetLayer berdasarkan status antarmuka jaringan sistem saat ini.
ResendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Kirim ulang pesan Weave yang dienkode menggunakan endpoint UDP Inetlayer yang mendasarinya.
ResendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Kirim ulang pesan Weave yang dienkode menggunakan endpoint UDP Inetlayer yang mendasarinya.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Kirim ulang pesan Weave yang dienkode menggunakan endpoint UDP Inetlayer yang mendasarinya.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId interfaceId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Kirim ulang pesan Weave yang dienkode menggunakan endpoint UDP Inetlayer yang mendasarinya.
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Kirim pesan Weave menggunakan endpoint UDP Inetlayer yang mendasarinya setelah encoding.
SendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Kirim pesan Weave menggunakan endpoint UDP Inetlayer yang mendasarinya setelah encoding.
SendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntfId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Kirim pesan Weave menggunakan endpoint UDP Inetlayer yang mendasarinya setelah encoding.
SendUDPTunneledMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Fungsi untuk mengirim paket Tunneled melalui tunnel UDP lokal.
SetSignalMessageLayerActivityChanged(MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler)
void
Menetapkan pengendali aplikasi yang akan dipanggil setiap kali aktivitas lapisan pesan berubah.
SetTCPListenEnabled(bool val)
void
Mengaktifkan atau menonaktifkan pemrosesan untuk koneksi TCP masuk di WeaveMessageLayer.
SetUDPListenEnabled(bool val)
void
Mengaktifkan atau menonaktifkan pemrosesan pesan UDP masuk di WeaveMessageLayer.
SetUnsecuredConnectionListener(ConnectionReceiveFunct newOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved, bool force, void *listenerState)
Shutdown(void)
Nonaktifkan WeaveMessageLayer.
TCPListenEnabled(void) const
bool
Periksa apakah WeaveMessageLayer dikonfigurasi untuk memproses koneksi TCP masuk.
UDPListenEnabled(void) const
bool
Periksa apakah WeaveMessageLayer dikonfigurasi untuk memproses pesan UDP masuk.
UnsecuredListenEnabled(void) const
bool
Mengaktifkan atau menonaktifkan memulai pertukaran Weave UDP dari port sumber UDP sementara.

Fungsi statis publik

GetMaxWeavePayloadSize(const PacketBuffer *msgBuf, bool isUDP, uint32_t udpMTU)
uint32_t
Mendapatkan ukuran payload Weave maksimum untuk konfigurasi pesan dan PacketBuffer yang disediakan.
GetPeerDescription(char *buf, size_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, InterfaceId interfaceId, const WeaveConnection *con)
void
Membuat string yang mendeskripsikan node pembanding dan informasi alamat / koneksi terkait.
GetPeerDescription(char *buf, size_t bufSize, const WeaveMessageInfo *msgInfo)
void
Membuat string yang mendeskripsikan node pembanding berdasarkan informasi yang terkait dengan pesan yang diterima dari pembanding.

Class

nl::Weave::WeaMessageMessageLayer:InitContext

Definisi class InitContext.

Jenis publik

TerimaErrorFunct

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

Fungsi ini adalah callback lapisan yang lebih tinggi untuk melaporkan error selama penanganan koneksi TCP yang masuk.

Detail
Parameter
[in] msgLayer
Pointer ke objek WeaveMessageLayer.
[in] err
WEAVE_ERROR yang terjadi saat menangani koneksi TCP yang masuk.

CallbackDihapusFunct

void(* CallbackRemovedFunct)(void *listenerState)

Fungsi ini dipanggil untuk menghapus callback.

Detail
Parameter
[in] listenerState
Pointer ke objek status aplikasi.

ConnectionReceiveFunct

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

Fungsi ini adalah callback lapisan yang lebih tinggi untuk menangani koneksi TCP yang masuk.

Detail
Parameter
[in] msgLayer
Pointer ke objek WeaveMessageLayer.
[in] con
Pointer ke objek WeaveConnection.

MessageLayerActivityHandlerHandlerFunct

void(* MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive)

Fungsi ini adalah callback aplikasi untuk melaporkan perubahan aktivitas lapisan pesan.

Lapisan pesan dianggap aktif jika ada setidaknya satu pertukaran terbuka atau permintaan sinkronisasi penghitung pesan yang tertunda.

Detail
Parameter
[in] messageLayerIsActive
Nilai boolean yang menunjukkan apakah lapisan pesan aktif atau tidak.

MessageReceiveFunct

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

Fungsi ini adalah callback lapisan yang lebih tinggi yang dipanggil setelah menerima pesan Weave melalui UDP.

Detail
Parameter
[in] msgLayer
Pointer ke objek WeaveMessageLayer.
[in] msgInfo
Pointer ke objek WeaveMessageInfo.
[in] payload
Pointer ke Paket PacketBuffer yang berisi paket yang tunneling diterima.

TerimaErrorFunct

void(* ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo)

Fungsi ini adalah callback lapisan yang lebih tinggi yang dipanggil setelah mengalami error.

Detail
Parameter
[in] msgLayer
Pointer ke objek WeaveMessageLayer.
[in] err
WEAVE_ERROR yang terjadi saat menerima data.
[in] pktInfo
Pointer hanya baca ke objek IPPacketInfo.

Negara bagian

 State

Status WeaveMessageLayer.

Properti
kState_Initialized

Status saat WeaveMessageLayer diinisialisasi.

kState_Initializing

Status saat WeaveMessageLayer sedang dalam proses inisialisasi.

kState_NotInitialized

Status saat WeaveMessageLayer tidak diinisialisasi.

TunneledmsgReceiveFunct

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

Fungsi ini adalah callback lapisan yang lebih tinggi yang dipanggil setelah menerima paket Tunneled melalui tunnel UDP lokal.

Detail
Parameter
[in] msgLayer
Pointer ke objek WeaveMessageLayer.
[in] payload
Pointer ke Paket PacketBuffer yang berisi paket yang tunneling diterima.

Atribut publik

StatusAplikasi

void * AppState

Pointer ke objek status khusus aplikasi.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[READ ONLY] Objek WeaveExchangeManager terkait.

Status Fabric

WeaveFabricState * FabricState

[HANYA BACA] Objek WeaveFabricState terkait.

IncomingConIdleTimeout

uint32_t IncomingConIdleTimeout

Waktu tunggu tidak ada aktivitas default (dalam milidetik) untuk koneksi masuk.

Makanan

InetLayer * Inet

[HANYA BACA] Objek InetLayer terkait.

Memproses

bool IsListening

[HANYA BACA] Benar jika mendengarkan koneksi/pesan masuk, salah jika tidak.

OnAcceptError

AcceptErrorFunct OnAcceptError

OnConnectionReceived

ConnectionReceiveFunct OnConnectionReceived

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnUDPTunneledMessageReceived

TunneledMsgReceiveFunct OnUDPTunneledMessageReceived

KeamananMgr

WeaveSecurityManager * SecurityMgr

[HANYA BACA] Objek WeaveSecurityManager terkait.

Negara bagian

uint8_t State

[HANYA BACA] Status objek WeaveMessageLayer.

Lapisan Sistem

System::Layer * SystemLayer

mDropMessage

bool mDropMessage

Internal dan Khusus Debug; Jika ditetapkan, WeaveMessageLayer akan menghapus pesan dan kembali.

Fungsi publik

ClearUnsecuredConnectionListener

WEAVE_ERROR ClearUnsecuredConnectionListener(
  ConnectionReceiveFunct oldOnUnsecuredConnectionReceived,
  CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved
)

CloseEndpoint

WEAVE_ERROR CloseEndpoints(
  void
)

Tutup semua endpoint TCP dan UDP yang terbuka.

Kemudian, batalkan WeaveConnections terbuka dan nonaktifkan objek WeaveConnectionTunnel yang terbuka.

Lihat juga:
Shutdown().

CreateTunnel

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

Membuat WeaveConnectionTunnel dengan menggabungkan dua WeaveConnections yang ditentukan.

Saat pembuatan berhasil, TCPEndPoints yang sesuai dengan objek WeaveConnection komponen dialihkan ke WeaveConnectionTunnel, jika tidak, WeaveConnections akan ditutup.

Detail
Parameter
[out] tunPtr
Pointer ke pointer objek WeaveConnectionTunnel.
[in] conOne
Referensi ke objek WeaveConnection pertama.
[in] conTwo
Referensi ke objek WeaveConnection kedua.
[in] inactivityTimeoutMS
Waktu maksimum dalam milidetik saat tunnel koneksi Weave dapat tidak ada aktivitas.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
saat pembuatan WeaveConnectionTunnel berhasil.
WEAVE_ERROR_INCORRECT_STATE
jika komponen komponen WeaveConnection dari WeaveConnectionTunnel tidak dalam status yang benar.
WEAVE_ERROR_NO_MEMORY
jika objek WeaveConnectionTunnel baru tidak dapat dibuat.

DekodeHeader

WEAVE_ERROR DecodeHeader(
  PacketBuffer *msgBuf,
  WeaveMessageInfo *msgInfo,
  uint8_t **payloadStart
)

Mendekode header lapisan Weave Message dari pesan Weave yang diterima.

Detail
Parameter
[in] msgBuf
Pointer ke objek PacketBuffer yang menyimpan pesan Weave.
[in] msgInfo
Pointer ke objek WeaveMessageInfo yang akan menerima informasi tentang pesan tersebut.
[out] payloadStart
Pointer ke pointer ke posisi dalam buffer pesan setelah decoding selesai.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Saat decoding header pesan berhasil.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
Jika buffering pesan yang diteruskan memiliki panjang yang tidak valid.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
Jika versi format header Weave Message tidak didukung.

EnkodePesan

WEAVE_ERROR EncodeMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf,
  WeaveConnection *con,
  uint16_t maxLen,
  uint16_t reserve
)

Mengenkode header WeaveMessageLayer ke dalam PacketBuffer.

Detail
Parameter
[in] msgInfo
Pointer ke objek WeaveMessageInfo yang berisi informasi tentang pesan yang akan dienkode.
[in] msgBuf
Pointer ke objek PacketBuffer yang akan menyimpan pesan Weave.
[in] con
Pointer ke objek WeaveConnection.
[in] maxLen
Panjang maksimum pesan Weave yang dienkode.
[in] reserve
Ruang yang dicadangkan sebelum payload untuk menyimpan header pesan Weave.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
saat encoding pesan berhasil.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
jika versi format header Weave Message tidak didukung.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
jika panjang payload dalam buffer pesan nol.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
jika jenis enkripsi di header pesan tidak didukung.
WEAVE_ERROR_MESSAGE_TOO_LONG
jika pesan yang dienkode akan lebih panjang dari maksimum yang diminta.
WEAVE_ERROR_BUFFER_TOO_SMALL
jika tidak ada cukup ruang sebelum atau setelah payload pesan.
other
error yang dihasilkan oleh objek status kain saat mengambil status sesi.

EnkodePesan

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

Mengenkode header lapisan Weave Message menjadi PacketBuffer.

Detail
Parameter
[in] destAddr
Alamat IP tujuan.
[in] destPort
Port tujuan.
[in] sendIntId
Antarmuka yang akan digunakan untuk mengirim pesan Weave.
[in] msgInfo
Pointer ke objek WeaveMessageInfo.
[in] payload
Pointer ke objek PacketBuffer yang akan menyimpan pesan Weave.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
saat encoding pesan Weave berhasil.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
jika versi Weave Message tidak didukung.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
jika panjang payload dalam buffer pesan nol.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
jika jenis enkripsi tidak didukung.
WEAVE_ERROR_MESSAGE_TOO_LONG
jika pesan yang dienkode akan lebih panjang dari maksimum yang diminta.
WEAVE_ERROR_BUFFER_TOO_SMALL
jika tidak ada cukup ruang sebelum atau setelah payload pesan.
other
error yang dihasilkan oleh objek status kain saat mengambil status sesi.

EfemeralUDPPortDiaktifkan

bool EphemeralUDPPortEnabled(
  void
) const 

Periksa apakah pertukaran UDP Weave yang dimulai secara lokal harus dikirim dari port sumber UDP sementara.

GetConnectionPoolStats

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

Dapatkan jumlah WeaveConnections yang digunakan dan ukuran kumpulannya.

Detail
Parameter
[out] aOutInUse
Referensi ke size_t, tempat menyimpan jumlah koneksi yang sedang digunakan.

IPv4DengarkanDiaktifkan

bool IPv4ListenEnabled(
  void
) const 

Periksa apakah WeaveMessageLayer dikonfigurasi guna memproses komunikasi masuk melalui IPv4.

IPv6DengarkanDiaktifkan

bool IPv6ListenEnabled(
  void
) const 

Periksa apakah WeaveMessageLayer dikonfigurasi guna memproses komunikasi masuk melalui IPv4.

Init

WEAVE_ERROR Init(
  InitContext *context
)

Lakukan inisialisasi objek lapisan Weave Message.

Detail
Parameter
[in] context
Pointer ke objek InitContext.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
pada inisialisasi yang berhasil.
WEAVE_ERROR_INVALID_ARGUMENT
jika objek InitContext yang diteruskan adalah NULL.
WEAVE_ERROR_INCORRECT_STATE
jika status objek WeaveMessageLayer salah.
other
error yang dihasilkan dari lapisan Inet yang lebih rendah selama pembuatan endpoint.

IsBoundToLocalIPv4Alamat

bool IsBoundToLocalIPv4Address(
  void
) const 

Periksa apakah WeaveMessageLayer terikat ke alamat IPv4 lokal.

AlamatIsBoundToLocalIPv6

bool IsBoundToLocalIPv6Address(
  void
) const 

Periksa apakah WeaveMessageLayer terikat ke alamat IPv6 lokal.

IsMessageLayerActive

bool IsMessageLayerActive(
  void
)

KoneksiBaru

WeaveConnection * NewConnection(
  void
)

Buat objek WeaveConnection baru dari kumpulan.

Detail
Hasil
pointer ke objek WeaveConnection yang baru dibuat jika berhasil, jika tidak, NULL.

NewConnectionTunnel

WeaveConnectionTunnel * NewConnectionTunnel(
  void
)

Buat objek WeaveConnectionTunnel baru dari kumpulan.

Detail
Hasil
pointer ke objek WeaveConnectionTunnel yang baru dibuat jika berhasil, jika tidak, NULL.

Enkode Ulang

WEAVE_ERROR ReEncodeMessage(
  PacketBuffer *buf
)

RefreshEndpoint

WEAVE_ERROR RefreshEndpoints(
  void
)

Muat ulang endpoint InetLayer berdasarkan status antarmuka jaringan sistem saat ini.

Detail
Nilai yang Ditampilkan
WEAVE_NO_ERROR
saat pemuatan ulang endpoint berhasil.
InetLayer
error berdasarkan panggilan untuk membuat endpoint TCP/UDP.

Kirim UlangPesan

WEAVE_ERROR ResendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Kirim ulang pesan Weave yang dienkode menggunakan endpoint UDP Inetlayer yang mendasarinya.

Detail
Parameter
[in] msgInfo
Pointer ke objek WeaveMessageInfo.
[in] payload
Pointer ke objek PacketBuffer yang menyimpan pesan Weave yang dienkode.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
berhasil mengirim pesan ke lapisan jaringan.
errors
dihasilkan dari endpoint UDP lapisan Inet yang lebih rendah selama pengiriman.

Kirim UlangPesan

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

Kirim ulang pesan Weave yang dienkode menggunakan endpoint UDP Inetlayer yang mendasarinya.

Detail
Parameter
[in] destAddr
Alamat IP tujuan.
[in] msgInfo
Pointer ke objek WeaveMessageInfo.
[in] payload
Pointer ke objek PacketBuffer yang menyimpan pesan Weave yang dienkode.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
berhasil mengirim pesan ke lapisan jaringan.
errors
dihasilkan dari endpoint UDP lapisan Inet yang lebih rendah selama pengiriman.

Kirim UlangPesan

WEAVE_ERROR ResendMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Kirim ulang pesan Weave yang dienkode menggunakan endpoint UDP Inetlayer yang mendasarinya.

Detail
Parameter
[in] destAddr
Alamat IP tujuan.
[in] destPort
Port tujuan.
[in] msgInfo
Pointer ke objek WeaveMessageInfo.
[in] payload
Pointer ke objek PacketBuffer yang menyimpan pesan Weave yang dienkode.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
berhasil mengirim pesan ke lapisan jaringan.
errors
dihasilkan dari endpoint UDP lapisan Inet yang lebih rendah selama pengiriman.

Kirim UlangPesan

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

Kirim ulang pesan Weave yang dienkode menggunakan endpoint UDP Inetlayer yang mendasarinya.

Catatan:-Jika alamat tujuan belum diberikan, coba untuk menentukannya dari ID node di header pesan. Gagal jika hal ini tidak dapat dilakukan. -Jika alamat tujuan adalah alamat kain untuk kain lokal, dan pemanggil tidak menentukan id node tujuan, ekstrak dari alamat tujuan.

Detail
Parameter
[in] aDestAddr
Alamat IP tujuan.
[in] destPort
Port tujuan.
[in] interfaceId
Antarmuka yang akan digunakan untuk mengirim pesan Weave.
[in] msgInfo
Pointer ke objek WeaveMessageInfo.
[in] payload
Pointer ke objek PacketBuffer yang menyimpan pesan Weave yang dienkode.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
berhasil mengirim pesan ke lapisan jaringan.
errors
dihasilkan dari endpoint UDP lapisan Inet yang lebih rendah selama pengiriman.

KirimPesan

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Kirim pesan Weave menggunakan endpoint UDP Inetlayer yang mendasarinya setelah encoding.

Detail
Parameter
[in] msgInfo
Pointer ke objek WeaveMessageInfo yang berisi informasi tentang pesan yang akan dikirim.
[in] payload
Pointer ke objek PacketBuffer yang menyimpan pesan Weave yang dienkode.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
berhasil mengirim pesan ke lapisan jaringan.
errors
dihasilkan dari endpoint UDP lapisan Inet yang lebih rendah selama pengiriman.

KirimPesan

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

Kirim pesan Weave menggunakan endpoint UDP Inetlayer yang mendasarinya setelah encoding.

Catatan:-Port tujuan yang digunakan adalah WEAVE_PORT. -Jika alamat tujuan belum diberikan, coba untuk menentukannya dari pengenal node di header pesan. Gagal jika hal ini tidak dapat dilakukan.

-Jika alamat tujuan adalah alamat kain untuk kain lokal, dan pemanggil tidak menentukan id node tujuan, ekstrak dari alamat tujuan.

Detail
Parameter
[in] destAddr
Alamat IP tujuan.
[in] msgInfo
Pointer ke objek WeaveMessageInfo yang berisi informasi tentang pesan yang akan dikirim.
[in] payload
Pointer ke objek PacketBuffer yang menyimpan pesan Weave yang dienkode.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
berhasil mengirim pesan ke lapisan jaringan.
errors
dihasilkan dari endpoint UDP lapisan Inet yang lebih rendah selama pengiriman.

KirimPesan

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

Kirim pesan Weave menggunakan endpoint UDP Inetlayer yang mendasarinya setelah encoding.

Catatan:-Jika alamat tujuan belum diberikan, coba untuk menentukannya dari ID node di header pesan. Gagal jika hal ini tidak dapat dilakukan. -Jika alamat tujuan adalah alamat kain untuk kain lokal, dan pemanggil tidak menentukan id node tujuan, ekstrak dari alamat tujuan.

Detail
Parameter
[in] aDestAddr
Alamat IP tujuan.
[in] destPort
Port tujuan.
[in] sendIntfId
Antarmuka yang akan digunakan untuk mengirim pesan Weave.
[in] msgInfo
Pointer ke objek WeaveMessageInfo yang berisi informasi tentang pesan yang akan dikirim.
[in] payload
Pointer ke objek PacketBuffer yang menyimpan pesan Weave yang dienkode.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
berhasil mengirim pesan ke lapisan jaringan.
WEAVE_ERROR_INVALID_ADDRESS
jika destAddr tidak ditentukan atau tidak dapat ditentukan dari ID node tujuan.
errors
dihasilkan dari endpoint UDP lapisan Inet yang lebih rendah selama pengiriman.

SendUDPTunneledMessage

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

Fungsi untuk mengirim paket Tunneled melalui tunnel UDP lokal.

Mengirim pesan data IPv6 yang melalui tunnel ke UDP.

Detail
Parameter
[in] msgInfo
Pointer ke objek WeaveMessageInfo.
[in] destAddr
IPAddress dari tujuan tunnel UDP.
[in] msgBuf
Pointer ke objek PacketBuffer yang menyimpan paket yang akan dikirim.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
berhasil mengirim pesan ke lapisan jaringan.
WEAVE_ERROR_INVALID_ADDRESS
jika destAddr tidak ditentukan atau tidak dapat ditentukan dari ID node tujuan.
errors
dihasilkan dari endpoint UDP lapisan Inet yang lebih rendah selama pengiriman.

SetSignalMessageLayerActivityChanged

void SetSignalMessageLayerActivityChanged(
  MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler
)

Menetapkan pengendali aplikasi yang akan dipanggil setiap kali aktivitas lapisan pesan berubah.

Secara khusus, permohonan akan diberi tahu setiap kali:

  • jumlah perubahan bursa yang dibuka.
  • jumlah permintaan sinkronisasi penghitung pesan yang tertunda berubah dari nol menjadi setidaknya satu dan kembali ke nol. Pengendali berfungsi sebagai sinyal umum yang menunjukkan apakah ada percakapan Weave yang sedang berlangsung atau respons yang tertunda. Pengendali harus ditetapkan setelah WeaveMessageLayer diinisialisasi; menonaktifkan WeaveMessageLayer akan menghapus pengendali saat ini.

Detail
Parameter
[in] messageLayerActivityChangeHandler
Pointer ke fungsi yang akan dipanggil setiap kali aktivitas lapisan pesan berubah.
Nilai yang Ditampilkan
None.

SetTCPDengarkanDiaktifkan

void SetTCPListenEnabled(
  bool val
)

Mengaktifkan atau menonaktifkan pemrosesan untuk koneksi TCP masuk di WeaveMessageLayer.

CATATAN: RefreshEndpoints() harus dipanggil setelah status pemrosesan TCP diubah.

SetUDPDengarkanDiaktifkan

void SetUDPListenEnabled(
  bool val
)

Mengaktifkan atau menonaktifkan pemrosesan pesan UDP masuk di WeaveMessageLayer.

CATATAN: RefreshEndpoints() harus dipanggil setelah status pemrosesan UDP diubah.

SetUnsecuredConnectionListener

WEAVE_ERROR SetUnsecuredConnectionListener(
  ConnectionReceiveFunct newOnUnsecuredConnectionReceived,
  CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved,
  bool force,
  void *listenerState
)

Nonaktif

WEAVE_ERROR Shutdown(
  void
)

Nonaktifkan WeaveMessageLayer.

Tutup semua endpoint lapisan Inet yang terbuka, reset semua callback lapisan, variabel anggota, dan objek yang lebih tinggi. Panggilan ke Shutdown() akan menghentikan objek WeaveMessageLayer.

TCPListenerEnabled

bool TCPListenEnabled(
  void
) const 

Periksa apakah WeaveMessageLayer dikonfigurasi untuk memproses koneksi TCP masuk.

UDPDengarkanDiaktifkan

bool UDPListenEnabled(
  void
) const 

Periksa apakah WeaveMessageLayer dikonfigurasi untuk memproses pesan UDP masuk.

UnsecuredDengarkanEnabled

bool UnsecuredListenEnabled(
  void
) const 

Mengaktifkan atau menonaktifkan memulai pertukaran Weave UDP dari port sumber UDP sementara.

CATATAN: RefreshEndpoints() harus dipanggil setelah status port efemeral diubah. Periksa apakah mendengarkan yang tidak aman diaktifkan.

WeaveMessageLayer

 WeaveMessageLayer(
  void
)

Konstruktor lapisan Weave Message.

Fungsi statis publik

GetMaxWeavePayloadSize

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

Mendapatkan ukuran payload Weave maksimum untuk konfigurasi pesan dan PacketBuffer yang disediakan.

Ukuran payload maksimum yang ditampilkan tidak akan melebihi ruang yang tersedia untuk payload di dalam PacketBuffer yang disediakan.

Jika pesan adalah UDP, ukuran payload maksimum yang ditampilkan tidak akan menghasilkan pesan Weave yang tidak akan meluap dari UDP Compose yang ditentukan.

Terakhir, ukuran payload maksimum yang ditampilkan tidak akan menghasilkan pesan Weave yang akan melebihi ukuran pesan Weave maks.

Detail
Parameter
[in] msgBuf
Pointer ke PacketBuffer yang akan menulis payload pesan.
[in] isUDP
True jika pesan merupakan pesan UDP.
[in] udpMTU
Ukuran UDP UDP. Diabaikan jika isUDP salah.
Hasil
ukuran payload Weave maks.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  size_t bufSize,
  uint64_t nodeId,
  const IPAddress *addr,
  uint16_t port,
  InterfaceId interfaceId,
  const WeaveConnection *con
)

Membuat string yang mendeskripsikan node pembanding dan informasi alamat / koneksi terkait.

String yang dihasilkan memiliki format berikut:

 ([]:%, con )

Detail
Parameter
[in] buf
Pointer ke buffer tempat string harus ditulis. Buffering yang diberikan harus sebesar kWeavePeerDescription_MaxLength. Jika buffering yang lebih kecil diberikan, string akan dipotong agar sesuai. Outputnya akan menyertakan karakter penghentian NUL dalam semua kasus.
[in] bufSize
Ukuran buffer yang ditunjuk dengan buf.
[in] nodeId
ID node yang akan dicetak.
[in] addr
Pointer ke alamat IP yang akan dicetak; atau NULL jika tidak ada alamat IP yang harus dicetak.
[in] port
Nomor port IP yang akan dicetak. Tidak ada nomor port yang akan dicetak jika addr adalah NULL.
[in] interfaceId
InterfaceId yang mengidentifikasi antarmuka yang akan dicetak. String output akan berisi nama antarmuka seperti yang diketahui oleh stack jaringan yang mendasarinya. Tidak ada nama antarmuka yang akan dicetak jika antarmukaId adalah INET_NULL_INTERFACEID atau jika addr adalah NULL.
[in] con
Pointer ke objek WeaveConnection yang ID logging-nya harus dicetak; atau NULL jika tidak ada ID koneksi yang akan dicetak.

GetPeerDescription

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

Membuat string yang mendeskripsikan node pembanding berdasarkan informasi yang terkait dengan pesan yang diterima dari pembanding.

Detail
Parameter
[in] buf
Pointer ke buffer tempat string harus ditulis. Buffering yang diberikan harus sebesar kWeavePeerDescription_MaxLength. Jika buffering yang lebih kecil diberikan, string akan dipotong agar sesuai. Outputnya akan menyertakan karakter penghentian NUL dalam semua kasus.
[in] bufSize
Ukuran buffer yang ditunjuk dengan buf.
[in] msgInfo
Pointer ke struktur WeaveMessageInfo yang berisi informasi tentang pesan tersebut.