нл:: Переплетение:: ExchangeContext

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

Этот класс представляет текущий диалог ( ExchangeContext ) между двумя или более узлами.

Краткое содержание

Он определяет методы кодирования и передачи сообщений Weave внутри ExchangeContext с помощью различных транспортных механизмов, например TCP, UDP или Weave Reliable Messaging.

Публичные типы

@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
}
перечисление
@35 {
kGetPeerDescription_MaxLength = nl::Weave::kWeavePeerDescription_MaxLength
}
перечисление
ConnectionClosedFunct )(ExchangeContext *ec, WeaveConnection *con, WEAVE_ERROR conErr) определение типа
void(*
Эта функция является обратным вызовом приложения, который вызывается при закрытии существующего соединения Weave.
KeyErrorFunct )(ExchangeContext *ec, WEAVE_ERROR keyErr) определение типа
void(*
Тип функции обработки ключевых сообщений об ошибках.
MessageReceiveFunct )(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload) определение типа
void(*
Эта функция является обратным вызовом приложения для обработки полученного сообщения Weave.
ResponseTimeoutFunct )(ExchangeContext *ec) определение типа
void(*
Эта функция представляет собой обратный вызов приложения, который вызывается по истечении времени ожидания получения ответного сообщения.
RetransmissionTimeoutFunct )(ExchangeContext *ec) определение типа
void(*
Эта функция представляет собой обратный вызов приложения, который вызывается, когда истекло время ожидания повторной передачи ранее отправленного сообщения.
Timeout определение типа
uint32_t
Тип, используемый для выражения времени ожидания в этом ExchangeContext в миллисекундах.
WRMPAckRcvdFunct )(ExchangeContext *ec, void *msgCtxt) определение типа
void(*
Эта функция является обратным вызовом приложения, который вызывается при получении подтверждения для сообщения Weave, которое запросило его в рамках протокола надежного обмена сообщениями Weave.
WRMPPauseRcvdFunct )(ExchangeContext *ec, uint32_t pauseTime) определение типа
void(*
Эта функция представляет собой обратный вызов приложения, который вызывается при получении сообщения Throttle или сообщения отложенной доставки как часть протокола надежного обмена сообщениями Weave.
WRMPSendErrorFunct )(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt) определение типа
void(*
Эта функция представляет собой обратный вызов приложения, который вызывается при возникновении ошибки при отправке сообщения Weave.

Публичные атрибуты

AllowDuplicateMsgs
bool
Логический индикатор того, разрешены ли дублированные сообщения для данного обмена.
AppState
void *
Указатель на объект состояния, специфичный для приложения.
Con
[ТОЛЬКО ДЛЯ ЧТЕНИЯ] Связанное соединение Weave.
EncryptionType
uint8_t
Тип шифрования, используемый при отправке сообщения.
ExchangeId
uint16_t
[ТОЛЬКО ДЛЯ ЧТЕНИЯ] Присвоенный идентификатор обмена.
ExchangeMgr
[ТОЛЬКО ДЛЯ ЧТЕНИЯ] Владеющий менеджер по обмену.
KeyId
uint16_t
Ключ шифрования, используемый при отправке сообщения.
OnAckRcvd
Обратный вызов приложения для получения подтверждения.
OnConnectionClosed
OnDDRcvd
Обратный вызов приложения для полученного сообщения об отложенной доставке.
OnKeyError
Эта функция представляет собой обратный вызов приложения, который вызывается, когда от узла получено ключевое сообщение об ошибке.
OnMessageReceived
OnResponseTimeout
OnRetransmissionTimeout
OnSendError
Обратный вызов приложения при ошибке при отправке.
OnThrottleRcvd
Обратный вызов приложения для полученного сообщения Throttle.
PeerAddr
IPAddress
[ТОЛЬКО ДЛЯ ЧТЕНИЯ] IP-адрес однорангового узла.
PeerIntf
InterfaceId
[ТОЛЬКО ДЛЯ ЧТЕНИЯ] Исходящий интерфейс, который будет использоваться при отправке сообщений партнеру.
PeerNodeId
uint64_t
[ТОЛЬКО ДЛЯ ЧТЕНИЯ] Идентификатор однорангового узла.
PeerPort
uint16_t
[ТОЛЬКО ДЛЯ ЧТЕНИЯ] Порт однорангового узла.
ResponseTimeout
Максимальное время ожидания ответа (в миллисекундах); 0 отключает тайм-аут ответа.
RetransInterval
uint32_t
Время между повторными передачами (в миллисекундах); 0 отключает повторную передачу.
mMsgProtocolVersion
uint16_t
Версия протокола сообщений для ExchangeContext .
mWRMPConfig
Конфигурация WRMP.

Общественные функции

Abort (void)
void
Немедленно прервите контекст Exchange и освободите все ссылки на него.
AddRef (void)
void
Увеличьте счетчик ссылок для контекста обмена на единицу.
AutoRequestAck () const
bool
Возвращает, будет ли запрашиваться подтверждение при каждой отправке сообщения.
CancelRetrans (void)
void
Отмените механизм ретрансляции Trickle.
Close (void)
void
Грамотно закройте контекст обмена.
EncodeExchHeader ( WeaveExchangeHeader *exchangeHeader, uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags)
Закодируйте заголовок обмена в буфер сообщений.
GetAutoReleaseKey () const
bool
Укажите, следует ли освободить ключ шифрования, связанный с обменом, при освобождении обмена.
GetCurrentRetransmitTimeout (void)
uint32_t
Получите текущий тайм-аут повторной передачи.
GetPeerDescription (char *buf, uint32_t bufSize) const
void
Создает строку, описывающую одноранговый узел и связанную с ним информацию об адресе/соединении.
HandleTrickleMessage (const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo)
void
Обработка небольших сообщений в контексте обмена.
HasPeerRequestedAck (void) const
bool
Определите, запросил ли партнер подтверждение хотя бы для одного сообщения в этом обмене.
HasRcvdMsgFromPeer (void) const
bool
Определите, было ли получено хотя бы одно сообщение на этом обмене от узла.
IsAckPending (void) const
bool
Определите, существует ли уже подтверждение, ожидающее отправки партнеру на этом обмене.
IsConnectionClosed (void) const
bool
Определите, имеет ли ExchangeContext связанный активный WeaveConnection .
IsInitiator (void) const
bool
Определите, является ли контекст инициатором обмена.
IsResponseExpected (void) const
bool
Определите, ожидается ли ответ на сообщения, отправленные по этому обмену.
Release (void)
void
Освободите ссылку на этот контекст обмена.
SendCommonNullMessage (void)
Отправьте сообщение Common::Null.
SendMessage (uint32_t profileId, uint8_t msgType, PacketBuffer *msgPayload, uint16_t sendFlags, void *msgCtxt)
Отправьте сообщение Weave на эту биржу.
SendMessage (uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags, WeaveMessageInfo *msgInfo, void *msgCtxt)
Отправьте сообщение Weave на эту биржу.
SetAckPending (bool inAckPending)
void
Установите, если подтверждение должно быть отправлено обратно узлу на этом обмене.
SetAutoReleaseKey (bool autoReleaseKey)
void
Установите, должен ли ключ шифрования, связанный с обменом, освобождаться при освобождении обмена.
SetAutoRequestAck (bool autoReqAck)
void
Установите, следует ли запрашивать подтверждение при каждой отправке сообщения.
SetConnectionClosed (bool inConnectionClosed)
void
Установите бит флага kFlagConnectionClosed.
SetDropAck (bool inDropAck)
void
Установите, должен ли WeaveExchangeManager не отправлять подтверждения для этого контекста.
SetInitiator (bool inInitiator)
void
Установите бит флага kFlagInitiator.
SetMsgRcvdFromPeer (bool inMsgRcvdFromPeer)
void
Установите, если сообщение было получено от узла на этом обмене.
SetPeerRequestedAck (bool inPeerRequestedAck)
void
Установите, если подтверждение было запрошено в последнем сообщении, полученном в этом обмене.
SetResponseExpected (bool inResponseExpected)
void
Установите, ожидается ли ответ на этом обмене.
SetShouldAutoReleaseConnection (bool autoReleaseCon)
void
Установите, должно ли соединение Weave, связанное с обменом, освобождаться при освобождении обмена.
SetupTrickleRetransmit (uint32_t retransInterval, uint8_t threshold, uint32_t timeout)
Настройте механизм повторной передачи, установив соответствующий интервал повторной передачи и порог повторной передачи.
ShouldAutoReleaseConnection () const
bool
Возвращает значение, должно ли соединение Weave, связанное с обменом, освобождаться при освобождении обмена.
ShouldDropAck (void) const
bool
Определите, должен ли WeaveExchangeManager отправлять подтверждение.
StartTimerT (void)
Запустите механизм таймера периодической повторной передачи алгоритма ретрансляции Trickle.
TeardownTrickleRetransmit (void)
void
Отключите механизм повторной передачи Trickle, отменив периодические таймеры внутри Trickle и освободив буфер сообщений, содержащий сообщение Weave.
UseEphemeralUDPPort (void) const
bool
Возвращает значение, следует ли отправлять исходящие сообщения, отправленные через обмен, из локального эфемерного порта UDP.
WRMPFlushAcks (void)
WRMPSendDelayedDelivery (uint32_t PauseTimeMillis, uint64_t DelayedNodeId)
Отправьте сообщение отложенной доставки, чтобы уведомить узел отправителя о том, что его ранее отправленное сообщение столкнется с ожидаемой задержкой перед доставкой получателю.
WRMPSendThrottleFlow (uint32_t PauseTimeMillis)
Отправьте сообщение Throttle Flow равноправному узлу с просьбой ограничить отправку сообщений.

Публичные типы

@34

 @34
Характеристики
kSendFlag_AlreadyEncoded

Используется для обозначения того, что сообщение уже закодировано.

kSendFlag_AutoRetrans

Используется для обозначения включения автоматической повторной передачи.

kSendFlag_DefaultMulticastSourceAddress

Используется для указания того, что при отправке многоадресных сообщений IPv6 следует использовать выбор исходного адреса IPv6 по умолчанию.

kSendFlag_DelaySend

Используется для указания того, что отправку текущего сообщения необходимо отложить.

kSendFlag_ExpectResponse

Используется для указания того, что ответ ожидается в течение заданного времени ожидания.

kSendFlag_FromInitiator

Используется для обозначения того, что текущее сообщение является инициатором обмена.

kSendFlag_MulticastFromLinkLocal

Устаревший псевдоним kSendFlag_DefaultMulticastSourceAddress .

kSendFlag_NoAutoRequestAck

Отключите функцию подтверждения автоматического запроса при отправке сообщения.

kSendFlag_RequestAck

Используется для отправки сообщения WRM с запросом подтверждения.

kSendFlag_RetainBuffer

Используется для указания того, что буфер сообщения не должен освобождаться после отправки.

kSendFlag_RetransmissionTrickle

Используется для указания необходимости повторной передачи для Trickle.

kSendFlag_ReuseMessageId

Используется для указания того, что идентификатор сообщения в заголовке сообщения может быть использован повторно.

kSendFlag_ReuseSourceId

Используется для указания того, что идентификатор исходного узла в заголовке сообщения может быть повторно использован.

@35

 @35
Характеристики
kGetPeerDescription_MaxLength

Максимальная длина строки (включая символ NUL), возвращаемой GetPeerDescription() .

СоединениеЗакрытоФункция

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

Эта функция является обратным вызовом приложения, который вызывается при закрытии существующего соединения Weave.

Подробности
Параметры
[in] ec
Указатель на объект ExchangeContext .
[in] con
Указатель на объект WeaveConnection .
[in] conErr
Тип WEAVE_ERROR, о котором сообщалось при закрытии соединения.

KeyErrorFunct

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

Тип функции обработки ключевых сообщений об ошибках.

Подробности
Параметры
[in] ec
Указатель на объект ExchangeContext .
[in] keyErr
Тип WEAVE_ERROR, указанный в ключевом сообщении об ошибке.

СообщениеПолучитьФункция

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

Эта функция является обратным вызовом приложения для обработки полученного сообщения Weave.

Подробности
Параметры
[in] ec
Указатель на объект ExchangeContext .
[in] pktInfo
Указатель на объект IPPacketInfo.
[in] msgInfo
Указатель на объект WeaveMessageInfo .
[in] profileId
Идентификатор профиля полученного сообщения.
[in] msgType
Тип сообщения соответствующего профиля.
[in] payload
Указатель на объект PacketBuffer, содержащий полезные данные сообщения.

ResponseTimeoutFunct

void(* ResponseTimeoutFunct)(ExchangeContext *ec)

Эта функция представляет собой обратный вызов приложения, который вызывается по истечении времени ожидания получения ответного сообщения.

Подробности
Параметры
[in] ec
Указатель на объект ExchangeContext .

Функция повторной передачиTimeoutFunct

void(* RetransmissionTimeoutFunct)(ExchangeContext *ec)

Эта функция представляет собой обратный вызов приложения, который вызывается по истечении времени ожидания повторной передачи ранее отправленного сообщения.

Подробности
Параметры
[in] ec
Указатель на объект ExchangeContext .

Тайм-аут

uint32_t Timeout

Тип, используемый для выражения времени ожидания в этом ExchangeContext в миллисекундах.

ВРМПАккрквдфункт

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

Эта функция является обратным вызовом приложения, который вызывается при получении подтверждения для сообщения Weave, которое запросило его в рамках протокола надежного обмена сообщениями Weave.

Подробности
Параметры
[in] ec
Указатель на объект ExchangeContext .
[in] msgCtxt
Указатель на некоторый конкретный объект контекста, связанный с подтверждаемым исходным сообщением.

ВРМППаузаРквдФункт

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

Эта функция представляет собой обратный вызов приложения, который вызывается при получении сообщения Throttle или сообщения отложенной доставки как часть протокола надежного обмена сообщениями Weave.

Каждое из этих сообщений сопровождается значением времени (в миллисекундах), которое означает время приостановки отправки сообщений Weave в этом ExchangeContext .

Подробности
Параметры
[in] ec
Указатель на объект ExchangeContext .
[in] pauseTime
Время приостановки передачи (в миллисекундах).

Врмпсендеррорфункт

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

Эта функция представляет собой обратный вызов приложения, который вызывается при возникновении ошибки при отправке сообщения Weave.

Подробности
Параметры
[in] ec
Указатель на объект ExchangeContext .
[in] err
Тип WEAVE_ERROR, обнаруженный во время отправки сообщения.
[in] msgCtxt
Указатель на некоторый конкретный объект контекста, связанный с исходным сообщением, о котором сообщается.

Публичные атрибуты

Алловдупликатемсгс

bool AllowDuplicateMsgs

Логический индикатор того, разрешены ли дублированные сообщения для данного обмена.

состояние приложения

void * AppState

Указатель на объект состояния, специфичный для приложения.

Кон

WeaveConnection * Con

[ТОЛЬКО ДЛЯ ЧТЕНИЯ] Связанное соединение Weave.

тип шифрования

uint8_t EncryptionType

Тип шифрования, используемый при отправке сообщения.

ExchangeId

uint16_t ExchangeId

[ТОЛЬКО ДЛЯ ЧТЕНИЯ] Присвоенный идентификатор обмена.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[ТОЛЬКО ДЛЯ ЧТЕНИЯ] Владеющий менеджер по обмену.

идентификатор ключа

uint16_t KeyId

Ключ шифрования, используемый при отправке сообщения.

Онаккрквд

WRMPAckRcvdFunct OnAckRcvd

Обратный вызов приложения для получения подтверждения.

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnDDRcvd

WRMPPauseRcvdFunct OnDDRcvd

Обратный вызов приложения для полученного сообщения об отложенной доставке.

OnKeyError

KeyErrorFunct OnKeyError

Эта функция представляет собой обратный вызов приложения, который вызывается, когда от узла получено ключевое сообщение об ошибке.

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnResponseTimeout

ResponseTimeoutFunct OnResponseTimeout

Онретрансмиссионтаймаут

RetransmissionTimeoutFunct OnRetransmissionTimeout

OnSendError

WRMPSendErrorFunct OnSendError

Обратный вызов приложения при ошибке при отправке.

OnThrottleRcvd

WRMPPauseRcvdFunct OnThrottleRcvd

Обратный вызов приложения для полученного сообщения Throttle.

Адрес узла

IPAddress PeerAddr

[ТОЛЬКО ДЛЯ ЧТЕНИЯ] IP-адрес однорангового узла.

PeerIntf

InterfaceId PeerIntf

[ТОЛЬКО ДЛЯ ЧТЕНИЯ] Исходящий интерфейс, который будет использоваться при отправке сообщений партнеру.

(Имеет значение только для UDP.)

PeerNodeId

uint64_t PeerNodeId

[ТОЛЬКО ДЛЯ ЧТЕНИЯ] Идентификатор однорангового узла.

ПирПорт

uint16_t PeerPort

[ТОЛЬКО ДЛЯ ЧТЕНИЯ] Порт однорангового узла.

Таймаут ответа

Timeout ResponseTimeout

Максимальное время ожидания ответа (в миллисекундах); 0 отключает тайм-аут ответа.

РетрансИнтервал

uint32_t RetransInterval

Время между повторными передачами (в миллисекундах); 0 отключает повторную передачу.

ммсгпротоколверсион

uint16_t mMsgProtocolVersion

Версия протокола сообщений для ExchangeContext .

mWRMPConfig

WRMPConfig mWRMPConfig

Конфигурация WRMP.

Общественные функции

Прервать

void Abort(
  void
)

Немедленно прервите контекст Exchange и освободите все ссылки на него.

ДобавитьСсылку

void AddRef(
  void
)

Увеличьте счетчик ссылок для контекста обмена на единицу.

АвтозапросПодтверждение

bool AutoRequestAck() const 

Возвращает, будет ли запрашиваться подтверждение при каждой отправке сообщения.

ОтменаРетранс

void CancelRetrans(
  void
)

Отмените механизм ретрансляции Trickle.

Закрывать

void Close(
  void
)

Грамотно закройте контекст обмена.

Этот вызов уменьшает счетчик ссылок и освобождает обмен, когда счетчик ссылок становится равным нулю.

КодироватьExchHeader

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

Закодируйте заголовок обмена в буфер сообщений.

Подробности
Параметры
[in] exchangeHeader
Указатель на объект заголовка Weave Exchange.
[in] profileId
Идентификатор профиля отправляемого сообщения Weave.
[in] msgType
Тип сообщения соответствующего профиля.
[in] msgBuf
Указатель на PacketBuffer, необходимый для сообщения Weave.
[in] sendFlags
Флаги, установленные приложением для отправляемого сообщения Weave.
Возвращаемые значения
WEAVE_ERROR_BUFFER_TOO_SMALL
Если в буфере сообщения недостаточно места для кодирования заголовка обмена.
WEAVE_NO_ERROR
Если кодирование сообщения прошло успешно.

GetAutoReleaseKey

bool GetAutoReleaseKey() const 

Укажите, следует ли освободить ключ шифрования, связанный с обменом, при освобождении обмена.

GetCurrentRetransmitTimeout

uint32_t GetCurrentRetransmitTimeout(
  void
)

Получите текущий тайм-аут повторной передачи.

Это будет либо начальный, либо активный тайм-аут повторной передачи в зависимости от того, имеет ли ExchangeContext активный обмен сообщениями со своим одноранговым узлом.

Подробности
Возврат
текущее время ретрансляции.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  uint32_t bufSize
) const 

