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

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

Определение класса Weave Connection.

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

Он представляет собой соединение TCP или BLE с другим узлом Weave.

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

@58 {
kGetPeerDescription_MaxLength = nl::Weave::kWeavePeerDescription_MaxLength
}
перечисление
ConnectionClosedFunct )(WeaveConnection *con, WEAVE_ERROR conErr) определение типа
void(*
Эта функция представляет собой обратный вызов приложения, который вызывается при закрытии соединения.
ConnectionCompleteFunct )(WeaveConnection *con, WEAVE_ERROR conErr) определение типа
void(*
Эта функция представляет собой обратный вызов приложения, который вызывается после завершения установки соединения.
MessageReceiveFunct )(WeaveConnection *con, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf) определение типа
void(*
Эта функция представляет собой обратный вызов приложения, который вызывается при получении сообщения через соединение Weave.
NetworkType {
kNetworkType_Unassigned = 0,
kNetworkType_IP = 1,
kNetworkType_BLE = 2
}
перечисление
Тип сети объекта соединения Weave.
ReceiveErrorFunct )(WeaveConnection *con, WEAVE_ERROR err) определение типа
void(*
Эта функция представляет собой обратный вызов приложения, вызываемый при возникновении ошибки при получении сообщения Weave.
State {
kState_ReadyToConnect = 0,
kState_Resolving = 1,
kState_Connecting = 2,
kState_EstablishingSession = 3,
kState_Connected = 4,
kState_SendShutdown = 5,
kState_Closed = 6
}
перечисление
Состояние объекта соединения Weave.
TunneledMsgReceiveFunct )(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf) определение типа
void(*
Эта функция представляет собой обратный вызов приложения, который вызывается при получении туннелированного пакета данных через соединение Weave.

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

AppState
void *
Указатель на объект состояния конкретного приложения.
AuthMode
WeaveAuthMode
[ТОЛЬКО ДЛЯ ЧТЕНИЯ] Режим аутентификации, используемый для установки ключей шифрования по умолчанию для соединения.
DefaultEncryptionType
uint8_t
Тип шифрования сообщений по умолчанию.
DefaultKeyId
uint16_t
Ключ шифрования по умолчанию, используемый при отправке сообщений.
MessageLayer
[ТОЛЬКО ДЛЯ ЧТЕНИЯ] Связанный объект WeaveMessageLayer .
NetworkType
uint8_t
[ТОЛЬКО ДЛЯ ЧТЕНИЯ] Тип сети связанной конечной точки.
OnConnectionClosed
OnConnectionComplete
OnMessageReceived
OnReceiveError
OnTunneledMessageReceived
PeerAddr
IPAddress
[ТОЛЬКО ДЛЯ ЧТЕНИЯ] IP-адрес однорангового узла.
PeerNodeId
uint64_t
[ТОЛЬКО ДЛЯ ЧТЕНИЯ] Идентификатор узла однорангового узла.
PeerPort
uint16_t
[ТОЛЬКО ДЛЯ ЧТЕНИЯ] Номер порта однорангового узла.
ReceiveEnabled
bool
[ТОЛЬКО ДЛЯ ЧТЕНИЯ] True, если прием включен, в противном случае — false.
SendDestNodeId
bool
Значение true, если все сообщения, отправляемые через это соединение, должны включать явно закодированный идентификатор узла назначения, в противном случае — значение false.
SendSourceNodeId
bool
True, если все сообщения, отправляемые через это соединение, должны включать явно закодированный идентификатор исходного узла, в противном случае — false.
State
uint8_t
[ТОЛЬКО ДЛЯ ЧТЕНИЯ] Состояние объекта WeaveConnection .

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

Abort (void)
void
Выполняет некорректное закрытие WeaveConnection на основе TCP или BLE, отбрасывая любые данные, которые могут передаваться к узлу или от него.
AddRef (void)
void
Зарезервируйте ссылку на объект WeaveConnection .
Close (void)
Выполняет неблокирующее корректное закрытие WeaveConnection на основе TCP или BLE, доставляя все оставшиеся исходящие данные, прежде чем вежливо информировать удаленный хост о том, что мы сбросили соединение.
Close (bool suppressCloseLog)
Выполняет неблокирующее корректное закрытие WeaveConnection на основе TCP или BLE, доставляя все оставшиеся исходящие данные, прежде чем вежливо информировать удаленный хост о том, что мы сбросили соединение.
Connect (uint64_t peerNodeId)
Подключитесь к узлу Weave, используя IP-адрес структуры, полученный на основе указанного идентификатора узла.
Connect (uint64_t peerNodeId, const IPAddress & peerAddr, uint16_t peerPort)
Подключитесь к узлу Weave, используя идентификатор узла и/или IP-адрес.
Connect (uint64_t peerNodeId, WeaveAuthMode authMode, const IPAddress & peerAddr, uint16_t peerPort, InterfaceId intf)
Подключитесь к узлу Weave, используя идентификатор узла и/или IP-адрес на определенном интерфейсе.
Connect (uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t defaultPort)
Подключитесь к узлу Weave, используя идентификатор узла и/или строковое имя хоста.
Connect (uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t peerAddrLen, uint16_t defaultPort)
Подключитесь к узлу Weave, используя идентификатор узла и/или строковый адрес узла.
Connect (uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t peerAddrLen, uint8_t dnsOptions, uint16_t defaultPort)
Подключитесь к узлу Weave, используя идентификатор узла и/или строковый адрес узла.
Connect (uint64_t peerNodeId, WeaveAuthMode authMode, HostPortList hostPortList, InterfaceId intf)
Подключитесь к узлу Weave, используя идентификатор узла и/или список имен хостов и портов.
Connect (uint64_t peerNodeId, WeaveAuthMode authMode, HostPortList hostPortList, uint8_t dnsOptions, InterfaceId intf)
Подключитесь к узлу Weave, используя идентификатор узла и/или список имен хостов и портов.
DisableKeepAlive (void)
DisableReceive (void)
void
Отключите получение через этот WeaveConnection .
EnableKeepAlive (uint16_t interval, uint16_t timeoutCount)
EnableReceive (void)
void
Включите получение через WeaveConnection .
GetPeerAddressInfo (IPPacketInfo & addrInfo)
Получите информацию об IP-адресе узла.
GetPeerDescription (char *buf, size_t bufSize) const
void
Создает строку, описывающую одноранговый узел, связанный с соединением.
GetTCPEndPoint (void) const
TCPEndPoint *
IsIncoming (void) const
bool
LogId (void) const
uint16_t
Release (void)
void
Уменьшите счетчик ссылок на объекте WeaveConnection .
ResetUserTimeout (void)
SendMessage ( WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Отправьте сообщение Weave через установленное соединение.
SendTunneledMessage ( WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Функция для отправки туннелированного пакета через соединение Weave.
SetConnectTimeout (const uint32_t connTimeoutMsecs)
void
Установите тайм-аут, чтобы Connect завершился успешно или вернул ошибку.
SetIdleTimeout (uint32_t timeoutMS)
Установите тайм-аут простоя для соединения базового сетевого уровня.
SetIncoming (bool val)
void
SetUserTimeout (uint32_t userTimeoutMillis)
Shutdown (void)
Выполняет плавное завершение отправки TCP, гарантируя, что все исходящие данные были отправлены и получены TCP-стеком однорангового узла.

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

@58

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

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

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

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

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

Подробности
Параметры
[in] con
Указатель на объект WeaveConnection .
[in] conErr
Ошибка WEAVE_ERROR возникла при закрытии соединения.

СоединениеCompleteFunct

void(* ConnectionCompleteFunct)(WeaveConnection *con, WEAVE_ERROR conErr)

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

Подробности
Параметры
[in] con
Указатель на объект WeaveConnection .
[in] conErr
Ошибка WEAVE_ERROR, обнаруженная во время установки соединения.

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

void(* MessageReceiveFunct)(WeaveConnection *con, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)

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

Подробности
Параметры
[in] con
Указатель на объект WeaveConnection .
[in] msgInfo
Указатель на структуру WeaveMessageInfo , содержащую информацию о сообщении.
[in] msgBuf
Указатель на объект PacketBuffer, содержащий сообщение.

Тип сети

 NetworkType

Тип сети объекта соединения Weave.

Характеристики
kNetworkType_BLE

Тип сети BLE.

kNetworkType_IP

Тип сети TCP/IP.

kNetworkType_Unassigned

Неназначенный тип сети.

ПолучениеErrorFunct

void(* ReceiveErrorFunct)(WeaveConnection *con, WEAVE_ERROR err)

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

Подробности
Параметры
[in] con
Указатель на объект WeaveConnection .
[in] err
WEAVE_ERROR обнаружен при получении данных по соединению.

Состояние

 State

Состояние объекта соединения Weave.

Характеристики
kState_Closed

Состояние, когда соединение закрыто.

kState_Connected

Состояние, когда соединение установлено.

kState_Connecting

Состояние, когда предпринимается попытка подключения.

kState_EstablishingSession

Укажите, когда устанавливается безопасный сеанс.

kState_ReadyToConnect

Состояние после инициализации соединения Weave.

kState_Resolving

Укажите, когда выполняется разрешение имен DNS.

kState_SendShutdown

Состояние, когда соединение закрывается.

TunneledMsgReceiveFunct

void(* TunneledMsgReceiveFunct)(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)

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

Подробности
Параметры
[in] con
Указатель на объект WeaveConnection .
[in] msgInfo
Указатель на объект WeaveMessageInfo .
[in] msgBuf
Указатель на объект PacketBuffer, содержащий полученный туннелированный пакет.

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

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

void * AppState

Указатель на объект состояния конкретного приложения.

Режим аутентификации

WeaveAuthMode AuthMode

[ТОЛЬКО ДЛЯ ЧТЕНИЯ] Режим аутентификации, используемый для установки ключей шифрования по умолчанию для соединения.

Дефолтэнкриптионтипе

uint8_t DefaultEncryptionType

Тип шифрования сообщений по умолчанию.

ДефолтКейид

uint16_t DefaultKeyId

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

Слой сообщений

WeaveMessageLayer * MessageLayer

[ТОЛЬКО ДЛЯ ЧТЕНИЯ] Связанный объект WeaveMessageLayer .

Тип сети

uint8_t NetworkType

[ТОЛЬКО ДЛЯ ЧТЕНИЯ] Тип сети связанной конечной точки.

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

Онконнектионкомплете

ConnectionCompleteFunct OnConnectionComplete

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnTunneledMessageReceived

TunneledMsgReceiveFunct OnTunneledMessageReceived

Адрес узла

IPAddress PeerAddr

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

PeerNodeId

uint64_t PeerNodeId

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

ПирПорт

uint16_t PeerPort

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

Получение включено

bool ReceiveEnabled

[ТОЛЬКО ДЛЯ ЧТЕНИЯ] True, если прием включен, в противном случае — false.

Сенддестнодеид

bool SendDestNodeId

Значение true, если все сообщения, отправляемые через это соединение, должны включать явно закодированный идентификатор узла назначения, в противном случае — значение false.

ОтправитьSourceNodeId

bool SendSourceNodeId

Значение true, если все сообщения, отправляемые через это соединение, должны включать явно закодированный идентификатор исходного узла, в противном случае — значение false.

Состояние

uint8_t State

[ТОЛЬКО ДЛЯ ЧТЕНИЯ] Состояние объекта WeaveConnection .

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

Прервать

void Abort(
  void
)

Выполняет некорректное закрытие WeaveConnection на основе TCP или BLE, отбрасывая любые данные, которые могут передаваться к узлу или от него.

Вызов Abort() немедленно разрывает базовое соединение. После этого объект WeaveConnection больше нельзя использовать для дальнейшего взаимодействия.

Вызов Abort() уменьшает счетчик ссылок, связанный с объектом WeaveConnection , независимо от того, открыто/активно соединение в момент вызова метода. Если это приводит к тому, что счетчик ссылок достигает нуля, ресурсы, связанные с объектом соединения, освобождаются. В этом случае приложение не должно больше взаимодействовать с объектом.

См. также:
Shutdown() , Abort() , AddRef() и Release() .

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

void AddRef(
  void
)

Зарезервируйте ссылку на объект WeaveConnection .

Метод AddRef() увеличивает счетчик ссылок, связанный с объектом WeaveConnection . Для каждого вызова AddRef() приложение отвечает за соответствующий вызов Release() , Close() или Abort() .

Закрывать

WEAVE_ERROR Close(
  void
)

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

Этот метод не дает сильной гарантии того, что любое исходящее сообщение, не подтвержденное на уровне протокола приложения, было получено удаленным узлом. Как для TCP, так и для BLE базовый стек протоколов приложит все усилия для доставки любых ожидающих исходящих данных перед сбросом соединения. Для TCP Shutdown() следует использовать перед Close() , если перед закрытием соединения требуется подтверждение получения сообщения транспортного уровня. Соединения BLE не предоставляют эквивалента Shutdown() .

Для соединений на основе BLE функция Close() закрывает WeaveConnection и немедленно завершает работу, но может привести к тому, что базовый объект BLEEndPoint задержится до тех пор, пока не будут отправлены все исходящие данные. Это побочный эффект реализации транспортного протокола Weave over BLE, существующего в Weave BleLayer.

После вызова Close() объект WeaveConnection больше нельзя использовать для дальнейшего взаимодействия.

Вызов Close() уменьшает счетчик ссылок, связанный с объектом WeaveConnection , независимо от того, открыто/активно соединение в момент вызова метода. Если это приводит к тому, что счетчик ссылок достигает нуля, ресурсы, связанные с объектом соединения, освобождаются. В этом случае приложение не должно больше взаимодействовать с объектом.

Подробности
Возврат
WEAVE_NO_ERROR безусловно.
См. также:
Shutdown() , Abort() , AddRef() и Release() .

Закрывать

WEAVE_ERROR Close(
  bool suppressCloseLog
)

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

Этот метод не дает сильной гарантии того, что любое исходящее сообщение, не подтвержденное на уровне протокола приложения, было получено удаленным узлом. Как для TCP, так и для BLE базовый стек протоколов приложит все усилия для доставки любых ожидающих исходящих данных перед сбросом соединения. Для TCP Shutdown() следует использовать перед Close() , если перед закрытием соединения требуется подтверждение получения сообщения транспортного уровня. Соединения BLE не предоставляют эквивалента Shutdown() .

Для соединений на основе BLE функция Close() закрывает WeaveConnection и немедленно завершает работу, но может привести к тому, что базовый объект BLEEndPoint задержится до тех пор, пока не будут отправлены все исходящие данные. Это побочный эффект реализации транспортного протокола Weave over BLE, существующего в Weave BleLayer.

После вызова Close() объект WeaveConnection больше нельзя использовать для дальнейшего взаимодействия.

Вызов Close() уменьшает счетчик ссылок, связанный с объектом WeaveConnection , независимо от того, открыто/активно соединение в момент вызова метода. Если это приводит к тому, что счетчик ссылок достигает нуля, ресурсы, связанные с объектом соединения, освобождаются. В этом случае приложение не должно больше взаимодействовать с объектом.

Подробности
Параметры
[in] suppressCloseLog
true, если журналы необходимо подавлять, в противном случае — false.
Возврат
WEAVE_NO_ERROR безусловно.
См. также:
Shutdown() , Abort() , AddRef() и Release() .

Соединять

WEAVE_ERROR Connect(
  uint64_t peerNodeId
)

Подключитесь к узлу Weave, используя IP-адрес структуры, полученный на основе указанного идентификатора узла.

Подробности
Параметры
[in] peerNodeId
Идентификатор узла однорангового узла.
Возвращаемые значения
WEAVE_NO_ERROR
при успешном инициировании соединения с партнером.
WEAVE_ERROR_INCORRECT_STATE
если состояние WeaveConnection неверно.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
если запрошенный режим аутентификации не поддерживается.
WEAVE_ERROR_INVALID_ADDRESS
если адрес назначения не может быть выведен из идентификатора узла.
other
Ошибки уровня Inet, генерируемые операциями подключения TCPEndPoint.

Соединять

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  const IPAddress & peerAddr,
  uint16_t peerPort
)

Подключитесь к узлу Weave, используя идентификатор узла и/или IP-адрес.

Подробности
Параметры
[in] peerNodeId
Идентификатор узла однорангового узла, kNodeIdNotSpecified или 0, если он неизвестен.
[in] peerAddr
IP-адрес узла, IPAddress::Any , если он неизвестен.
[in] peerPort
Необязательный порт узла, по умолчанию WEAVE_PORT .
Возвращаемые значения
WEAVE_NO_ERROR
при успешном инициировании соединения с партнером.
WEAVE_ERROR_INCORRECT_STATE
если состояние WeaveConnection неверно.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
если запрошенный режим аутентификации не поддерживается.
WEAVE_ERROR_INVALID_ADDRESS
если адрес назначения не может быть выведен из идентификатора узла.
other
Ошибки уровня Inet, генерируемые операциями подключения TCPEndPoint.

Соединять

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  const IPAddress & peerAddr,
  uint16_t peerPort,
  InterfaceId intf
)

Подключитесь к узлу Weave, используя идентификатор узла и/или IP-адрес на определенном интерфейсе.

Подробности
Параметры
[in] peerNodeId
Идентификатор узла однорангового узла, kNodeIdNotSpecified или 0, если он неизвестен.
[in] authMode
Желаемый режим аутентификации для узла. Поддерживаются только режимы CASE, PASE и без аутентификации.
[in] peerAddr
IP-адрес узла, IPAddress::Any , если он неизвестен.
[in] peerPort
Необязательный порт узла, по умолчанию WEAVE_PORT .
[in] intf
Необязательный интерфейс, используемый для подключения к одноранговому узлу, по умолчанию — INET_NULL_INTERFACEID .
Возвращаемые значения
WEAVE_NO_ERROR
при успешном инициировании соединения с партнером.
WEAVE_ERROR_INCORRECT_STATE
если состояние WeaveConnection неверно.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
если запрошенный режим аутентификации не поддерживается.
WEAVE_ERROR_INVALID_ADDRESS
если адрес назначения не может быть выведен из идентификатора узла.
other
Ошибки уровня Inet, генерируемые операциями подключения TCPEndPoint.

Соединять

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  const char *peerAddr,
  uint16_t defaultPort
)

