nl::Menenun::ExchangeContext

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

Class ini merepresentasikan percakapan berkelanjutan (ExchangeContext) antara dua node atau lebih.

Ringkasan

Ini menentukan metode untuk mengenkode dan mengomunikasikan pesan Weave dalam ExchangeContext melalui berbagai mekanisme transportasi, misalnya, TCP, UDP, atau Weave Hand Messaging.

Jenis publik

@34{
  kSendFlag_AutoRetrans = 0x0001,
  kSendFlag_ExpectResponse = 0x0002,
  kSendFlag_RetransmissionTrickle = 0x0004,
  kSendFlag_DelaySend = 0x0008,
  kSendFlag_ReuseMessageId = 0x0010,
  kSendFlag_ReuseSourceId = 0x0020,
  kSendFlag_RetainBuffer = 0x0040,
  kSendFlag_AlreadyEncoded = 0x0080,
  kSendFlag_DefaultMulticastSourceAddress = 0x0100,
  kSendFlag_FromInitiator = 0x0200,
  kSendFlag_RequestAck = 0x0400,
  kSendFlag_NoAutoRequestAck = 0x0800,
  kSendFlag_MulticastFromLinkLocal = kSendFlag_DefaultMulticastSourceAddress
}
enum
@35{
  kGetPeerDescription_MaxLength = nl::Weave::kWeavePeerDescription_MaxLength
}
enum
ConnectionClosedFunct)(ExchangeContext *ec, WeaveConnection *con, WEAVE_ERROR conErr) typedef
void(*
Fungsi ini adalah callback aplikasi untuk dipanggil saat koneksi Weave yang ada telah ditutup.
KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr) typedef
void(*
Jenis fungsi penanganan pesan error utama.
MessageReceiveFunct)(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload) typedef
void(*
Fungsi ini adalah callback aplikasi untuk menangani pesan Weave yang diterima.
ResponseTimeoutFunct)(ExchangeContext *ec) typedef
void(*
Fungsi ini adalah callback aplikasi untuk dipanggil saat waktu tunggu penerimaan pesan respons telah berakhir.
RetransmissionTimeoutFunct)(ExchangeContext *ec) typedef
void(*
Fungsi ini adalah callback aplikasi untuk dipanggil saat waktu tunggu untuk transmisi ulang dari pesan yang dikirim sebelumnya telah berakhir.
Timeout typedef
uint32_t
Jenis yang digunakan untuk mengekspresikan waktu tunggu dalam ExchangeContext ini, dalam milidetik.
WRMPAckRcvdFunct)(ExchangeContext *ec, void *msgCtxt) typedef
void(*
Fungsi ini adalah callback aplikasi untuk dipanggil saat Konfirmasi diterima untuk pesan Weave yang memintanya sebagai bagian dari Protokol Pesan yang Dapat Diandalkan Weave.
WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime) typedef
void(*
Fungsi ini adalah callback aplikasi untuk dipanggil saat pesan Throttle atau pesan Pengiriman Tertunda diterima sebagai bagian dari Protokol Pesan yang Dapat Diandalkan Weave.
WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt) typedef
void(*
Fungsi ini adalah callback aplikasi untuk dipanggil saat terjadi error saat mengirim pesan Weave.

Atribut publik

AllowDuplicateMsgs
bool
Indikator Boolean tentang apakah pesan duplikat diizinkan untuk bursa tertentu.
AppState
void *
Pointer ke objek status khusus aplikasi.
Con
[HANYA BACA] Koneksi Weave Terkait.
EncryptionType
uint8_t
Jenis enkripsi yang akan digunakan saat mengirim pesan.
ExchangeId
uint16_t
[HANYA BACA] ID bursa yang ditetapkan.
ExchangeMgr
[HANYA BACA] Memiliki bursa manager.
KeyId
uint16_t
Kunci enkripsi yang akan digunakan saat mengirim pesan.
OnAckRcvd
Callback aplikasi untuk konfirmasi yang diterima.
OnConnectionClosed
OnDDRcvd
Callback aplikasi untuk pesan Delay Pengiriman yang diterima.
OnKeyError
Fungsi ini adalah callback aplikasi untuk dipanggil saat pesan error kunci telah diterima dari pembanding.
OnMessageReceived
OnResponseTimeout
OnRetransmissionTimeout
OnSendError
Callback aplikasi error saat mengirim.
OnThrottleRcvd
Callback aplikasi untuk pesan Throttle yang diterima.
PeerAddr
IPAddress
[HANYA BACA] Alamat IP node pembanding.
PeerIntf
InterfaceId
[HANYA BACA] Antarmuka keluar yang akan digunakan saat mengirim pesan ke pembanding.
PeerNodeId
uint64_t
[HANYA BACA] ID node dari node pembanding.
PeerPort
uint16_t
[HANYA BACA] Port node pembanding.
ResponseTimeout
Waktu maksimum untuk menunggu respons (dalam milidetik); 0 menonaktifkan waktu tunggu respons.
RetransInterval
uint32_t
Waktu antar-transmisi ulang (dalam milidetik); 0 menonaktifkan pengiriman ulang.
mMsgProtocolVersion
uint16_t
Versi Message Protocol untuk ExchangeContext.
mWRMPConfig
Konfigurasi WRMP.

Fungsi publik

Abort(void)
void
Segera batalkan konteks Exchange dan lepaskan semua referensi yang merujuknya.
AddRef(void)
void
Tingkatkan penghitung referensi untuk konteks pertukaran sebanyak satu.
AutoRequestAck() const
bool
Menampilkan apakah konfirmasi akan diminta setiap kali pesan dikirim.
CancelRetrans(void)
void
Batalkan mekanisme transmisi ulang Trickle.
Close(void)
void
Menutup konteks pertukaran dengan lancar.
EncodeExchHeader(WeaveExchangeHeader *exchangeHeader, uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags)
Mengenkode header bursa ke buffering pesan.
GetAutoReleaseKey() const
bool
Menampilkan apakah kunci enkripsi yang dikaitkan dengan bursa harus dilepaskan ketika bursa dibebaskan.
GetCurrentRetransmitTimeout(void)
uint32_t
Mendapatkan waktu tunggu transmisi ulang saat ini.
GetPeerDescription(char *buf, uint32_t bufSize) const
void
Membuat string yang mendeskripsikan node pembanding dan informasi alamat / koneksi terkait.
HandleTrickleMessage(const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo)
void
Menangani pesan tetesan dalam konteks pertukaran.
HasPeerRequestedAck(void) const
bool
Tentukan apakah pembanding meminta konfirmasi untuk setidaknya satu pesan di bursa ini.
HasRcvdMsgFromPeer(void) const
bool
Tentukan apakah setidaknya satu pesan telah diterima di bursa ini dari pembanding.
IsAckPending(void) const
bool
Tentukan apakah sudah ada konfirmasi yang tertunda untuk dikirim ke pembanding di bursa ini.
IsConnectionClosed(void) const
bool
Menentukan apakah ExchangeContext memiliki WeaveConnection aktif yang terkait.
IsInitiator(void) const
bool
Tentukan apakah konteksnya adalah pembuat inisiatif pertukaran.
IsResponseExpected(void) const
bool
Tentukan apakah respons diharapkan untuk pesan yang dikirim melalui bursa ini.
Release(void)
void
Lepaskan referensi untuk konteks bursa ini.
SendCommonNullMessage(void)
Kirimkan pesan Common::Null.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgPayload, uint16_t sendFlags, void *msgCtxt)
Kirim pesan Weave di bursa ini.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags, WeaveMessageInfo *msgInfo, void *msgCtxt)
Kirim pesan Weave di bursa ini.
SetAckPending(bool inAckPending)
void
Tetapkan jika konfirmasi perlu dikirim kembali ke pembanding di bursa ini.
SetAutoReleaseKey(bool autoReleaseKey)
void
Setel apakah kunci enkripsi yang dikaitkan dengan bursa harus dilepaskan ketika bursa dibebaskan.
SetAutoRequestAck(bool autoReqAck)
void
Menetapkan apakah konfirmasi harus diminta setiap kali pesan dikirim.
SetConnectionClosed(bool inConnectionClosed)
void
Tetapkan bit flag kFlagConnectionClosed.
SetDropAck(bool inDropAck)
void
Tetapkan apakah WeaveExchangeManager tidak boleh mengirim konfirmasi untuk konteks ini.
SetInitiator(bool inInitiator)
void
Tetapkan bit flag kFlagInitiator.
SetMsgRcvdFromPeer(bool inMsgRcvdFromPeer)
void
Tetapkan jika pesan telah diterima dari pembanding di bursa ini.
SetPeerRequestedAck(bool inPeerRequestedAck)
void
Tetapkan jika konfirmasi diminta pada pesan terakhir yang diterima di bursa ini.
SetResponseExpected(bool inResponseExpected)
void
Tetapkan apakah respons diharapkan di bursa ini.
SetShouldAutoReleaseConnection(bool autoReleaseCon)
void
Tetapkan apakah koneksi Weave yang terkait dengan bursa harus dilepaskan ketika bursa dibebaskan.
SetupTrickleRetransmit(uint32_t retransInterval, uint8_t threshold, uint32_t timeout)
Siapkan mekanisme transmisi ulang tetesan dengan menyetel interval transmisi ulang dan ambang batas siaran ulang yang sesuai.
ShouldAutoReleaseConnection() const
bool
Menampilkan apakah koneksi Weave yang terkait dengan bursa harus dilepaskan saat bursa dibebaskan.
ShouldDropAck(void) const
bool
Tentukan apakah WeaveExchangeManager tidak boleh mengirim konfirmasi.
StartTimerT(void)
Mulai algoritme penyiaran ulang Trickle yang dikirim ulang secara berkala.
TeardownTrickleRetransmit(void)
void
Kurangi mekanisme transmisi ulang Trickle dengan membatalkan timer berkala dalam Trickle dan membebaskan buffer pesan yang menyimpan pesan Weave.
UseEphemeralUDPPort(void) const
bool
Menampilkan apakah pesan keluar yang dikirim melalui bursa harus dikirim dari port UDP singkat lokal.
WRMPFlushAcks(void)
WRMPSendDelayedDelivery(uint32_t PauseTimeMillis, uint64_t DelayedNodeId)
Kirim pesan Pengiriman Tertunda untuk memberi tahu node pengirim bahwa pesan yang dikirim sebelumnya akan mengalami perkiraan penundaan sebelum dikirimkan ke penerima.
WRMPSendThrottleFlow(uint32_t PauseTimeMillis)
Mengirim pesan Throttle Flow ke node pembanding yang memintanya untuk membatasi pengiriman pesannya.