Создает строку, описывающую одноранговый узел и связанную с ним информацию об адресе/соединении.

Подробности
Параметры
[in] buf
Указатель на буфер, в который должна быть записана строка. Предоставляемый буфер должен быть по крайней мере такого же размера, как kGetPeerDescription_MaxLength. Если задан меньший буфер, строка будет усечена, чтобы соответствовать размеру. Во всех случаях выходные данные будут содержать символ завершения NUL.
[in] bufSize
Размер буфера, на который указывает buf.

РучкаРучейСообщение

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

Обработка небольших сообщений в контексте обмена.

Подробности
Параметры
[in] pktInfo
Указатель на объект IPPacketInfo.
[in] msgInfo
Указатель на информационную структуру сообщения Weave.

HasPeerRequestedAck

bool HasPeerRequestedAck(
  void
) const 

Определите, запросил ли партнер подтверждение хотя бы для одного сообщения в этом обмене.

Подробности
Возврат
Возвращает «истина», если запрошено подтверждение, иначе — «ложь».

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

Определите, было ли получено хотя бы одно сообщение на этом обмене от узла.

Подробности
Возврат
Возвращает «истину», если сообщение получено, иначе — «ложь».

Исаккожидание

bool IsAckPending(
  void
) const 

Определите, существует ли уже подтверждение, ожидающее отправки партнеру на этом обмене.