Подключитесь к узлу Weave, используя идентификатор узла и/или строковое имя хоста.

Если параметр PeerAddr указан, он может быть любым из:


:

:

[]:

Подробности
Параметры
[in] peerNodeId
Идентификатор узла однорангового узла, kNodeIdNotSpecified или 0, если он неизвестен.
[in] authMode
Желаемый режим аутентификации для узла. Поддерживаются только режимы CASE, PASE и без аутентификации.
[in] peerAddr
Адрес или имя хоста узла в виде строки C, завершающейся NULL.
[in] defaultPort
Необязательный порт по умолчанию, который будет использоваться для соединения, если он не указан в строке PeerAddr.
Возвращаемые значения
WEAVE_NO_ERROR
при успешном инициировании соединения с партнером.
WEAVE_ERROR_INCORRECT_STATE
если состояние WeaveConnection неверно.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
если запрошенный режим аутентификации не поддерживается.
WEAVE_ERROR_INVALID_ADDRESS
если адрес назначения не может быть выведен из идентификатора узла.
other
Ошибки уровня Inet, генерируемые операциями подключения TCPEndPoint.

Соединять

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  const char *peerAddr,
  uint16_t peerAddrLen,
  uint16_t defaultPort
)

Подключитесь к узлу Weave, используя идентификатор узла и/или строковый адрес узла.