Jenis publik

@34

 @34
Properti
kSendFlag_AlreadyEncoded

Digunakan untuk menunjukkan bahwa pesan sudah dienkode.

kSendFlag_AutoRetrans

Digunakan untuk menunjukkan bahwa transmisi ulang diaktifkan.

kSendFlag_DefaultMulticastSourceAddress

Digunakan untuk menunjukkan bahwa pemilihan alamat sumber IPv6 default harus digunakan saat mengirim pesan multicast IPv6.

kSendFlag_DelaySend

Digunakan untuk menunjukkan bahwa pengiriman pesan saat ini harus ditunda.

kSendFlag_ExpectResponse

Digunakan untuk menunjukkan bahwa respons diharapkan dalam waktu tunggu yang ditentukan.

kSendFlag_FromInitiator

Digunakan untuk menunjukkan bahwa pesan saat ini adalah inisiator bursa.

kSendFlag_MulticastFromLinkLocal

Alias yang tidak digunakan lagi untuk kSendFlag_DefaultMulticastSourceAddress.

kSendFlag_NoAutoRequestAck

Sembunyikan fitur konfirmasi permintaan otomatis saat mengirim pesan.

kSendFlag_RequestAck

Digunakan untuk mengirim pesan WRM yang meminta konfirmasi.

