нл:: Переплетение:: Профили:: DataManagement_Legacy:: ПротоколEngine

Это абстрактный класс.

#include <src/lib/profiles/data-management/Legacy/ProtocolEngine.h>

Класс механизма протокола WDM.

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

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

Наследование

Прямые известные подклассы:
  nl::Weave::Profiles::DataManagement_Legacy::DMClient
  nl::Weave::Profiles::DataManagement_Legacy::DMPublisher

Конструкторы и деструкторы

ProtocolEngine (void)
~ProtocolEngine (void)

Защищенные атрибуты

mBindingTable [kBindingTableSize]
У ProtocolEngine есть таблица привязок, которая, если механизм будет отвечать за что-то помимо простого получения широковещательных уведомлений, вероятно, должна содержать хотя бы одну запись.
mExchangeMgr
mResponseTimeout
uint32_t
mTransactionTable [kTransactionTableSize]

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

BindConfirm ( Binding *aBinding)
virtual WEAVE_ERROR
Обработать подтверждение того, что запрос на привязку был успешно выполнен.
BindConfirm ( Binding *aBinding, StatusReport & aReport)
virtual WEAVE_ERROR
Обработка подтверждения того, что запрос на привязку не выполнен.
BindRequest (const uint64_t & aPeerNodeId, uint8_t aTransport)
Запросите привязку, используя известный идентификатор однорангового узла и спецификатор транспорта.
BindRequest (const uint64_t & aPeerNodeId)
Привяжитесь к известному узлу, используя транспорт по умолчанию.
BindRequest ( nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
BindRequest ( WeaveConnection *aConnection)
Запросите привязку, используя активное соединение Weave.
IncompleteIndication ( Binding *aBinding, StatusReport & aReport)
virtual void
Обработка индикации того, что привязка не удалась.
IncompleteIndication (const uint64_t & aPeerNodeId, StatusReport & aReport)=0
virtual void
Обработка индикации того, что привязка стала неполной.
Init ( WeaveExchangeManager *aExchangeMgr)
virtual WEAVE_ERROR
Init ( WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout)
virtual WEAVE_ERROR
UnbindRequest (const uint64_t & aPeerNodeId)
void
Запросить отмену привязки и ее удаление из таблицы привязок.
UnbindRequest (const uint64_t & aPeerNodeId, WEAVE_ERROR aErr)
void
Запросить отмену привязки и ее удаление из таблицы привязок.

Защищенные функции

Clear (void)
void
ClearBindingTable (void)
void
ClearTransactionTable (void)
void
DequeueTransaction ( DMTransaction *aTransaction)
void
EnqueueTransaction ( DMTransaction *aTransaction, Binding *aBinding)
EnqueueTransaction ( DMTransaction *aTransaction)
FailTransactions ( Binding *aBinding, StatusReport & aReport)
bool
Finalize (void)
virtual void
FinalizeBindingTable (void)
void
FinalizeTransactionTable (void)
void
FinalizeTransactions ( Binding *aBinding)
void
FromExchangeCtx ( ExchangeContext *aExchangeCtx)
GetBinding (const uint64_t & aPeerNodeId)
NewBinding (void)
StartTransaction ( DMTransaction *aTransaction, Binding *aBinding)
StartTransaction ( DMTransaction *aTransaction)
StatusResponse ( ExchangeContext *aExchangeCtx, StatusReport & aStatus)

Классы

nl:: Weave:: Profiles:: DataManagement_Legacy:: ProtocolEngine:: DMTransaction

Защищенные атрибуты

mBindingTable

Binding mBindingTable[kBindingTableSize]

У ProtocolEngine есть таблица привязок, которая, если механизм будет отвечать за что-то помимо простого получения широковещательных уведомлений, вероятно, должна содержать хотя бы одну запись.

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

В спецификации WDM есть понятие «привязки по умолчанию», то есть куда отправляются сообщения, если не указан явный пункт назначения. В основном это будет использоваться в очень простых устройствах с одной привязкой или небольшим количеством привязок, а для других целей это будет просто первая сформированная привязка.

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mResponseTimeout

uint32_t mResponseTimeout

мтранзакционтабле

TransactionTableEntry mTransactionTable[kTransactionTableSize]

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

ПривязатьПодтвердить

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding
)

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

После завершения привязки механизм протокола просматривает таблицу транзакций и запускает все транзакции, зависящие от этой привязки.

Подробности
Параметры
[in] aBinding
Указатель на завершенную привязку.
Возврат
WEAVE_NO_ERROR В случае успеха. В противном случае верните WEAVE_ERROR, отражающий невозможность начать транзакцию.

ПривязатьПодтвердить

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding,
  StatusReport & aReport
)

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

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

Подробности
Параметры
[in] aBinding
Указатель на неудачную привязку.
[in] aReport
Ссылка на объект StatusReport с подробным описанием причины сбоя.
Возврат

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

Запросите привязку, используя известный идентификатор однорангового узла и спецификатор транспорта.

Учитывая идентификатор однорангового узла и спецификацию транспорта, этот запрос устанавливает привязку к этому одноранговому узлу. Бидинг потребует дополнительного завершения ТОЛЬКО если транспортом является TCP. Если привязка к одноранговому узлу уже существует, она используется повторно.

