nl::Weave::ExchangeContext

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

Class ini menunjukkan percakapan yang sedang berlangsung (ExchangeContext) antara dua node atau lebih.

Ringkasan

ID ini menentukan metode untuk mengenkode dan mengomunikasikan pesan Weave dalam ExchangeContext melalui berbagai mekanisme transpor, misalnya, TCP, UDP, atau Weave Reliable 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 yang akan 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 yang akan dipanggil saat waktu tunggu tanda terima pesan respons telah berakhir.
RetransmissionTimeoutFunct)(ExchangeContext *ec) typedef
void(*
Fungsi ini adalah callback aplikasi yang akan dipanggil saat waktu tunggu untuk transmisi ulang pesan yang dikirim sebelumnya telah berakhir.
Timeout typedef
uint32_t
Jenis yang digunakan untuk menyatakan waktu tunggu di ExchangeContext ini, dalam milidetik.
WRMPAckRcvdFunct)(ExchangeContext *ec, void *msgCtxt) typedef
void(*
Fungsi ini adalah callback aplikasi yang akan dipanggil saat Acknowledgment diterima untuk pesan Weave yang diminta sebagai bagian dari Weave Reliable Messaging Protocol.
WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime) typedef
void(*
Fungsi ini adalah callback aplikasi yang akan dipanggil saat pesan Throttle atau pesan Tertunda Pengiriman diterima sebagai bagian dari Weave Reliable Messaging Protocol.
WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt) typedef
void(*
Fungsi ini adalah callback aplikasi yang akan dipanggil saat terjadi error saat mengirim pesan Weave.

Atribut publik

AllowDuplicateMsgs
bool
Indikator Boolean mengenai apakah pesan duplikat diizinkan untuk pertukaran 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 pengelola bursa.
KeyId
uint16_t
Kunci enkripsi yang digunakan saat mengirim pesan.
OnAckRcvd
Callback aplikasi untuk konfirmasi yang diterima.
OnConnectionClosed
OnDDRcvd
Callback aplikasi untuk pesan Pengiriman Tertunda yang diterima.
OnKeyError
Fungsi ini adalah callback aplikasi yang akan dipanggil ketika pesan error kunci telah diterima dari peer.
OnMessageReceived
OnResponseTimeout
OnRetransmissionTimeout
OnSendError
Callback aplikasi untuk error saat mengirim.
OnThrottleRcvd
Callback aplikasi untuk pesan Throttle yang diterima.
PeerAddr
IPAddress
[HANYA BACA] Alamat IP node peer.
PeerIntf
InterfaceId
[HANYA BACA] Antarmuka keluar yang akan digunakan saat mengirim pesan ke peer.
PeerNodeId
uint64_t
[HANYA BACA] ID Node dari node peer.
PeerPort
uint16_t
[HANYA BACA] Port node peer.
ResponseTimeout
Waktu tunggu maksimum untuk respons (dalam milidetik); 0 menonaktifkan waktu tunggu respons.
RetransInterval
uint32_t
Waktu antara transmisi ulang (dalam milidetik); 0 menonaktifkan transmisi 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 ke konteks tersebut.
AddRef(void)
void
Menambah penghitung referensi untuk konteks pertukaran satu per 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 baik.
EncodeExchHeader(WeaveExchangeHeader *exchangeHeader, uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags)
Mengenkode header exchange menjadi buffering pesan.
GetAutoReleaseKey() const
bool
Menampilkan apakah kunci enkripsi yang terkait dengan pertukaran harus dirilis saat pertukaran dibebaskan.
GetCurrentRetransmitTimeout(void)
uint32_t
Mendapatkan waktu tunggu pengiriman ulang saat ini.
GetPeerDescription(char *buf, uint32_t bufSize) const
void
Membuat string yang mendeskripsikan node peer dan informasi alamat / koneksi terkait.
HandleTrickleMessage(const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo)
void
Menangani pesan tetesan dalam konteks pertukaran.
HasPeerRequestedAck(void) const
bool
Menentukan apakah rekan meminta konfirmasi untuk setidaknya satu pesan dalam pertukaran ini.
HasRcvdMsgFromPeer(void) const
bool
Tentukan apakah setidaknya satu pesan telah diterima dalam pertukaran ini dari rekan Anda.
IsAckPending(void) const
bool
Tentukan apakah sudah ada konfirmasi yang tertunda untuk dikirim ke rekan di bursa ini.
IsConnectionClosed(void) const
bool
Tentukan apakah ExchangeContext memiliki WeaveConnection aktif yang terkait.
IsInitiator(void) const
bool
Tentukan apakah konteksnya adalah inisiator pertukaran.
IsResponseExpected(void) const
bool
Menentukan apakah ada respons yang diharapkan untuk pesan yang dikirim melalui pertukaran ini.
Release(void)
void
Rilis referensi ke konteks bursa ini.
SendCommonNullMessage(void)
Mengirim 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 rekan di bursa ini.
SetAutoReleaseKey(bool autoReleaseKey)
void
Tetapkan apakah kunci enkripsi yang terkait dengan pertukaran harus dirilis saat pertukaran dibebaskan.
SetAutoRequestAck(bool autoReqAck)
void
Menetapkan apakah konfirmasi harus diminta setiap kali pesan dikirim.
SetConnectionClosed(bool inConnectionClosed)
void
Menyetel bit tanda kFlagConnectionClosed.
SetDropAck(bool inDropAck)
void
Tetapkan apakah WeaveExchangeManager tidak boleh mengirim konfirmasi untuk konteks ini.
SetInitiator(bool inInitiator)
void
Setel bit flag kFlagInitiator.
SetMsgRcvdFromPeer(bool inMsgRcvdFromPeer)
void
Tetapkan jika pesan telah diterima dari pembanding pada pertukaran ini.
SetPeerRequestedAck(bool inPeerRequestedAck)
void
Tetapkan jika konfirmasi diminta dalam pesan terakhir yang diterima di Exchange ini.
SetResponseExpected(bool inResponseExpected)
void
Tetapkan apakah ada respons yang diharapkan dalam bursa ini.
SetShouldAutoReleaseConnection(bool autoReleaseCon)
void
Tetapkan apakah koneksi Weave yang terkait dengan pertukaran harus dilepaskan saat pertukaran dibebaskan.
SetupTrickleRetransmit(uint32_t retransInterval, uint8_t threshold, uint32_t timeout)
Siapkan mekanisme transmisi ulang, dengan menyetel interval transmisi ulang yang sesuai dan batas siaran ulang.
ShouldAutoReleaseConnection() const
bool
Menampilkan apakah koneksi Weave yang terkait dengan pertukaran harus dirilis saat pertukaran dibebaskan.
ShouldDropAck(void) const
bool
Tentukan apakah WeaveExchangeManager tidak boleh mengirim konfirmasi.
StartTimerT(void)
Mulai mekanisme timer transmisi ulang berkala algoritma Trickle rebroadcast.
TeardownTrickleRetransmit(void)
void
Merusak 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 pertukaran harus dikirim dari port UDP efemeral 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 penundaan sebelum terkirim ke penerima.
WRMPSendThrottleFlow(uint32_t PauseTimeMillis)
Kirim pesan Alur Pembatasan ke node peer yang memintanya untuk membatasi pengiriman pesan.

Jenis publik

@34

 @34
Properti
kSendFlag_AlreadyEncoded

Digunakan untuk menunjukkan bahwa pesan sudah dienkode.

kSendFlag_AutoRetrans

Digunakan untuk menunjukkan bahwa transmisi ulang otomatis diaktifkan.

kSendFlag_DefaultMulticastSourceAddress

Digunakan untuk menunjukkan bahwa pemilihan alamat sumber IPv6 secara {i>default<i} harus digunakan saat mengirim pesan multicast IPv6.

kSendFlag_DelaySend

Digunakan untuk menunjukkan bahwa pengiriman pesan saat ini perlu tertunda.

kSendFlag_ExpectResponse

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

kSendFlag_FromInitiator

Digunakan untuk menunjukkan bahwa pesan saat ini adalah inisiator pertukaran.

kSendFlag_MulticastFromLinkLocal

Alias tidak digunakan lagi untuk kSendFlag_DefaultMulticastSourceAddress.

kSendFlag_NoAutoRequestAck

Menyembunyikan fitur konfirmasi permintaan otomatis saat mengirimkan pesan.

kSendFlag_RequestAck

Digunakan untuk mengirim pesan WRM yang meminta {i>acknowledgment<i}.

kSendFlag_RetainBuffer

Digunakan untuk menunjukkan bahwa buffer pesan tidak boleh dikosongkan setelah pengiriman.

kSendFlag_RetransmissionTrickle

Digunakan untuk menunjukkan persyaratan transmisi 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 yang akan 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 pesan yang diterima.
[in] msgType
Jenis pesan dari profil yang sesuai.
[in] payload
Pointer ke objek PacketBuffer yang menyimpan payload pesan.

ResponseTimeoutFunct

void(* ResponseTimeoutFunct)(ExchangeContext *ec)

Fungsi ini adalah callback aplikasi yang akan dipanggil saat waktu tunggu tanda terima pesan respons telah berakhir.

Detail
Parameter
[in] ec
Pointer ke objek ExchangeContext.

RetransmissionTimeoutFunct

void(* RetransmissionTimeoutFunct)(ExchangeContext *ec)

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

Detail
Parameter
[in] ec
Pointer ke objek ExchangeContext.

Waktu tunggu

uint32_t Timeout

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

WRMPAckRcvdFunct

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

Fungsi ini adalah callback aplikasi yang akan dipanggil saat Acknowledgment diterima untuk pesan Weave yang diminta sebagai bagian dari Weave Reliable Messaging Protocol.

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

WRMPPauseRcvdFunct

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

Fungsi ini adalah callback aplikasi yang akan dipanggil saat pesan Throttle atau pesan Tertunda Pengiriman diterima sebagai bagian dari Weave Reliable Messaging Protocol.

Setiap pesan tersebut 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
Waktu untuk menjeda transmisi (dalam milidetik).

WRMPSendErrorFunct

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

Fungsi ini adalah callback aplikasi yang akan 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

AllowDuplicateMsgs

bool AllowDuplicateMsgs

Indikator Boolean mengenai apakah pesan duplikat diizinkan untuk pertukaran tertentu.

AppState

void * AppState

Pointer ke objek status khusus aplikasi.

Kontra

WeaveConnection * Con

[HANYA BACA] Koneksi Weave terkait.

EncryptionType

uint8_t EncryptionType

Jenis enkripsi yang akan digunakan saat mengirim pesan.

ExchangeId

uint16_t ExchangeId

[HANYA BACA] ID bursa yang ditetapkan.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[HANYA BACA] Memiliki pengelola bursa.

KeyId

uint16_t KeyId

Kunci enkripsi yang digunakan saat mengirim pesan.

OnAckRcvd

WRMPAckRcvdFunct OnAckRcvd

Callback aplikasi untuk konfirmasi yang diterima.

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnDDRcvd

WRMPPauseRcvdFunct OnDDRcvd

Callback aplikasi untuk pesan Pengiriman Tertunda yang diterima.

OnKeyError

KeyErrorFunct OnKeyError

Fungsi ini adalah callback aplikasi yang akan dipanggil ketika pesan error kunci telah diterima dari peer.

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnResponseTimeout

ResponseTimeoutFunct OnResponseTimeout

OnRetransmissionTimeout

RetransmissionTimeoutFunct OnRetransmissionTimeout

OnSendError

WRMPSendErrorFunct OnSendError

Callback aplikasi untuk error saat mengirim.

OnThrottleRcvd

WRMPPauseRcvdFunct OnThrottleRcvd

Callback aplikasi untuk pesan Throttle yang diterima.

PeerAddr

IPAddress PeerAddr

[HANYA BACA] Alamat IP node peer.

PeerIntf

InterfaceId PeerIntf

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

(Hanya berguna untuk UDP.)

PeerNodeId

uint64_t PeerNodeId

[HANYA BACA] ID Node dari node peer.

PeerPort

uint16_t PeerPort

[HANYA BACA] Port node peer.

ResponseTimeout

Timeout ResponseTimeout

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

RetransInterval

uint32_t RetransInterval

Waktu antara transmisi ulang (dalam milidetik); 0 menonaktifkan transmisi ulang.

mMsgProtocolVersion

uint16_t mMsgProtocolVersion

Versi Message Protocol untuk ExchangeContext.

mWRMPConfig

WRMPConfig mWRMPConfig

Konfigurasi WRMP.

Fungsi publik

Batalkan

void Abort(
  void
)

Segera batalkan konteks Exchange dan lepaskan semua referensi ke konteks tersebut.

AddRef

void AddRef(
  void
)

Menambah penghitung referensi untuk konteks pertukaran satu per satu.

AutoRequestAck

bool AutoRequestAck() const 

Menampilkan apakah konfirmasi akan diminta setiap kali pesan dikirim.

CancelRetrans

void CancelRetrans(
  void
)

Batalkan mekanisme transmisi ulang Trickle.

Tutup

void Close(
  void
)

Menutup konteks pertukaran dengan baik.

Panggilan ini akan mengurangi jumlah referensi dan melepaskan pertukaran ketika jumlah referensi menjadi nol.

EncodeExchHeader

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

Mengenkode header exchange menjadi 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 dari profil yang sesuai.
[in] msgBuf
Pointer ke PacketBuffer yang diperlukan untuk pesan Weave.
[in] sendFlags
Tanda yang ditetapkan oleh aplikasi untuk pesan Weave yang sedang dikirim.
Nilai Pengembalian
WEAVE_ERROR_BUFFER_TOO_SMALL
Jika buffer pesan tidak memiliki cukup ruang untuk mengenkode header exchange.
WEAVE_NO_ERROR
Apakah encoding pesan berhasil.

GetAutoReleaseKey

bool GetAutoReleaseKey() const 

Menampilkan apakah kunci enkripsi yang terkait dengan pertukaran harus dirilis saat pertukaran dibebaskan.

GetCurrentRetransmitTimeout

uint32_t GetCurrentRetransmitTimeout(
  void
)

Mendapatkan waktu tunggu pengiriman ulang saat ini.

Hal ini dapat berupa waktu tunggu pengiriman ulang awal atau aktif berdasarkan apakah ExchangeContext memiliki pertukaran pesan aktif yang dilakukan dengan pembandingnya.

Detail
Hasil
waktu transmisi ulang saat ini.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  uint32_t bufSize
) const 

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