kSendFlag_RetainBuffer

Digunakan untuk menunjukkan bahwa buffer pesan tidak boleh dibebaskan setelah dikirim.

kSendFlag_RetransmissionTrickle

Digunakan untuk menunjukkan persyaratan pengiriman ulang untuk Trickle.

kSendFlag_ReuseMessageId

Digunakan untuk menunjukkan bahwa ID pesan di header pesan dapat digunakan kembali.

kSendFlag_ReuseSourceId

Digunakan untuk menunjukkan bahwa ID node sumber di header pesan dapat digunakan kembali.

@35

 @35
Properti
kGetPeerDescription_MaxLength

Panjang maksimum string (termasuk karakter NUL) yang ditampilkan oleh GetPeerDescription().

ConnectionClosedFunct

void(* ConnectionClosedFunct)(ExchangeContext *ec, WeaveConnection *con, WEAVE_ERROR conErr)

Fungsi ini adalah callback aplikasi untuk dipanggil saat koneksi Weave yang ada telah ditutup.

Detail
Parameter
[in] ec
Pointer ke objek ExchangeContext.
[in] con
Pointer ke objek WeaveConnection.
[in] conErr
Jenis WEAVE_ERROR yang dilaporkan saat koneksi ditutup.

KeyErrorFunct

void(* KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr)

Jenis fungsi penanganan pesan error utama.

Detail
Parameter
[in] ec
Pointer ke objek ExchangeContext.
[in] keyErr
Jenis WEAVE_ERROR yang dilaporkan dalam pesan error utama.

MessageReceiveFunct

void(* MessageReceiveFunct)(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)

Fungsi ini adalah callback aplikasi untuk menangani pesan Weave yang diterima.