Подробности
Параметры
[in] aPeerNodeId
Ссылка на 64-битный идентификатор узла однорангового объекта, который является целью привязки.
[in] aTransport
Транспорт, который можно использовать.
Возврат
WEAVE_NO_ERROR в случае успеха или WEAVE_ERROR_NO_MEMORY , если таблица привязки заполнена. В противном случае верните WEAVE_ERROR , отражающий неудачную инициализацию привязки.
См. также:
Вариант WeaveTransport

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId
)

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

Подробности
Параметры
[in] aPeerNodeId
Ссылка на 64-битный идентификатор узла однорангового объекта, который является целью привязки.
Возврат
WEAVE_NO_ERROR В случае успеха. В противном случае верните WEAVE_ERROR , отражающий сбой операции привязки.

BindRequest

WEAVE_ERROR BindRequest(
  nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr,
  WeaveAuthMode aAuthMode
)

BindRequest

WEAVE_ERROR BindRequest(
  WeaveConnection *aConnection
)

Запросите привязку, используя активное соединение Weave.

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

Подробности
Параметры
[in] aConnection
Указатель на соединение Weave, которое будет использоваться привязкой.
Возврат
WEAVE_NO_ERROR в случае успеха или WEAVE_ERROR_NO_MEMORY , если таблица привязки заполнена. В противном случае верните ошибку, отражающую неудачную инициализацию привязки.

Неполная индикация

virtual void IncompleteIndication(
  Binding *aBinding,
  StatusReport & aReport
)

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

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

Подробности
Параметры
[in] aBinding
Указатель на неудачную привязку.
[in] aReport
Ссылка на объект StatusReport с подробным описанием причины сбоя.

Неполная индикация

virtual void IncompleteIndication(
  const uint64_t & aPeerNodeId,
  StatusReport & aReport
)=0

Обработка индикации того, что привязка стала неполной.

Более высокие уровни, которые хотят получать информацию об ошибке привязки, должны использовать этот метод, который просто передает идентификатор узла вместе с отчетом о состоянии. Фактически, поскольку этот метод является виртуальной пустотой, любой подкласс DMClient или DMPublisher должен предоставлять реализацию.

Подробности
Параметры
[in] aPeerNodeId
Ссылка на 64-битный идентификатор однорангового узла или конечной точки службы, которая является целью неудачной привязки.
[in] aReport
Ссылка на объект StatusReport с подробным описанием причины сбоя.

Инициализировать

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr
)

Инициализировать

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr,
  uint32_t aResponseTimeout
)

ПротоколEngine

 ProtocolEngine(
  void
)

Отвязать запрос

void UnbindRequest(
  const uint64_t & aPeerNodeId
)

Запросить отмену привязки и ее удаление из таблицы привязок.

Когда привязка «несвязана», все транзакции, которые в данный момент от нее зависят, также должны быть удалены. Этот метод автоматически завершает все транзакции с этой привязкой.

Подробности
Параметры
[in] aPeerNodeId
Ссылка на 64-битный идентификатор узла или конечную точку службы, которая идентифицирует привязку.
См. также:
UnbindRequest (const uint64_t, WEAVE_ERROR)

Отвязать запрос

void UnbindRequest(
  const uint64_t & aPeerNodeId,
  WEAVE_ERROR aErr
)

Запросить отмену привязки и ее удаление из таблицы привязок.

Когда привязка «несвязана», все транзакции, которые в данный момент от нее зависят, также должны быть удалены. Этот метод автоматически завершает все транзакции с этой привязкой.

Подробности
Параметры
[in] aPeerNodeId
Ссылка на 64-битный идентификатор узла или конечную точку службы, которая идентифицирует привязку.
[in] aErr
WEAVE_NO_ERROR, если для этого запроса на отмену нет конкретной причины, в противном случае причина ошибки будет передана.
См. также:
UnbindRequest (const uint64_t)

~Протокольный движок

virtual  ~ProtocolEngine(
  void
)

Защищенные функции

Прозрачный

void Clear(
  void
)

ClearBindingTable

void ClearBindingTable(
  void
)

Очиститьтранзакционтабле

void ClearTransactionTable(
  void
)

Удаление транзакции из очереди

void DequeueTransaction(
  DMTransaction *aTransaction
)

EnqueueTransaction

WEAVE_ERROR EnqueueTransaction(
  DMTransaction *aTransaction,
  Binding *aBinding
)

EnqueueTransaction

WEAVE_ERROR EnqueueTransaction(
  DMTransaction *aTransaction
)

Фэйлтранзакции

bool FailTransactions(
  Binding *aBinding,
  StatusReport & aReport
)

Завершить

virtual void Finalize(
  void
)

FinalizeBindingTable

void FinalizeBindingTable(
  void
)

Финализетранзакционтабле

void FinalizeTransactionTable(
  void
)

Финализетранзакции

void FinalizeTransactions(
  Binding *aBinding
)

Фромексчанжекткс

Binding * FromExchangeCtx(
  ExchangeContext *aExchangeCtx
)

Получить привязку

Binding * GetBinding(
  const uint64_t & aPeerNodeId
)

Новая привязка

Binding * NewBinding(
  void
)

Старттранзакция

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction,
  Binding *aBinding
)

Старттранзакция

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction
)

СтатусОтвет

WEAVE_ERROR StatusResponse(
  ExchangeContext *aExchangeCtx,
  StatusReport & aStatus
)