Detail
Parameter
[in] buf
Pointer ke buffer tempat string harus ditulis. Buffering yang disediakan minimal harus sebesar kGetPeerDescription_MaxLength. Jika buffer yang diberikan lebih kecil, string akan dipotong agar sesuai. Output-nya akan menyertakan karakter penghentian NUL dalam semua kasus.
[in] bufSize
Ukuran buffer yang ditunjuk 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.

HasPeerRequestedAck

bool HasPeerRequestedAck(
  void
) const 

Menentukan apakah rekan meminta konfirmasi untuk setidaknya satu pesan dalam pertukaran ini.

Detail
Hasil
Menampilkan 'true' jika konfirmasi diminta, jika tidak 'false'.

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

Tentukan apakah setidaknya satu pesan telah diterima dalam pertukaran ini dari rekan Anda.

Detail
Hasil
Menampilkan 'true' jika pesan diterima, jika lain 'false'.

IsAckPending

bool IsAckPending(
  void
) const 

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

IsConnectionClosed

bool IsConnectionClosed(
  void
) const 

Tentukan apakah ExchangeContext memiliki WeaveConnection aktif yang terkait.

Detail
Hasil
Menampilkan 'true' jika koneksi ditutup, menampilkan 'false' jika tidak.

IsInitiator