Detail
Parameter
[in] ec
Pointer ke objek ExchangeContext.
[in] pktInfo
Pointer ke objek IPPacketInfo.
[in] msgInfo
Pointer ke objek WeaveMessageInfo.
[in] profileId
ID profil dari pesan yang diterima.
[in] msgType
Jenis pesan profil yang sesuai.
[in] payload
Pointer ke objek PacketBuffer yang menyimpan payload pesan.

ResponsTimeoutFunct

void(* ResponseTimeoutFunct)(ExchangeContext *ec)

Fungsi ini adalah callback aplikasi untuk dipanggil saat waktu tunggu penerimaan pesan respons telah berakhir.

Detail
Parameter
[in] ec
Pointer ke objek ExchangeContext.

RetransTimeoutFunFunct

void(* RetransmissionTimeoutFunct)(ExchangeContext *ec)

Fungsi ini adalah callback aplikasi untuk dipanggil saat waktu tunggu untuk transmisi ulang dari pesan yang dikirim sebelumnya telah berakhir.

Detail
Parameter
[in] ec
Pointer ke objek ExchangeContext.

Waktu habis

uint32_t Timeout

Jenis yang digunakan untuk mengekspresikan waktu tunggu dalam ExchangeContext ini, dalam milidetik.

WRMPAckRcvdFunct

void(* WRMPAckRcvdFunct)(ExchangeContext *ec, void *msgCtxt)

Fungsi ini adalah callback aplikasi untuk dipanggil saat Konfirmasi diterima untuk pesan Weave yang memintanya sebagai bagian dari Protokol Pesan yang Dapat Diandalkan Weave.

Detail
Parameter
[in] ec
Pointer ke objek ExchangeContext.
[in] msgCtxt
Pointer ke beberapa objek konteks tertentu yang terkait dengan pesan asli yang dikonfirmasi.

WRMPJedaRcvdFunct

void(* WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime)

Fungsi ini adalah callback aplikasi untuk dipanggil saat pesan Throttle atau pesan Pengiriman Tertunda diterima sebagai bagian dari Protokol Pesan yang Dapat Diandalkan Weave.

Masing-masing pesan ini disertai dengan nilai waktu (dalam milidetik) yang menandakan waktu untuk menjeda pengiriman pesan Weave di ExchangeContext ini.

Detail
Parameter
[in] ec
Pointer ke objek ExchangeContext.
[in] pauseTime
Saatnya menjeda transmisi (dalam milidetik).

WRMPSendErrorFunct

void(* WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt)

Fungsi ini adalah callback aplikasi untuk dipanggil saat terjadi error saat mengirim pesan Weave.

Detail
Parameter
[in] ec
Pointer ke objek ExchangeContext.
[in] err
Jenis WEAVE_ERROR yang ditemukan selama pengiriman pesan.
[in] msgCtxt
Pointer ke beberapa objek konteks tertentu yang terkait dengan pesan asli yang dilaporkan.

Atribut publik

IzinkanDuplikatDuplikat

bool AllowDuplicateMsgs

Indikator Boolean tentang apakah pesan duplikat diizinkan untuk bursa tertentu.

StatusAplikasi

void * AppState

Pointer ke objek status khusus aplikasi.

Kontra

WeaveConnection * Con

[HANYA BACA] Koneksi Weave Terkait.

Jenis Enkripsi

uint8_t EncryptionType

Jenis enkripsi yang akan digunakan saat mengirim pesan.

ID Exchange

uint16_t ExchangeId

[HANYA BACA] ID bursa yang ditetapkan.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[HANYA BACA] Memiliki bursa manager.

IDKunci

uint16_t KeyId

Kunci enkripsi yang akan digunakan saat mengirim pesan.

OnAckRcvd

WRMPAckRcvdFunct OnAckRcvd

Callback aplikasi untuk konfirmasi yang diterima.

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnDDRcvd

WRMPPauseRcvdFunct OnDDRcvd

Callback aplikasi untuk pesan Delay Pengiriman yang diterima.

ErrorKeyKey

KeyErrorFunct OnKeyError

Fungsi ini adalah callback aplikasi untuk dipanggil saat pesan error kunci telah diterima dari pembanding.

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnResponseTimeout

ResponseTimeoutFunct OnResponseTimeout

OnRetransmissionTimeout

RetransmissionTimeoutFunct OnRetransmissionTimeout

OnSendError

WRMPSendErrorFunct OnSendError

Callback aplikasi error saat mengirim.

OnThrottleRcvd

WRMPPauseRcvdFunct OnThrottleRcvd

Callback aplikasi untuk pesan Throttle yang diterima.

PeerAddr

IPAddress PeerAddr

[HANYA BACA] Alamat IP node pembanding.

PeerIntf

InterfaceId PeerIntf