IsConnectionClosed

bool IsConnectionClosed(
  void
) const 

Определите, имеет ли ExchangeContext связанный активный WeaveConnection .

Подробности
Возврат
Возвращает «истину», если соединение закрыто, иначе — «ложь».

Исинициатор

bool IsInitiator(
  void
) const 

Определите, является ли контекст инициатором обмена.

Подробности
Возврат
Возвращает «истина», если это инициатор, иначе — «ложь».

IsResponseExpected

bool IsResponseExpected(
  void
) const 

Определите, ожидается ли ответ на сообщения, отправленные через этот обмен.

Подробности
Возврат
Возвращает «истина», если ожидается ответ, иначе — «ложь».

Выпускать

void Release(
  void
)

Освободите ссылку на этот контекст обмена.

Если счетчик снизился до единицы, закройте контекст, сбросьте все обратные вызовы приложения и остановите все таймеры.

ОтправитьCommonNullMessage

WEAVE_ERROR SendCommonNullMessage(
  void
)

Отправьте сообщение Common::Null.

Подробности
Возвращаемые значения
WEAVE_ERROR_NO_MEMORY
Если нет доступных PacketBuffers.
WEAVE_NO_ERROR
Если метод удался или ошибка не была критической.
other
Еще одна критическая ошибка, возвращаемая SendMessage() .

