nl::Weave::WeaveMessageLayer

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

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

Ringkasan

Library 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 saat terjadi 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
[HANYA BACA] 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 memproses 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 menampilkannya.

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)
Buat 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 Pesan Weave ke dalam 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 kolamnya.
IPv4ListenEnabled(void) const
bool
Periksa apakah WeaveMessageLayer dikonfigurasi untuk memproses komunikasi masuk melalui IPv4.
IPv6ListenEnabled(void) const
bool
Periksa apakah WeaveMessageLayer dikonfigurasi untuk 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 mengenkodenya.
SendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Mengirim pesan Weave menggunakan endpoint UDP Inetlayer yang mendasarinya setelah melakukan encoding.
SendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntfId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Kirim pesan Weave menggunakan endpoint UDP Inetlayer yang mendasarinya setelah mengenkodenya.
SendUDPTunneledMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Fungsi untuk mengirim paket Tunnel melalui tunnel UDP lokal.
SetSignalMessageLayerActivityChanged(MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler)
void
Tetapkan pengendali aplikasi yang akan dipanggil setiap kali aktivitas lapisan pesan berubah.
SetTCPListenEnabled(bool val)
void
Mengaktifkan atau menonaktifkan pemrosesan 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)
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 inisialisasi pertukaran UDP Weave dari port sumber UDP efemeral.

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 peer dan informasi alamat/koneksi terkaitnya.
GetPeerDescription(char *buf, size_t bufSize, const WeaveMessageInfo *msgInfo)
void
Membuat string yang mendeskripsikan node peer berdasarkan informasi yang terkait dengan pesan yang diterima dari peer.

Class

nl::Weave::WeaveMessageLayer::InitContext

Definisi class InitContext.

Jenis publik

AcceptErrorFunct

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

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

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

CallbackRemovedFunct

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.

MessageLayerActivityChangeHandlerFunct

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 pesan PacketBuffer yang berisi paket yang disalurkan yang diterima.

ReceiveErrorFunct

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

Fungsi ini adalah callback lapisan yang lebih tinggi yang dipanggil saat terjadi error.

Detail
Parameter
[in] msgLayer
Pointer ke objek WeaveMessageLayer.
[in] err
WEAVE_ERROR yang dialami 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 pesan PacketBuffer yang berisi paket tunnel yang diterima.

Atribut publik

AppState

void * AppState

Pointer ke objek status khusus aplikasi.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[HANYA BACA] Objek WeaveExchangeManager terkait.

FabricState

WeaveFabricState * FabricState

[HANYA BACA] Objek WeaveFabricState terkait.

IncomingConIdleTimeout

uint32_t IncomingConIdleTimeout

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

Inet

InetLayer * Inet

[HANYA BACA] Objek InetLayer terkait.

IsListening

bool IsListening

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

OnAcceptError

AcceptErrorFunct OnAcceptError

OnConnectionReceived

ConnectionReceiveFunct OnConnectionReceived

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnUDPTunneledMessageReceived

TunneledMsgReceiveFunct OnUDPTunneledMessageReceived

SecurityMgr

WeaveSecurityManager * SecurityMgr

[HANYA BACA] Objek WeaveSecurityManager terkait.

Negara Bagian

uint8_t State

[HANYA BACA] Status objek WeaveMessageLayer.

SystemLayer

System::Layer * SystemLayer

mDropMessage

bool mDropMessage

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

Fungsi publik

ClearUnsecuredConnectionListener

WEAVE_ERROR ClearUnsecuredConnectionListener(
  ConnectionReceiveFunct oldOnUnsecuredConnectionReceived,
  CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved
)

CloseEndpoints

WEAVE_ERROR CloseEndpoints(
  void
)

Tutup semua endpoint TCP dan UDP yang terbuka.

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

Lihat juga:
Shutdown().

CreateTunnel

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

Buat WeaveConnectionTunnel dengan menggabungkan dua WeaveConnections yang ditentukan.