Если параметр PeerAddr указан, он может быть любым из:


:

:

[]:

Подробности
Параметры
[in] peerNodeId
Идентификатор узла однорангового узла, kNodeIdNotSpecified или 0, если он неизвестен.
[in] authMode
Желаемый режим аутентификации для узла. Поддерживаются только режимы CASE, PASE и без аутентификации.
[in] peerAddr
Адрес или имя хоста узла в виде строки C, не завершающейся NULL.
[in] peerAddrLen
Длина строки PeerAddr.
[in] defaultPort
Необязательный порт по умолчанию, который будет использоваться для соединения, если он не указан в строке PeerAddr.
Возвращаемые значения
WEAVE_NO_ERROR
при успешном инициировании соединения с партнером.
WEAVE_ERROR_INCORRECT_STATE
если состояние WeaveConnection неверно.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
если запрошенный режим аутентификации не поддерживается.
WEAVE_ERROR_INVALID_ADDRESS
если адрес назначения не может быть выведен из идентификатора узла.
other
Ошибки уровня Inet, генерируемые операциями подключения TCPEndPoint.

Соединять

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  const char *peerAddr,
  uint16_t peerAddrLen,
  uint8_t dnsOptions,
  uint16_t defaultPort
)

Подключитесь к узлу Weave, используя идентификатор узла и/или строковый адрес узла.