[HANYA BACA] Antarmuka keluar yang akan digunakan saat mengirim pesan ke pembanding.

(Hanya bermakna untuk UDP.)

ID PeerNode

uint64_t PeerNodeId

[HANYA BACA] ID node dari node pembanding.

PeerPort

uint16_t PeerPort

[HANYA BACA] Port node pembanding.

Waktu Tunggu Respons

Timeout ResponseTimeout

Waktu maksimum untuk menunggu respons (dalam milidetik); 0 menonaktifkan waktu tunggu respons.

RetransInterval

uint32_t RetransInterval

Waktu antar-transmisi ulang (dalam milidetik); 0 menonaktifkan pengiriman ulang.

VersiProtokol

uint16_t mMsgProtocolVersion

Versi Message Protocol untuk ExchangeContext.

Konfigurasi mWRMP

WRMPConfig mWRMPConfig

Konfigurasi WRMP.

Fungsi publik

Batalkan

void Abort(
  void
)

Segera batalkan konteks Exchange dan lepaskan semua referensi yang merujuknya.

Referensi

void AddRef(
  void
)

Tingkatkan penghitung referensi untuk konteks pertukaran sebanyak satu.

Batas Permintaan Otomatis

bool AutoRequestAck() const 

Menampilkan apakah konfirmasi akan diminta setiap kali pesan dikirim.

Batalkan Transtrans

void CancelRetrans(
  void
)

Batalkan mekanisme transmisi ulang Trickle.

Tutup

void Close(
  void
)

Menutup konteks pertukaran dengan lancar.

Panggilan ini mengurangi jumlah referensi dan melepaskan bursa saat jumlah referensi mendekati nol.

EncodeExchHeader

WEAVE_ERROR EncodeExchHeader(
  WeaveExchangeHeader *exchangeHeader,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *msgBuf,
  uint16_t sendFlags
)

Mengenkode header bursa ke buffering pesan.

Detail
Parameter
[in] exchangeHeader
Pointer ke objek header Weave Exchange.
[in] profileId
ID profil pesan Weave yang akan dikirim.
[in] msgType
Jenis pesan profil yang sesuai.
[in] msgBuf
Pointer ke PacketBuffer yang diperlukan untuk pesan Weave.
[in] sendFlags
Tanda yang ditetapkan oleh aplikasi untuk pesan Weave yang dikirim.
Nilai yang Ditampilkan
WEAVE_ERROR_BUFFER_TOO_SMALL
Jika buffer pesan tidak memiliki ruang yang cukup untuk mengenkode header bursa.
WEAVE_NO_ERROR
Apakah encoding pesan berhasil.

Mendapatkan AutoReleaseKey

bool GetAutoReleaseKey() const 

Menampilkan apakah kunci enkripsi yang dikaitkan dengan bursa harus dilepaskan ketika bursa dibebaskan.

GetCurrentRetransmitTimeout

uint32_t GetCurrentRetransmitTimeout(
  void
)

Mendapatkan waktu tunggu transmisi ulang saat ini.

Waktu tunggu transmisi awal atau aktif akan didasarkan pada apakah ExchangeContext memiliki pertukaran pesan aktif dengan pembandingnya.

Detail
Menampilkan
waktu transmisi ulang saat ini.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  uint32_t bufSize
) const 

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

Detail
Parameter
[in] buf
Pointer ke buffer tempat string harus ditulis. Buffering yang diberikan setidaknya harus sebesar kGetPeerDescription_MaxLength. Jika buffer yang lebih kecil diberikan, string akan dipotong agar pas. Dalam setiap kasus, output akan menyertakan karakter penghentian NUL.
[in] bufSize
Ukuran buffer yang ditunjukkan oleh buf.

HandleTrickleMessage

void HandleTrickleMessage(
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo
)

Menangani pesan tetesan dalam konteks pertukaran.

Detail
Parameter
[in] pktInfo
Pointer ke objek IPPacketInfo.
[in] msgInfo
Pointer ke struktur info pesan Weave.

HasPeerRequestAck

bool HasPeerRequestedAck(
  void
) const 

Tentukan apakah pembanding meminta konfirmasi untuk setidaknya satu pesan di bursa ini.

Detail
Menampilkan
Menampilkan 'true' jika konfirmasi diminta, else 'false'.

HasRcvdmsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

Tentukan apakah setidaknya satu pesan telah diterima di bursa ini dari pembanding.

Detail
Menampilkan
Menampilkan 'true' jika pesan diterima, else 'false'.

IsAckPending

bool IsAckPending(
  void
) const 

Tentukan apakah sudah ada konfirmasi yang tertunda untuk dikirim ke pembanding di bursa ini.