bool IsInitiator(
  void
) const 

Tentukan apakah konteksnya adalah inisiator pertukaran.

Detail
Hasil
Menampilkan 'true' jika itu adalah inisiator, jika tidak menampilkan 'false'.

IsResponseExpected

bool IsResponseExpected(
  void
) const 

Menentukan apakah ada respons yang diharapkan untuk pesan yang dikirim melalui pertukaran ini.

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

Rilis

void Release(
  void
)

Rilis referensi ke konteks bursa ini.

Jika jumlahnya turun ke satu, tutup konteks, reset semua callback aplikasi, dan hentikan semua timer.

SendCommonNullMessage

WEAVE_ERROR SendCommonNullMessage(
  void
)

Mengirim pesan Common::Null.

Detail
Nilai Pengembalian
WEAVE_ERROR_NO_MEMORY
Jika tidak ada PacketBuffers yang tersedia.
WEAVE_NO_ERROR
Apakah metode berhasil atau error tidak kritis.
other
Error kritis lain yang ditampilkan oleh SendMessage().

SendMessage

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 dari profil yang sesuai.
[in] msgBuf
Pointer ke objek PacketBuffer yang menyimpan pesan Weave.
[in] sendFlags
Tanda yang ditetapkan oleh aplikasi untuk pesan Weave yang sedang dikirim.
[in] msgCtxt
Pointer ke objek konteks khusus aplikasi yang akan dikaitkan dengan pesan yang dikirim.
Nilai Pengembalian
WEAVE_ERROR_INVALID_ARGUMENT
jika argumen yang tidak valid diteruskan ke SendMessage API ini.
WEAVE_ERROR_SEND_THROTTLED
jika konteks pertukaran ini telah diperlambat saat menggunakan protokol pesan Weave yang andal.
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 dibuat jika semantik Weave Reliable 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 keadaan konteks pertukaran salah.
WEAVE_NO_ERROR
jika lapisan Weave berhasil mengirim pesan ke lapisan jaringan.