Если параметр PeerAddr указан, он может быть любым из:


:

:

[]:

Подробности
Параметры
[in] peerNodeId
Идентификатор узла однорангового узла, kNodeIdNotSpecified или 0, если он неизвестен.
[in] authMode
Желаемый режим аутентификации для узла. Поддерживаются только режимы CASE, PASE и без аутентификации.
[in] peerAddr
Адрес или имя хоста узла в виде строки C, не завершающейся NULL.
[in] peerAddrLen
Длина строки PeerAddr.
[in] dnsOptions
Целочисленное значение, управляющее тем, как выполняется разрешение имени хоста. Значение должно быть ИЛИ одного или нескольких значений из перечисления #::nl::Inet::DNSOptions.
[in] defaultPort
Необязательный порт по умолчанию, используемый для подключения, если он не указан в строке PeerAddr.
Возвращаемые значения
WEAVE_NO_ERROR
при успешном инициировании соединения с партнером.
WEAVE_ERROR_INCORRECT_STATE
если состояние WeaveConnection неверно.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
если запрошенный режим аутентификации не поддерживается.
WEAVE_ERROR_INVALID_ADDRESS
если адрес назначения не может быть выведен из идентификатора узла.
other
Ошибки уровня Inet, генерируемые операциями подключения TCPEndPoint.