IsConnectionClosed

bool IsConnectionClosed(
  void
) const 

Menentukan apakah ExchangeContext memiliki WeaveConnection aktif yang terkait.

Detail
Menampilkan
Menampilkan 'true' jika sambungan ditutup, jika tidak, 'false'.

Inisiator

bool IsInitiator(
  void
) const 

Tentukan apakah konteksnya adalah pembuat inisiatif pertukaran.

Detail
Menampilkan
Menampilkan 'true' jika ini adalah inisiator, else 'false'.

IsResponseDiperkirakan

bool IsResponseExpected(
  void
) const 

Tentukan apakah respons diharapkan untuk pesan yang dikirim melalui bursa ini.

Detail
Menampilkan
Menampilkan 'true' jika respons diharapkan, jika tidak, 'false'.

Rilis

void Release(
  void
)

Lepaskan referensi untuk konteks bursa ini.

Jika jumlah berkurang hingga satu, lalu tutup konteksnya, reset semua callback aplikasi, dan hentikan semua timer.

SendCommonNullMessage

WEAVE_ERROR SendCommonNullMessage(
  void
)

Kirimkan pesan Common::Null.

Detail
Nilai yang Ditampilkan
WEAVE_ERROR_NO_MEMORY
Jika tidak ada PacketBuffers yang tersedia.
WEAVE_NO_ERROR
Jika metode berhasil atau error tidak penting.
other
Error kritis lainnya yang ditampilkan oleh SendMessage().

KirimPesan

WEAVE_ERROR SendMessage(
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *msgPayload,
  uint16_t sendFlags,
  void *msgCtxt
)

Kirim pesan Weave di bursa ini.

Detail
Parameter
[in] profileId
ID profil pesan Weave yang akan dikirim.
[in] msgType
Jenis pesan profil yang sesuai.
[in] msgBuf
Pointer ke objek PacketBuffer yang menyimpan pesan Weave.
[in] sendFlags
Tanda yang ditetapkan oleh aplikasi untuk pesan Weave yang dikirim.
[in] msgCtxt
Pointer ke objek konteks khusus aplikasi yang akan dikaitkan dengan pesan yang dikirim.
Nilai yang Ditampilkan
WEAVE_ERROR_INVALID_ARGUMENT
jika argumen yang tidak valid diteruskan ke SendMessage API ini.
WEAVE_ERROR_SEND_THROTTLED
jika konteks pertukaran ini dibatasi saat menggunakan protokol pesan Weave yang dapat diandalkan.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
jika ada ketidakcocokan dalam operasi pengiriman tertentu dan versi protokol pesan Weave yang didukung. Misalnya, error ini akan muncul jika semantik Weave Trusted Messaging dicoba saat versi protokol pesan Weave adalah V1.
WEAVE_ERROR_NOT_CONNECTED
jika konteksnya terkait dengan koneksi yang sekarang ditutup.
WEAVE_ERROR_INCORRECT_STATE
jika status konteks bursa salah.
WEAVE_NO_ERROR
jika lapisan Weave berhasil mengirim pesan ke lapisan jaringan.

KirimPesan

WEAVE_ERROR SendMessage(
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *msgBuf,
  uint16_t sendFlags,
  WeaveMessageInfo *msgInfo,
  void *msgCtxt
)

Kirim pesan Weave di bursa ini.

Detail
Parameter
[in] profileId
ID profil pesan Weave yang akan dikirim.
[in] msgType
Jenis pesan profil yang sesuai.
[in] msgBuf
Pointer ke objek PacketBuffer yang menyimpan pesan Weave.
[in] sendFlags
Tanda yang ditetapkan oleh aplikasi untuk pesan Weave yang dikirim.
[in] msgInfo
Pointer ke objek WeaveMessageInfo.
[in] msgCtxt
Pointer ke objek konteks khusus aplikasi yang akan dikaitkan dengan pesan yang dikirim.
Nilai yang Ditampilkan
WEAVE_ERROR_INVALID_ARGUMENT
jika argumen yang tidak valid diteruskan ke SendMessage API ini.
WEAVE_ERROR_SEND_THROTTLED
jika konteks pertukaran ini dibatasi saat menggunakan protokol pesan Weave yang dapat diandalkan.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
jika ada ketidakcocokan dalam operasi pengiriman tertentu dan versi protokol pesan Weave yang didukung. Misalnya, error ini akan muncul jika semantik Weave Trusted Messaging dicoba saat versi protokol pesan Weave adalah V1.
WEAVE_ERROR_NOT_CONNECTED
jika konteksnya terkait dengan koneksi yang sekarang ditutup.
WEAVE_ERROR_INCORRECT_STATE
jika status konteks bursa salah.
WEAVE_NO_ERROR
jika lapisan Weave berhasil mengirim pesan ke lapisan jaringan.

