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