Соединять

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  HostPortList hostPortList,
  InterfaceId intf
)

Подключитесь к узлу Weave, используя идентификатор узла и/или список имен хостов и портов.

Подробности
Параметры
[in] peerNodeId
Идентификатор узла однорангового узла.
[in] authMode
Режим аутентификации, используемый для соединения.
[in] hostPortList
Список имен хостов и портов.
[in] intf
Необязательный интерфейс, используемый для подключения к одноранговому узлу, по умолчанию — INET_NULL_INTERFACEID .
Возвращаемые значения
WEAVE_NO_ERROR
при успешном инициировании соединения с партнером.
WEAVE_ERROR_INCORRECT_STATE
если состояние WeaveConnection неверно.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
если запрошенный режим аутентификации не поддерживается.
WEAVE_ERROR_INVALID_ADDRESS
если адрес назначения не может быть выведен из идентификатора узла.
other
Ошибки уровня Inet, генерируемые операциями подключения TCPEndPoint.

Соединять

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  HostPortList hostPortList,
  uint8_t dnsOptions,
  InterfaceId intf
)

Подключитесь к узлу Weave, используя идентификатор узла и/или список имен хостов и портов.

Подробности
Параметры
[in] peerNodeId
Идентификатор узла однорангового узла.
[in] authMode
Режим аутентификации, используемый для соединения.
[in] hostPortList
Список имен хостов и портов.
[in] dnsOptions
Целочисленное значение, управляющее тем, как выполняется разрешение имени хоста. Значение должно быть ИЛИ одного или нескольких значений из перечисления #::nl::Inet::DNSOptions.
[in] intf
Необязательный интерфейс, используемый для подключения к одноранговому узлу, по умолчанию — INET_NULL_INTERFACEID .
Возвращаемые значения
WEAVE_NO_ERROR
при успешном инициировании соединения с партнером.
WEAVE_ERROR_INCORRECT_STATE
если состояние WeaveConnection неверно.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
если запрошенный режим аутентификации не поддерживается.
WEAVE_ERROR_INVALID_ADDRESS
если адрес назначения не может быть выведен из идентификатора узла.
other
Ошибки уровня Inet, генерируемые операциями подключения TCPEndPoint.