Отправить сообщение

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

Отправьте сообщение Weave на эту биржу.

Подробности
Параметры
[in] profileId
Идентификатор профиля отправляемого сообщения Weave.
[in] msgType
Тип сообщения соответствующего профиля.
[in] msgBuf
Указатель на объект PacketBuffer, содержащий сообщение Weave.
[in] sendFlags
Флаги, установленные приложением для отправляемого сообщения Weave.
[in] msgCtxt
Указатель на объект контекста конкретного приложения, который будет связан с отправляемым сообщением.
Возвращаемые значения
WEAVE_ERROR_INVALID_ARGUMENT
если этому API SendMessage был передан недопустимый аргумент.
WEAVE_ERROR_SEND_THROTTLED
если этот контекст обмена был ограничен при использовании протокола надежного обмена сообщениями Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
если существует несоответствие конкретной операции отправки и поддерживаемой версии протокола сообщений Weave. Например, эта ошибка будет сгенерирована, если будет предпринята попытка семантики Weave Reliable Messaging, когда версия протокола сообщений Weave — V1.
WEAVE_ERROR_NOT_CONNECTED
если контекст был связан с соединением, которое сейчас закрыто.
WEAVE_ERROR_INCORRECT_STATE
если состояние контекста обмена неверно.
WEAVE_NO_ERROR
если уровень Weave успешно отправил сообщение на сетевой уровень.