KumpulanTertunda

void SetAckPending(
  bool inAckPending
)

Tetapkan jika konfirmasi perlu dikirim kembali ke pembanding di bursa ini.

Detail
Parameter
[in] inAckPending
Boolean yang menunjukkan apakah (benar) atau tidak (salah) konfirmasi harus dikirim kembali sebagai respons terhadap pesan yang diterima.

AturKunciRilisOtomatis

void SetAutoReleaseKey(
  bool autoReleaseKey
)

Setel apakah kunci enkripsi yang dikaitkan dengan bursa harus dilepaskan ketika bursa dibebaskan.

Detail
Parameter
[in] autoReleaseKey
True jika kunci enkripsi pesan seharusnya dirilis secara otomatis.

AturPermintaan Otomatis

void SetAutoRequestAck(
  bool autoReqAck
)

Menetapkan apakah konfirmasi harus diminta setiap kali pesan dikirim.

Detail
Parameter
[in] autoReqAck
Boolean yang menunjukkan apakah konfirmasi harus diminta atau tidak setiap kali pesan dikirim.

SetConnectionClosed

void SetConnectionClosed(
  bool inConnectionClosed
)

Tetapkan bit flag kFlagConnectionClosed.

Flag ini disetel saat WeaveConnection yang terkait dengan ExchangeContext ditutup.

Detail
Parameter
[in] inConnectionClosed
Boolean yang menunjukkan apakah konteks (true) atau tidak (false) dikaitkan dengan koneksi.

SetDropAck

void SetDropAck(
  bool inDropAck
)

Tetapkan apakah WeaveExchangeManager tidak boleh mengirim konfirmasi untuk konteks ini.

Hanya untuk penggunaan internal, debug.

Detail
Parameter
[in] inDropAck
Boolean yang menunjukkan apakah (true) atau tidak (false) konfirmasi tidak boleh dikirim untuk bursa.

Set Inisiator

void SetInitiator(
  bool inInitiator
)

Tetapkan bit flag kFlagInitiator.

Tanda ini ditetapkan oleh node yang memulai pertukaran.

Detail
Parameter
[in] inInitiator
Boolean yang menunjukkan apakah konteksnya adalah (benar) atau tidak (salah) adalah pemicu pertukaran.

SetmsgRcvdFromPeer

void SetMsgRcvdFromPeer(
  bool inMsgRcvdFromPeer
)

Tetapkan jika pesan telah diterima dari pembanding di bursa ini.

Detail
Parameter
[in] inMsgRcvdFromPeer
Boolean yang menunjukkan apakah (benar) (salah) pesan telah diterima dari pembanding pada konteks pertukaran ini atau tidak.

SetPeerRequestAck

void SetPeerRequestedAck(
  bool inPeerRequestedAck
)

Tetapkan jika konfirmasi diminta pada pesan terakhir yang diterima di bursa ini.

Detail
Parameter
[in] inPeerRequestedAck
Boolean yang menunjukkan apakah (benar) atau tidak (salah) konfirmasi diminta dalam pesan terakhir yang diterima.

SetResponseDiperkirakan

void SetResponseExpected(
  bool inResponseExpected
)

Tetapkan apakah respons diharapkan di bursa ini.

Detail
Parameter
[in] inResponseExpected
Boolean yang menunjukkan apakah (true) atau tidak (false) respons yang diharapkan pada bursa ini.

MenetapkanHaruskahAutoReleaseConnection

void SetShouldAutoReleaseConnection(
  bool autoReleaseCon
)

Tetapkan apakah koneksi Weave yang terkait dengan bursa harus dilepaskan ketika bursa dibebaskan.

Detail
Parameter
[in] autoReleaseCon
True jika koneksi Weave harus dilepaskan secara otomatis.

MenyiapkanTrickleRetransmit

WEAVE_ERROR SetupTrickleRetransmit(
  uint32_t retransInterval,
  uint8_t threshold,
  uint32_t timeout
)

Siapkan mekanisme transmisi ulang tetesan dengan menyetel interval transmisi ulang dan ambang batas siaran ulang yang sesuai.

Detail
Parameter
[in] retransInterval
Interval pengiriman ulang algoritme siaran ulang Trickle.
[in] threshold
Frekuensi maksimum pesan disiarkan ulang.
[in] timeout
Waktu maksimum untuk menunggu sebelum membatalkan timer transmisi ulang Trickle.
Menampilkan
WEAVE_NO_ERROR jika penyiapan Trickle berhasil, jika tidak, INET_ERROR yang dipetakan ke dalam WEAVE_ERROR.