ОтключитьKeepAlive

WEAVE_ERROR DisableKeepAlive(
  void
)

WeaveConnection::DisableKeepAlive .

Отключите проверки активности TCP в базовом TCP-соединении.

Примечание. Этот метод можно вызвать только для соединения Weave, поддерживаемого TCP-соединением. Этот метод можно вызвать только тогда, когда соединение находится в состоянии, позволяющем отправку.

Этот метод ничего не делает, если для соединения не включены проверки активности.

Подробности
Возвращаемые значения
WEAVE_NO_ERROR
при успешном отключении проверок активности TCP в соединении.
WEAVE_ERROR_NOT_IMPLEMENTED
если эта функция вызывается для несовместимой конечной точки (например, BLE) на сетевом уровне.
WEAVE_ERROR_INCORRECT_STATE
если объект WeaveConnection не находится в правильном состоянии для отправки сообщений.
other
Ошибки уровня Inet, связанные с конечной точкой TCP, позволяют поддерживать активность.

Отключить получение

void DisableReceive(
  void
)

Отключите получение через этот WeaveConnection .

Этот метод используется приложением, чтобы указать, что оно не готово получать любые поступающие данные через TCP-соединение. Чтобы повторно включить получение, приложению необходимо вызвать EnableReceive(), чтобы позволить WeaveConnection передать любые полученные данные, вызвав соответствующие обратные вызовы.