Setelah berhasil dibuat, TCPEndPoints yang sesuai dengan objek WeaveConnection komponen akan diserahkan 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
setelah berhasil membuat WeaveConnectionTunnel.
WEAVE_ERROR_INCORRECT_STATE
jika objek WeaveConnection komponen WeaveConnectionTunnel tidak dalam status yang benar.
WEAVE_ERROR_NO_MEMORY
jika objek WeaveConnectionTunnel baru tidak dapat dibuat.

DecodeHeader

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.
[out] payloadStart
Pointer ke pointer ke posisi dalam buffering pesan setelah decoding selesai.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Setelah dekode 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.

EncodeMessage

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
setelah pesan berhasil dienkode.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
jika versi format header Pesan Weave tidak didukung.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
jika panjang {i>payload<i} di buffer pesan adalah 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 sesudah payload pesan.
other
error yang dihasilkan oleh objek status fabric saat mengambil status sesi.

EncodeMessage

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

Mengenkode header lapisan Pesan Weave ke dalam PacketBuffer.

Detail
Parameter
[in] destAddr
Alamat IP tujuan.
[in] destPort
Port tujuan.
[in] sendIntId
Antarmuka tempat 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
setelah berhasil mengenkode pesan Weave.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
jika versi Weave Message tidak didukung.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
jika panjang payload dalam buffering pesan adalah 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 sesudah payload pesan.
other
error yang dihasilkan oleh objek status fabric saat mengambil status sesi.

EphemeralUDPPortEnabled

bool EphemeralUDPPortEnabled(
  void
) const 

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

GetConnectionPoolStats

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

Mendapatkan jumlah WeaveConnections yang digunakan dan ukuran kumpulan.

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

IPv4ListenEnabled

bool IPv4ListenEnabled(
  void
) const 

Periksa apakah WeaveMessageLayer dikonfigurasi untuk memproses komunikasi masuk melalui IPv4.

IPv6ListenEnabled

bool IPv6ListenEnabled(
  void
) const 

Periksa apakah WeaveMessageLayer dikonfigurasi untuk 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
setelah inisialisasi 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 bawah selama pembuatan endpoint.

IsBoundToLocalIPv4Address

bool IsBoundToLocalIPv4Address(
  void
) const 

Periksa apakah WeaveMessageLayer terikat ke alamat IPv4 lokal.

IsBoundToLocalIPv6Address

bool IsBoundToLocalIPv6Address(
  void
) const 

Periksa apakah WeaveMessageLayer terikat ke alamat IPv6 lokal.

IsMessageLayerActive

bool IsMessageLayerActive(
  void
)

NewConnection

WeaveConnection * NewConnection(
  void
)

Buat objek WeaveConnection baru dari kumpulan.

Detail
Hasil
pointer ke objek WeaveConnection yang baru dibuat jika berhasil, atau 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.

ReEncodeMessage

WEAVE_ERROR ReEncodeMessage(
  PacketBuffer *buf
)

RefreshEndpoints

WEAVE_ERROR RefreshEndpoints(
  void
)

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

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

ResendMessage

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
setelah berhasil mengirim pesan ke lapisan jaringan.
errors
yang dihasilkan dari endpoint UDP lapisan Inet yang lebih rendah selama pengiriman.

ResendMessage

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
setelah berhasil mengirim pesan ke lapisan jaringan.
errors
yang dihasilkan dari endpoint UDP lapisan Inet yang lebih rendah selama pengiriman.

ResendMessage

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
setelah berhasil mengirim pesan ke lapisan jaringan.
errors
yang dihasilkan dari endpoint UDP lapisan Inet yang lebih rendah selama pengiriman.

ResendMessage

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 tentukan dari ID node di header pesan. Gagal jika hal ini tidak dapat dilakukan. -Jika alamat tujuan adalah alamat fabric untuk fabric 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 tempat 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
setelah berhasil mengirim pesan ke lapisan jaringan.
errors
yang dihasilkan dari endpoint UDP lapisan Inet bawah selama pengiriman.

SendMessage

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Mengirim pesan Weave menggunakan endpoint UDP Inetlayer yang mendasarinya setelah melakukan 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
setelah berhasil mengirim pesan ke lapisan jaringan.
errors
yang dihasilkan dari endpoint UDP lapisan Inet bawah selama pengiriman.