SendMessage

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 dari profil yang sesuai.
[in] msgBuf
Pointer ke objek PacketBuffer yang menyimpan pesan Weave.
[in] sendFlags
Tanda yang ditetapkan oleh aplikasi untuk pesan Weave yang sedang dikirim.
[in] msgInfo
Pointer ke objek WeaveMessageInfo.
[in] msgCtxt
Pointer ke objek konteks khusus aplikasi yang akan dikaitkan dengan pesan yang dikirim.
Nilai Pengembalian
WEAVE_ERROR_INVALID_ARGUMENT
jika argumen yang tidak valid diteruskan ke SendMessage API ini.
WEAVE_ERROR_SEND_THROTTLED
jika konteks pertukaran ini telah diperlambat saat menggunakan protokol pesan Weave yang andal.
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 dibuat jika semantik Weave Reliable 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 keadaan konteks pertukaran salah.
WEAVE_NO_ERROR
jika lapisan Weave berhasil mengirim pesan ke lapisan jaringan.

SetAckPending

void SetAckPending(
  bool inAckPending
)

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

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

SetAutoReleaseKey

void SetAutoReleaseKey(
  bool autoReleaseKey
)

Tetapkan apakah kunci enkripsi yang terkait dengan pertukaran harus dirilis saat pertukaran dibebaskan.