Отправить сообщение

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

Отправьте сообщение Weave на эту биржу.

Подробности
Параметры
[in] profileId
Идентификатор профиля отправляемого сообщения Weave.
[in] msgType
Тип сообщения соответствующего профиля.
[in] msgBuf
Указатель на объект PacketBuffer, содержащий сообщение Weave.
[in] sendFlags
Флаги, установленные приложением для отправляемого сообщения Weave.
[in] msgInfo
Указатель на объект WeaveMessageInfo .
[in] msgCtxt
Указатель на объект контекста конкретного приложения, который будет связан с отправляемым сообщением.
Возвращаемые значения
WEAVE_ERROR_INVALID_ARGUMENT
если этому API SendMessage был передан недопустимый аргумент.
WEAVE_ERROR_SEND_THROTTLED
если этот контекст обмена был ограничен при использовании протокола надежного обмена сообщениями Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
если существует несоответствие конкретной операции отправки и поддерживаемой версии протокола сообщений Weave. Например, эта ошибка будет сгенерирована, если будет предпринята попытка семантики Weave Reliable Messaging, когда версия протокола сообщений Weave — V1.
WEAVE_ERROR_NOT_CONNECTED
если контекст был связан с соединением, которое сейчас закрыто.
WEAVE_ERROR_INCORRECT_STATE
если состояние контекста обмена неверно.
WEAVE_NO_ERROR
если уровень Weave успешно отправил сообщение на сетевой уровень.

