nl:: Weave:: Profiles:: DataManagement_Legacy:: Binding
#include <src/lib/profiles/data-management/Legacy/Binding.h>
Класс Binding управляет состоянием связи от имени объекта приложения, использующего Weave.
Сводка
Когда приложение хочет использовать Weave для связи с удаленным объектом, существует множество вариантов. Класс Binding собирает эти параметры и упорядочивает их таким образом, чтобы простые вещи были простыми, а более сложные – по крайней мере, понятными. В частности, вы узнаете:
- одноадресная передача данных по протоколу UDP с известным узлом.
- Широковещательная рассылка UDP с узлом any.
- одноадресная связь WRMP с известным одноранговым узлом.
- TCP-соединения с известным узлом.
- TCP-коммуникации с известной конечной точкой сервиса, использующие экземпляр менеджера сервиса для настройки.
- TCP-коммуникации на основе предварительно установленного соединения.
Конструкторы и деструкторы |
|
|---|---|
Binding(void)
Конструктор по умолчанию для объектов Binding.
|
|
~Binding(void)
Деструктор для объектов Binding.
|
Общедоступные типы |
|
|---|---|
@165{
|
enum : перечисление Набор состояний объекта Binding. |
Общедоступные атрибуты |
|
|---|---|
mAuthMode
|
WeaveAuthMode
Режим аутентификации Weave, который будет использоваться.
|
mConnection
|
Указатель на подключение Weave, которое сейчас используется в этой привязке.
|
mEngine
|
Указатель на объект ProtocolEngine, связанный с этим объектом Binding.
|
mPeerNodeId
|
uint64_t
64-битный идентификатор узла цели связывания.
|
mServiceMgr
|
Указатель на объект ServiceManager (необязательно), который будет использоваться для завершения привязки.
|
mState
|
uint8_t
Текущее состояние объекта Binding.
|
mTransport
|
uint8_t
Транспорт, который будет использоваться для завершения этой привязки.
|
Общественные функции |
|
|---|---|
CompleteConfirm(WeaveConnection *aConnection)
|
void
Обработка подтверждения запроса на привязку.
|
CompleteConfirm(StatusReport & aReport)
|
void
Обработка сбоя запроса на привязку.
|
CompleteConfirm(void)
|
void
Обработка подтверждения запроса на привязку.
|
CompleteRequest(ProtocolEngine *aEngine)
|
Запрос на завершение привязки.
|
Connect(WeaveConnection *aConnection)
|
Завершите привязку TCP, предоставив завершенное подключение.
|
Finalize(void)
|
void
"Отменить" привязку и освободить ее.
|
Finalize(WEAVE_ERROR aErr)
|
void
"Отменить" привязку и освободить ее.
|
Free(void)
|
void
Очистить состояние привязки.
|
GetExchangeCtx(WeaveExchangeManager *aExchangeMgr, void *aAppState)
|
Создайте объект ExchangeContext из Binding.
|
IncompleteIndication(StatusReport & aReport)
|
void
Обработка ошибки привязки.
|
Init(const uint64_t & aPeerNodeId)
|
Инициализируйте Binding, указав только идентификатор узла.
|
Init(const uint64_t & aPeerNodeId, uint8_t aTransport)
|
Инициализируйте объект Binding на основе идентификатора партнера и транспорта.
|
Init(const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
|
Инициализируйте объект Binding для конечной точки сервиса.
|
Init(WeaveConnection *aConnection)
|
Инициализируйте объект Binding с помощью WeaveConnection.
|
IsComplete(void)
|
bool
Проверьте, завершено ли связывание.
|
IsFree(void)
|
bool
Проверьте, свободна ли привязка.
|
UncompleteRequest(void)
|
void
Привязка не завершена.
|
UncompleteRequest(WEAVE_ERROR aErr)
|
void
Привязка не завершена.
|
Общедоступные типы
@165
@165
Набор состояний объекта Binding.
| Свойства | |
|---|---|
kState_Complete
|
Состояние привязки, которая завершена и готова к использованию. |
kState_Completing
|
Состояние привязки, которая находится в процессе завершения. |
kState_Incomplete
|
Начальное (и конечное) состояние привязки. |
Общедоступные атрибуты
mAuthMode
WeaveAuthMode mAuthMode
Режим аутентификации Weave, который будет использоваться.
(READ_ONLY)
Это режим аутентификации, используемый во всех сообщениях, регулируемых этой привязкой.
mConnection
WeaveConnection * mConnection
Указатель на подключение Weave, которое сейчас используется в этой привязке.
(ТОЛЬКО ЧТЕНИЕ)
Привязки TCP могут быть инициализированы с подключением сразу или могут выделять его во время завершения.
mEngine
ProtocolEngine * mEngine
Указатель на объект ProtocolEngine, связанный с этим объектом Binding.
Привязка обычно выполняется в отношении определенного механизма протокола, который в основном используется как способ доступа к MessageLayer. Здесь мы отслеживаем их.
mPeerNodeId
uint64_t mPeerNodeId
64-битный идентификатор узла цели связывания.
(ТОЛЬКО ЧТЕНИЕ)
У каждого объекта Binding есть целевой объект, который указывается в этом поле. Помимо идентификатора узла Weave, это может быть название конечной точки сервиса.
mServiceMgr
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager * mServiceMgr
Указатель на объект ServiceManager (необязательно), который будет использоваться для завершения привязки.
(ТОЛЬКО ЧТЕНИЕ)
При привязке к сервису Weave во время инициализации вместо идентификатора узла Weave можно указать 64-битный идентификатор конечной точки сервиса. В этом случае для завершения привязки также требуется объект ServiceManager. Для обычных привязок TCP или WRMP объект ServiceManager не требуется.
mState
uint8_t mState
Текущее состояние объекта Binding.
Одновременно может выполняться только одна операция complete. Если вы попытаетесь выполнить ее для уже завершенной привязки, будет сразу вызвана функция confirm. Переменная состояния ниже отслеживает текущее состояние и действует как блокировка.
mTransport
uint8_t mTransport
Транспорт, который будет использоваться для завершения этой привязки.
(ТОЛЬКО ЧТЕНИЕ)
Возможные значения для mTransport определены в DMConstants.h.
Общественные функции
Привязки
Binding( void )
Конструктор по умолчанию для объектов Binding.
Очищает все внутреннее состояние.
CompleteConfirm
void CompleteConfirm( WeaveConnection *aConnection )
Обработка подтверждения запроса на привязку.
| Сведения | |||
|---|---|---|---|
| Параметры |
|
||
CompleteConfirm
void CompleteConfirm( StatusReport & aReport )
Обработка сбоя запроса на привязку.
| Сведения | |||
|---|---|---|---|
| Параметры |
|
||
CompleteConfirm
void CompleteConfirm( void )
Обработка подтверждения запроса на привязку.
CompleteRequest
WEAVE_ERROR CompleteRequest( ProtocolEngine *aEngine )
Запрос на завершение привязки.
Привязка, по крайней мере для привязок, требующих TCP, выполняется в отношении определенного объекта ProtocolEngine, который предоставляет доступ к экземпляру ExchangeManager.
| Сведения | |||||||
|---|---|---|---|---|---|---|---|
| Параметры |
|
||||||
| Возвращаемые значения |
|
||||||
| Возвраты |
В противном случае при попытке подключения возвращается ошибка WEAVE_ERROR.
|
||||||
Подключить
WEAVE_ERROR Connect( WeaveConnection *aConnection )
Завершите привязку TCP, предоставив завершенное подключение.
Новую привязку TCP нельзя использовать, пока она не будет завершена. Обычно это делается по запросу, когда приложение пытается использовать привязку для отправки сообщений, но также может быть явно выполнено путем предоставления подключения Weave.
| Сведения | |||||||
|---|---|---|---|---|---|---|---|
| Параметры |
|
||||||
| Возвращаемые значения |
|
||||||
Завершить
void Finalize( void )
"Отменить" привязку и освободить ее.
Привязки могут иметь состояние, требующее очистки, например закрытие соединения, которое обрабатывается методом Uncomplete() в дополнение к состоянию, которое просто очищается до исходного состояния методом Free(). Этот метод, в основном для удобства, вызывает оба.
См. также:Finalize(WEAVE_ERROR)
Завершить
void Finalize( WEAVE_ERROR aErr )
"Отменить" привязку и освободить ее.
Привязки могут иметь состояние, требующее очистки, например закрытие соединения, которое обрабатывается методом Uncomplete() в дополнение к состоянию, которое просто очищается до исходного состояния методом Free(). Этот метод, в основном для удобства, вызывает оба.
| Сведения | |||
|---|---|---|---|
| Параметры |
|
||
Finalize(void)
Бесплатно
void Free( void )
Очистить состояние привязки.
Безусловно возвращает все состояния привязки в исходное состояние.
GetExchangeCtx
ExchangeContext * GetExchangeCtx( WeaveExchangeManager *aExchangeMgr, void *aAppState )
Создайте объект ExchangeContext из Binding.
| Сведения | |||||
|---|---|---|---|---|---|
| Параметры |
|
||||
| Возвраты |
Указатель на объект ExchangeContext или NULL в случае сбоя.
|
||||
IncompleteIndication
void IncompleteIndication( StatusReport & aReport )
Обработка ошибки привязки.
Этот метод вызывается и, в свою очередь, вызывает обработчики более высокого уровня, когда привязка завершается сбоем ПОСЛЕ завершения, то есть после вызова CompleteConfirm() со статусом, указывающим на успех.
| Сведения | |||
|---|---|---|---|
| Параметры |
|
||
CompleteConfirm(StatusReport &aReport).
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
Инициализируйте Binding, указав только идентификатор узла.
В результате будет выполнена привязка к настроенному транспорту по умолчанию.
| Сведения | |||||
|---|---|---|---|---|---|
| Параметры |
|
||||
| Возвращаемые значения |
|
||||
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId, uint8_t aTransport )
Инициализируйте объект Binding на основе идентификатора партнера и транспорта.
| Сведения | |||||
|---|---|---|---|---|---|
| Параметры |
|
||||
| Возвращаемые значения |
|
||||
Init
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
Инициализируйте объект Binding для конечной точки сервиса.
Так вы привязываете устройство к определенной конечной точке в сервисе Nest. Для привязки такого типа требуется многоэтапный процесс завершения, который может включать заполнение или обновление локального кеша каталога служб. По большей части этот процесс скрыт от приложения, но это означает, что ошибки, возникающие позже в процессе, могут быть доставлены, обычно через соответствующий обратный вызов "подтверждения", после (иногда намного позже) исходного запроса на использование (и завершение) привязки.
| Сведения | |||||||
|---|---|---|---|---|---|---|---|
| Параметры |
|
||||||
| Возвращаемые значения |
|
||||||
Init
WEAVE_ERROR Init( WeaveConnection *aConnection )
Инициализируйте объект Binding с помощью WeaveConnection.
| Сведения | |||||
|---|---|---|---|---|---|
| Параметры |
|
||||
| Возвращаемые значения |
|
||||
IsComplete
bool IsComplete( void )
Проверьте, завершено ли связывание.
| Сведения | |
|---|---|
| Возвраты |
true, если оно завершено, и false, если нет.
|
CompleteRequest(ProtocolEngine *aEngine)
IsFree
bool IsFree( void )
Проверьте, свободна ли привязка.
"Свободный" в данном контексте означает, что у него есть определенный идентификатор узла. IsFree() означает, что для объекта был вызван метод Free() и с тех пор объект не использовался.
| Сведения | |
|---|---|
| Возвраты |
true, если привязка бесплатная, и false в противном случае.
|
UncompleteRequest
void UncompleteRequest( void )
Привязка не завершена.
После вызова этого метода привязка должна находиться в состоянии "неполная". Кроме того, необходимо очистить все связанные состояния, не содержащиеся в самой привязке, например TCP-подключение. Приложения могут вызывать UncompleteRequest() в рамках очистки при ошибке.
См. также:UncompleteRequest(WEAVE_ERROR )
UncompleteRequest
void UncompleteRequest( WEAVE_ERROR aErr )
Привязка не завершена.
После вызова этого метода привязка должна находиться в состоянии "неполная". Кроме того, необходимо очистить все связанные состояния, не содержащиеся в самой привязке, например TCP-подключение. Приложения могут вызывать UncompleteRequest() в рамках очистки при ошибке.
| Сведения | |||
|---|---|---|---|
| Параметры |
|
||
UncompleteRequest(void)
~Binding
virtual ~Binding( void )
Деструктор для объектов Binding.
Очищает все внутреннее состояние и при необходимости закрывает открытые подключения.