См. также:
ВключитьReceive()

ВключитьKeepAlive

WEAVE_ERROR EnableKeepAlive(
  uint16_t interval,
  uint16_t timeoutCount
)

WeaveConnection::EnableKeepAlive .

Включите проверки активности TCP в базовом TCP-соединении.

Примечание. Этот метод можно вызвать только для соединения Weave, поддерживаемого TCP-соединением. -Этот метод можно вызвать только тогда, когда соединение находится в состоянии, позволяющем отправку.

Подробности
Параметры
[in] interval
Интервал (в секундах) между проверками активности. Это значение также контролирует время между отправкой последнего пакета данных и передачей первого теста проверки активности.
[in] timeoutCount
Максимальное количество неподтвержденных тестов, прежде чем соединение будет считаться неудачным.

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

Подробности
Возвращаемые значения
WEAVE_NO_ERROR
при успешном включении проверок активности TCP в соединении.
WEAVE_ERROR_NOT_IMPLEMENTED
если эта функция вызывается для несовместимой конечной точки (например, BLE) на сетевом уровне.
WEAVE_ERROR_INCORRECT_STATE
если объект WeaveConnection не находится в правильном состоянии для отправки сообщений.
other
Ошибки уровня Inet, связанные с конечной точкой TCP, позволяют поддерживать активность.

Включитьполучение

void EnableReceive(
  void
)

Включите получение через WeaveConnection .

Этот метод используется приложением, чтобы указать объекту WeaveConnection , что он готов получать любые данные, поступающие по TCP-соединению.

См. также:
ОтключитьReceive()

GetPeerAddressInfo

WEAVE_ERROR GetPeerAddressInfo(
  IPPacketInfo & addrInfo
)

Получите информацию об IP-адресе узла.

Подробности
Параметры
[out] addrInfo
Ссылка на объект IPPacketInfo.
Возвращаемые значения
WEAVE_NO_ERROR
Об успехе.
WEAVE_ERROR_NOT_IMPLEMENTED
Если эта функция вызывается для несовместимой конечной точки (например, BLE) на сетевом уровне.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  size_t bufSize
) const 

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

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

ПолучитьTCPEndPoint

TCPEndPoint * GetTCPEndPoint(
  void
) const 

IsIncoming

bool IsIncoming(
  void
) const 

Логид

uint16_t LogId(
  void
) const 

Выпускать

void Release(
  void
)

Уменьшите счетчик ссылок на объекте WeaveConnection .

Метод Release() уменьшает счетчик ссылок, связанный с объектом WeaveConnection . Если это приводит к тому, что счетчик ссылок достигает нуля, соединение закрывается и объект соединения освобождается. В этом случае приложение не должно больше взаимодействовать с объектом.

СбросUserTimeout

WEAVE_ERROR ResetUserTimeout(
  void
)

WeaveConnection::ResetUserTimeout .

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

Примечание. Этот метод можно вызвать только для соединения Weave, поддерживаемого TCP-соединением. -Этот метод можно вызвать только тогда, когда соединение находится в состоянии, позволяющем отправлять.

-Этот метод ничего не делает, если для соединения не установлен тайм-аут пользователя.

Подробности
Возвращаемые значения
WEAVE_NO_ERROR
при успешном сбросе тайм-аута пользователя TCP при соединении.
WEAVE_ERROR_NOT_IMPLEMENTED
если эта функция вызывается для несовместимой конечной точки (например, BLE) на сетевом уровне.
WEAVE_ERROR_INCORRECT_STATE
если объект WeaveConnection не находится в правильном состоянии для отправки сообщений.
other
Ошибки уровня Inet, связанные со сбросом конечной точкой TCP тайм-аута пользователя TCP.

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

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Отправьте сообщение Weave через установленное соединение.

Подробности
Параметры
[in] msgInfo
Указатель на объект WeaveMessageInfo .
[in] msgBuf
Указатель на объект PacketBuffer, содержащий пакет для отправки.
Возвращаемые значения
WEAVE_NO_ERROR
при успешной отправке сообщения на сетевой уровень.
WEAVE_ERROR_INCORRECT_STATE
если объект WeaveConnection не находится в правильном состоянии для отправки сообщений.
WEAVE_ERROR_INVALID_DESTINATION_NODE_ID
если идентификатор узла назначения не указан.
WEAVE_ERROR_SENDING_BLOCKED
если сообщение слишком длинное для отправки.
other
Ошибки уровня Inet, связанные с конкретными операциями отправки конечной точки.

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