SendMessage

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

Mengirim pesan Weave menggunakan endpoint UDP Inetlayer yang mendasarinya setelah melakukan encoding.

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

-Jika alamat tujuan adalah alamat fabric untuk fabric 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
setelah berhasil mengirim pesan ke lapisan jaringan.
errors
yang dihasilkan dari endpoint UDP lapisan Inet bawah selama pengiriman.

SendMessage

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 mengenkodenya.

Catatan:-Jika alamat tujuan belum diberikan, coba tentukan dari ID node di header pesan. Gagal jika tindakan ini tidak dapat dilakukan. -Jika alamat tujuan adalah alamat fabric untuk fabric 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 tempat 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
setelah berhasil mengirim pesan ke lapisan jaringan.
WEAVE_ERROR_INVALID_ADDRESS
jika destAddr tidak ditentukan atau tidak dapat ditentukan dari ID node tujuan.
errors
yang 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 Tunnel melalui tunnel UDP lokal.

Mengirim pesan data IPv6 yang di-tunnel melalui UDP.

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

SetSignalMessageLayerActivityChanged

void SetSignalMessageLayerActivityChanged(
  MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler
)

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

Khususnya, permohonan akan diberi tahu setiap kali:

  • jumlah perubahan bursa yang terbuka.
  • jumlah permintaan sinkronisasi penghitung pesan yang tertunda berubah dari nol menjadi minimal satu dan kembali ke nol. Pengendali ditayangkan 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.

SetTCPListenEnabled

void SetTCPListenEnabled(
  bool val
)

Mengaktifkan atau menonaktifkan pemrosesan koneksi TCP masuk di WeaveMessageLayer.

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

SetUDPListenEnabled

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
)

Matikan WeaveMessageLayer.

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

TCPListenEnabled

bool TCPListenEnabled(
  void
) const 

Periksa apakah WeaveMessageLayer dikonfigurasi untuk memproses koneksi TCP masuk.

UDPListenEnabled

bool UDPListenEnabled(
  void
) const 

Periksa apakah WeaveMessageLayer dikonfigurasi untuk memproses pesan UDP masuk.

UnsecuredListenEnabled

bool UnsecuredListenEnabled(
  void
) const 

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

CATATAN: RefreshEndpoints() harus dipanggil setelah status port sementara diubah. Periksa apakah pemrosesan 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 pesannya adalah UDP, ukuran payload maksimum yang ditampilkan tidak akan menghasilkan pesan Weave yang tidak akan melampaui MTU UDP yang ditentukan.

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

Detail
Parameter
[in] msgBuf
Pointer ke PacketBuffer tempat payload pesan akan ditulis.
[in] isUDP
True jika pesan adalah pesan UDP.
[in] udpMTU
Ukuran MTU UDP. Diabaikan jika isUDP bernilai salah.
Hasil
ukuran payload Weave maksimum.

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 peer dan informasi alamat/koneksi terkaitnya.

String yang dihasilkan memiliki format berikut:

 ([]:%, con )

Detail
Parameter
[in] buf
Pointer ke buffering tempat string harus ditulis. Buffer yang disediakan harus setidaknya sebesar kWeavePeerDescription_MaxLength. Jika buffer yang lebih kecil diberikan, string akan dipotong agar sesuai. Output akan menyertakan karakter penghentian NUL dalam semua kasus.
[in] bufSize
Ukuran buffer yang ditunjuk oleh 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 tumpukan jaringan yang mendasarinya. Tidak ada nama antarmuka yang akan dicetak jika interfaceId adalah INET_NULL_INTERFACEID atau jika addr adalah NULL.
[in] con
Pointer ke objek WeaveConnection yang ID loggingnya harus dicetak; atau NULL jika tidak ada ID koneksi yang harus dicetak.

GetPeerDescription

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

Menyusun string yang mendeskripsikan node peer berdasarkan informasi yang terkait dengan pesan yang diterima dari peer.

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