SetAckPending

void SetAckPending(
  bool inAckPending
)

Установите, если подтверждение должно быть отправлено обратно узлу на этом обмене.

Подробности
Параметры
[in] inAckPending
Логическое значение, указывающее, должно ли (истина) или нет (ложь) подтверждение быть отправлено обратно в ответ на полученное сообщение.

SetAutoReleaseKey

void SetAutoReleaseKey(
  bool autoReleaseKey
)

Установите, должен ли ключ шифрования, связанный с обменом, освобождаться при освобождении обмена.

Подробности
Параметры
[in] autoReleaseKey
Значение true, если ключ шифрования сообщения должен освобождаться автоматически.

SetAutoRequestAck

void SetAutoRequestAck(
  bool autoReqAck
)

Установите, следует ли запрашивать подтверждение при каждой отправке сообщения.

Подробности
Параметры
[in] autoReqAck
Логическое значение, указывающее, следует ли запрашивать подтверждение при каждой отправке сообщения.

SetConnectionClosed

void SetConnectionClosed(
  bool inConnectionClosed
)

Установите бит флага kFlagConnectionClosed.

Этот флаг устанавливается, когда WeaveConnection, связанный с ExchangeContext, закрывается.

Подробности
Параметры
[in] inConnectionClosed
Логическое значение, указывающее, был ли (истина) или нет (ложь) контекст связан с соединением.