WEAVE_ERROR SendTunneledMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Функция для отправки туннелированного пакета через соединение Weave.

Отправьте туннелированное сообщение Weave через установленное соединение.

Подробности
Параметры
[in] msgInfo
Указатель на объект WeaveMessageInfo .
[in] msgBuf
Указатель на объект PacketBuffer, содержащий пакет для отправки.
Возвращаемые значения
WEAVE_NO_ERROR
при успешной отправке сообщения на сетевой уровень.
WEAVE_ERROR_INCORRECT_STATE
если объект WeaveConnection не находится в правильном состоянии для отправки сообщений.
WEAVE_ERROR_INVALID_DESTINATION_NODE_ID
если идентификатор узла назначения не указан.
WEAVE_ERROR_SENDING_BLOCKED
если сообщение слишком длинное для отправки.
other
Ошибки уровня Inet, связанные с конкретными операциями отправки конечной точки.

Сетконнекттаймаут

void SetConnectTimeout(
  const uint32_t connTimeoutMsecs
)

Установите тайм-аут для успешного подключения Connect или возврата ошибки.

Подробности
Параметры
[in] connTimeoutMsecs

SetIdleTimeout

WEAVE_ERROR SetIdleTimeout(
  uint32_t timeoutMS
)

Установите тайм-аут простоя для соединения базового сетевого уровня.

Подробности
Параметры
[in] timeoutMS
таймаут в миллисекундах.
Возвращаемые значения
WEAVE_NO_ERROR
при успешной установке таймаута простоя соединения.
WEAVE_ERROR_INCORRECT_STATE
если объект WeaveConnection не находится в правильном состоянии для получения сообщений.

SetIncoming

void SetIncoming(
  bool val
)

SetUserTimeout

WEAVE_ERROR SetUserTimeout(
  uint32_t userTimeoutMillis
)

WeaveConnection::SetUserTimeout .

Установите параметр сокета таймаута пользователя TCP.

Когда значение больше 0, оно определяет максимальное время в миллисекундах, в течение которого передаваемые данные могут оставаться неподтвержденными, прежде чем TCP принудительно закроет соответствующее соединение. Если значение параметра указано как 0, TCP будет использовать системное значение по умолчанию. Дополнительную информацию см. в RFC 5482.

Подробности
Параметры
[in] userTimeoutMillis
Значение тайм-аута пользователя TCP в миллисекундах.

Примечание. Этот метод можно вызвать только для соединения Weave, поддерживаемого TCP-соединением. -Этот метод можно вызвать только тогда, когда соединение находится в состоянии, позволяющем отправку.

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

Подробности
Возвращаемые значения
WEAVE_NO_ERROR
при успешной установке тайм-аута пользователя TCP для соединения.
WEAVE_ERROR_NOT_IMPLEMENTED
если эта функция вызывается для несовместимой конечной точки (например, BLE) на сетевом уровне.
WEAVE_ERROR_INCORRECT_STATE
если объект WeaveConnection не находится в правильном состоянии для отправки сообщений.
other
Ошибки уровня Inet, связанные с настройкой конечной точки TCP и тайм-аутом пользователя TCP.

Неисправность

WEAVE_ERROR Shutdown(
  void
)

Выполняет корректное завершение работы TCP-отправки, гарантируя, что все исходящие данные были отправлены и получены TCP-стеком однорангового узла.

В большинстве (но не во всех) реализациях TCP получение сообщения об отключении отправки приведет к тому, что удаленный хост также отключит свою сторону соединения, что приведет к закрытию соединения. Последующий вызов Close() завершит работу WeaveConnection .

Подробности
Возвращаемые значения
WEAVE_NO_ERROR
при успешном завершении TCP-соединения.
WEAVE_ERROR_NOT_IMPLEMENTED
если эта функция вызывается для несовместимой конечной точки (например, BLE) на сетевом уровне.
WEAVE_ERROR_INCORRECT_STATE
если объект WeaveConnection не находится в правильном состоянии перед началом завершения работы.
other
Ошибки уровня Интернета, связанные с конкретными операциями завершения работы конечной точки.
См. также:
Закрыть() и Прервать() .