Detail
Parameter
[in] autoReleaseKey
True jika kunci enkripsi pesan akan dilepas secara otomatis.

SetAutoRequestAck

void SetAutoRequestAck(
  bool autoReqAck
)

Menetapkan apakah konfirmasi harus diminta setiap kali pesan dikirim.

Detail
Parameter
[in] autoReqAck
Sebuah Boolean yang menunjukkan apakah suatu {i>acknowledgment <i}harus diminta atau tidak setiap kali pesan dikirim.

SetConnectionClosed

void SetConnectionClosed(
  bool inConnectionClosed
)

Menyetel bit tanda kFlagConnectionClosed.

Tanda ini ditetapkan saat WeaveConnection yang terkait dengan ExchangeContext ditutup.

Detail
Parameter
[in] inConnectionClosed
Boolean yang menunjukkan apakah konteksnya (true) atau tidak (false) terkait 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 (benar) atau tidak (salah) bahwa pengakuan tidak boleh dikirim untuk dipertukarkan.

SetInitiator

void SetInitiator(
  bool inInitiator
)

Setel bit flag kFlagInitiator.

Flag ini ditetapkan oleh node yang memulai pertukaran.

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

SetMsgRcvdFromPeer

void SetMsgRcvdFromPeer(
  bool inMsgRcvdFromPeer
)

Tetapkan jika pesan telah diterima dari pembanding pada pertukaran ini.

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

SetPeerRequestedAck

void SetPeerRequestedAck(
  bool inPeerRequestedAck
)

Tetapkan jika konfirmasi diminta dalam pesan terakhir yang diterima di Exchange ini.

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

SetResponseExpected

void SetResponseExpected(
  bool inResponseExpected
)

Tetapkan apakah ada respons yang diharapkan dalam bursa ini.

Detail
Parameter
[in] inResponseExpected
Boolean yang menunjukkan apakah respons diharapkan dalam pertukaran ini (benar) atau tidak (salah).