SetDropAck

void SetDropAck(
  bool inDropAck
)

Установите, должен ли WeaveExchangeManager не отправлять подтверждения для этого контекста.

Только для внутреннего использования и отладки.

Подробности
Параметры
[in] inDropAck
Логическое значение, указывающее, следует ли (истина) или нет (ложь) подтверждения не отправлять для обмена.

SetInitiator

void SetInitiator(
  bool inInitiator
)

Установите бит флага kFlagInitiator.

Этот флаг устанавливается узлом, который инициирует обмен.

Подробности
Параметры
[in] inInitiator
Логическое значение, указывающее, является ли (истина) или нет (ложь) контекст инициатором обмена.

SetMsgRcvdFromPeer

void SetMsgRcvdFromPeer(
  bool inMsgRcvdFromPeer
)

Установите, если сообщение было получено от узла на этом обмене.

Подробности
Параметры
[in] inMsgRcvdFromPeer
Логическое значение, указывающее, было ли (истина) или нет (ложь) сообщение от узла в этом контексте обмена.

SetPeerRequestedAck

void SetPeerRequestedAck(
  bool inPeerRequestedAck
)

Установите, если подтверждение было запрошено в последнем сообщении, полученном в этом обмене.

Подробности
Параметры
[in] inPeerRequestedAck
Логическое значение, указывающее, было ли (истина) или нет (ложь) подтверждение запрошено в последнем полученном сообщении.

SetResponseExpected

void SetResponseExpected(
  bool inResponseExpected
)

Установите, ожидается ли ответ на этом обмене.

Подробности
Параметры
[in] inResponseExpected
Логическое значение, указывающее, ожидается ли (истина) или нет (ложь) ответ на этот обмен.

SetShouldAutoReleaseConnection

void SetShouldAutoReleaseConnection(
  bool autoReleaseCon
)

Установите, должно ли соединение Weave, связанное с обменом, освобождаться при освобождении обмена.

Подробности
Параметры
[in] autoReleaseCon
True, если соединение Weave должно быть автоматически разорвано.

НастройкаTrickleRetransmit

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

Настройте механизм повторной передачи, установив соответствующий интервал повторной передачи и порог повторной передачи.

Подробности
Параметры
[in] retransInterval
Интервал повторной передачи алгоритма ретрансляции Trickle.
[in] threshold
Максимальное количество ретрансляций сообщения.
[in] timeout
Максимальное время ожидания перед отменой таймера повторной передачи Trickle.
Возврат
WEAVE_NO_ERROR, если установка Trickle прошла успешно, в противном случае INET_ERROR отображается в WEAVE_ERROR.