HarusAutoReleaseConnection

bool ShouldAutoReleaseConnection() const 

Menampilkan apakah koneksi Weave yang terkait dengan bursa harus dilepaskan saat bursa dibebaskan.

Seharusnya

bool ShouldDropAck(
  void
) const 

Tentukan apakah WeaveExchangeManager tidak boleh mengirim konfirmasi.

Hanya untuk penggunaan internal, debug.

StartTimerT

WEAVE_ERROR StartTimerT(
  void
)

Mulai algoritme penyiaran ulang Trickle yang dikirim ulang secara berkala.

Detail
Menampilkan
WEAVE_NO_ERROR jika berhasil, jika tidak, INET_ERROR akan dipetakan ke dalam WEAVE_ERROR.

TeardownTrickleRetransmit

void TeardownTrickleRetransmit(
  void
)

Kurangi mekanisme transmisi ulang Trickle dengan membatalkan timer berkala dalam Trickle dan membebaskan buffer pesan yang menyimpan pesan Weave.

Menggunakan EphemeralUDPPort

bool UseEphemeralUDPPort(
  void
) const 

Menampilkan apakah pesan keluar yang dikirim melalui bursa harus dikirim dari port UDP singkat lokal.

WRMPFlushAcks

WEAVE_ERROR WRMPFlushAcks(
  void
)

WRMPSendDelayDelivery

WEAVE_ERROR WRMPSendDelayedDelivery(
  uint32_t PauseTimeMillis,
  uint64_t DelayedNodeId
)

Kirim pesan Pengiriman Tertunda untuk memberi tahu node pengirim bahwa pesan yang dikirim sebelumnya akan mengalami perkiraan penundaan sebelum dikirimkan ke penerima.

Salah satu kemungkinan penyebab pesan tertunda sebelum dikirim adalah saat node akhir penerima tidak aktif. Pesan ini berpotensi dihasilkan oleh node perantara yang sesuai di jalur pengiriman yang memiliki pengetahuan yang cukup terkait penerima untuk menyimpulkan pengiriman yang tertunda. Setelah menerima pesan ini, pengirim akan menyesuaikan kembali timer pengiriman ulang untuk pesan yang meminta konfirmasi kembali.

Detail
Parameter
[in] pauseTimeMillis
Waktu (dalam milidetik) saat pesan yang dikirim sebelumnya diperkirakan tertunda sebelum dikirim.
[in] delayedNodeId
ID node dari node pembanding yang menjadi tujuan keterlambatan pengiriman pesan.
Nilai yang Ditampilkan
WEAVE_ERROR_INVALID_ARGUMENT
jika argumen yang tidak valid diteruskan ke SendMessage API ini.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
jika ada ketidakcocokan dalam operasi pengiriman tertentu dan versi protokol pesan Weave yang didukung. Misalnya, error ini akan muncul jika semantik Weave Trusted Messaging dicoba saat versi protokol pesan Weave adalah V1.
WEAVE_ERROR_NOT_CONNECTED
jika konteksnya terkait dengan koneksi yang sekarang ditutup.
WEAVE_ERROR_INCORRECT_STATE
jika status konteks bursa salah.
WEAVE_NO_ERROR
jika lapisan Weave berhasil mengirim pesan ke lapisan jaringan.

WRMPSendThrottleFlow

WEAVE_ERROR WRMPSendThrottleFlow(
  uint32_t PauseTimeMillis
)

Mengirim pesan Throttle Flow ke node pembanding yang memintanya untuk membatasi pengiriman pesannya.

Detail
Parameter
[in] pauseTimeMillis
Waktu (dalam milidetik) saat penerima diharapkan membatasi pengirimannya.
Nilai yang Ditampilkan
WEAVE_ERROR_INVALID_ARGUMENT
Jika argumen yang tidak valid diteruskan ke SendMessage API ini.
WEAVE_ERROR_SEND_THROTTLED
Jika konteks pertukaran ini dibatasi saat menggunakan protokol pesan Weave yang dapat diandalkan.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
Jika ada ketidakcocokan dalam operasi pengiriman tertentu dan versi protokol pesan Weave yang didukung. Misalnya, error ini akan muncul jika semantik Weave Trusted Messaging dicoba saat versi protokol pesan Weave adalah V1.
WEAVE_ERROR_NOT_CONNECTED
Jika konteksnya terkait dengan koneksi yang sekarang ditutup.
WEAVE_ERROR_INCORRECT_STATE
Jika status konteks bursa salah.
WEAVE_NO_ERROR
Jika lapisan Weave berhasil mengirim pesan ke lapisan jaringan.