SetShouldAutoReleaseConnection

void SetShouldAutoReleaseConnection(
  bool autoReleaseCon
)

Tetapkan apakah koneksi Weave yang terkait dengan pertukaran harus dilepaskan saat pertukaran dibebaskan.

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

SetupTrickleRetransmit

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

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

Detail
Parameter
[in] retransInterval
Interval transmisi ulang dari algoritma siaran ulang Trickle.
[in] threshold
Frekuensi maksimum pesan disiarkan ulang.
[in] timeout
Waktu tunggu maksimum sebelum membatalkan timer transmisi ulang Trickle.
Hasil
WEAVE_NO_ERROR jika penyiapan Trickle berhasil, atau INET_ERROR yang dipetakan ke WEAVE_ERROR.

ShouldAutoReleaseConnection

bool ShouldAutoReleaseConnection() const 

Menampilkan apakah koneksi Weave yang terkait dengan pertukaran harus dirilis saat pertukaran dibebaskan.

ShouldDropAck

bool ShouldDropAck(
  void
) const 

Tentukan apakah WeaveExchangeManager tidak boleh mengirim konfirmasi.

Hanya untuk penggunaan internal debug.

StartTimerT

WEAVE_ERROR StartTimerT(
  void
)

Mulai mekanisme timer transmisi ulang berkala algoritma Trickle rebroadcast.

Detail
Hasil
WEAVE_NO_ERROR jika berhasil, atau INET_ERROR yang dipetakan ke WEAVE_ERROR.

TeardownTrickleRetransmit

void TeardownTrickleRetransmit(
  void
)

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

UseEphemeralUDPPort

bool UseEphemeralUDPPort(
  void
) const 

Menampilkan apakah pesan keluar yang dikirim melalui pertukaran harus dikirim dari port UDP efemeral lokal.

WRMPFlushAcks

WEAVE_ERROR WRMPFlushAcks(
  void
)

WRMPSendDelayedDelivery

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 penundaan sebelum terkirim ke penerima.

Salah satu kemungkinan penyebab pesan tertunda sebelum terkirim adalah ketika node akhir penerima mengantuk. Pesan ini berpotensi dihasilkan oleh node perantara yang sesuai dalam jalur pengiriman yang memiliki cukup pengetahuan tentang penerima untuk menyimpulkan tentang penundaan pengiriman. Setelah menerima pesan ini, pengirim akan menyesuaikan kembali timer pengiriman ulang untuk pesan yang mencari konfirmasi kembali.

Detail
Parameter
[in] pauseTimeMillis
Waktu (dalam milidetik) saat pesan yang dikirim sebelumnya diperkirakan tertunda sebelum dikirimkan.
[in] delayedNodeId
ID node node pembanding yang pengiriman pesan akan tertunda.
Nilai Pengembalian
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 dibuat jika semantik Weave Reliable 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 keadaan konteks pertukaran salah.
WEAVE_NO_ERROR
jika lapisan Weave berhasil mengirim pesan ke lapisan jaringan.

WRMPSendThrottleFlow

WEAVE_ERROR WRMPSendThrottleFlow(
  uint32_t PauseTimeMillis
)

Kirim pesan Alur Pembatasan ke node peer yang memintanya untuk membatasi pengiriman pesan.

Detail
Parameter
[in] pauseTimeMillis
Waktu (dalam milidetik) saat penerima diharapkan untuk men-throttle pengirimannya.
Nilai Pengembalian
WEAVE_ERROR_INVALID_ARGUMENT
Jika argumen yang tidak valid diteruskan ke SendMessage API ini.
WEAVE_ERROR_SEND_THROTTLED
Apakah konteks pertukaran ini telah dibatasi saat menggunakan protokol pesan yang andal Weave.
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 dibuat jika semantik Weave Reliable Messaging dicoba saat versi protokol pesan Weave adalah V1.
WEAVE_ERROR_NOT_CONNECTED
Apakah konteksnya terkait dengan koneksi yang sekarang ditutup.
WEAVE_ERROR_INCORRECT_STATE
Jika status konteks pertukaran salah.
WEAVE_NO_ERROR
Apakah lapisan Weave berhasil mengirimkan pesan ke lapisan jaringan.