Долженауторелизеконнектион

bool ShouldAutoReleaseConnection() const 

Возвращает значение, должно ли соединение Weave, связанное с обменом, освобождаться при освобождении обмена.

Должендропакк

bool ShouldDropAck(
  void
) const 

Определите, должен ли WeaveExchangeManager отправлять подтверждение.

Только для внутреннего использования и отладки.

СтартТаймерТ

WEAVE_ERROR StartTimerT(
  void
)

Запустите механизм таймера периодической повторной передачи алгоритма ретрансляции Trickle.

Подробности
Возврат
WEAVE_NO_ERROR в случае успеха, в противном случае INET_ERROR отображается в WEAVE_ERROR.

РазборкаРучкаПовторная передача

void TeardownTrickleRetransmit(
  void
)

Отключите механизм повторной передачи Trickle, отменив периодические таймеры внутри Trickle и освободив буфер сообщений, содержащий сообщение Weave.

Использовать эфемерный UDPPort

bool UseEphemeralUDPPort(
  void
) const 

Возвращает значение, следует ли отправлять исходящие сообщения, отправленные через обмен, из локального эфемерного порта UDP.

WRMPFlushAcks

WEAVE_ERROR WRMPFlushAcks(
  void
)

WRMPSendDelayedDelivery

WEAVE_ERROR WRMPSendDelayedDelivery(
  uint32_t PauseTimeMillis,
  uint64_t DelayedNodeId
)

Отправьте сообщение отложенной доставки, чтобы уведомить узел отправителя о том, что его ранее отправленное сообщение столкнется с ожидаемой задержкой перед доставкой получателю.

Одной из возможных причин задержки сообщений перед доставкой является то, что конечный узел получателя спит. Это сообщение потенциально генерируется подходящим промежуточным узлом на пути отправки, который имеет достаточно знаний о получателе, чтобы сделать вывод о задержке доставки. Получив это сообщение, отправитель перенастроит свои таймеры повторной передачи для сообщений, требующих обратного подтверждения.

Подробности
Параметры
[in] pauseTimeMillis
Время (в миллисекундах), в течение которого ожидается задержка ранее отправленного сообщения перед доставкой.
[in] delayedNodeId
Идентификатор однорангового узла, которому будет задержана доставка сообщения.
Возвращаемые значения
WEAVE_ERROR_INVALID_ARGUMENT
если этому API SendMessage был передан недопустимый аргумент.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
если существует несоответствие конкретной операции отправки и поддерживаемой версии протокола сообщений Weave. Например, эта ошибка будет сгенерирована, если будет предпринята попытка семантики Weave Reliable Messaging, когда версия протокола сообщений Weave — V1.
WEAVE_ERROR_NOT_CONNECTED
если контекст был связан с соединением, которое сейчас закрыто.
WEAVE_ERROR_INCORRECT_STATE
если состояние контекста обмена неверно.
WEAVE_NO_ERROR
если уровень Weave успешно отправил сообщение на сетевой уровень.

WRMPSendThrottleFlow

WEAVE_ERROR WRMPSendThrottleFlow(
  uint32_t PauseTimeMillis
)

Отправьте сообщение Throttle Flow равноправному узлу с просьбой ограничить отправку сообщений.

Подробности
Параметры
[in] pauseTimeMillis
Время (в миллисекундах), в течение которого получатель должен ограничить отправку.
Возвращаемые значения
WEAVE_ERROR_INVALID_ARGUMENT
Если этому API SendMessage был передан недопустимый аргумент.
WEAVE_ERROR_SEND_THROTTLED
Был ли этот контекст обмена ограничен при использовании протокола надежного обмена сообщениями Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
Если существует несоответствие конкретной операции отправки и поддерживаемой версии протокола сообщений Weave. Например, эта ошибка будет сгенерирована, если будет предпринята попытка семантики Weave Reliable Messaging, когда версия протокола сообщений Weave — V1.
WEAVE_ERROR_NOT_CONNECTED
Если контекст был связан с соединением, которое сейчас закрыто.
WEAVE_ERROR_INCORRECT_STATE
Если состояние контекста обмена неверно.
WEAVE_NO_ERROR
Если уровень Weave успешно отправил сообщение на сетевой уровень.