nl :: Tecer:: Perfis :: DataManagement_Legacy :: ProtocolEngine

Esta é uma classe abstrata.

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

A classe de mecanismo do protocolo WDM.

Resumo

Uma entidade de gerenciamento de dados, cliente ou editor, possui um componente de mecanismo de protocolo e um componente de gerenciador de dados. Essa classe abstrata representa os recursos comuns do mecanismo de protocolo.

Herança

Subclasses diretamente conhecidas:
  nl :: Weave :: Profiles :: DataManagement_Legacy :: DMClient
  nl :: Weave :: Profiles :: DataManagement_Legacy :: DMPublisher

Construtores e Destruidores

ProtocolEngine (void)
~ProtocolEngine (void)

Atributos protegidos

mBindingTable [kBindingTableSize]
O ProtocolEngine tem uma tabela de ligação que, se o motor vai ser responsável por qualquer coisa além de simplesmente receber notificações de transmissão, provavelmente precisa conter pelo menos uma entrada.
mExchangeMgr
mResponseTimeout
uint32_t
mTransactionTable [kTransactionTableSize]

Funções públicas

BindConfirm ( Binding *aBinding)
virtual WEAVE_ERROR
Trate a confirmação de que uma solicitação de vinculação foi concluída com êxito.
BindConfirm ( Binding *aBinding, StatusReport & aReport)
virtual WEAVE_ERROR
Trate a confirmação de que uma solicitação de ligação falhou.
BindRequest (const uint64_t & aPeerNodeId, uint8_t aTransport)
Solicite uma ligação usando um ID de nó de mesmo nível conhecido e especificador de transporte.
BindRequest (const uint64_t & aPeerNodeId)
Ligue-se a um par conhecido usando o transporte padrão.
BindRequest ( nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
BindRequest ( WeaveConnection *aConnection)
Solicite uma ligação usando uma conexão Weave ativa.
IncompleteIndication ( Binding *aBinding, StatusReport & aReport)
virtual void
Lidar com uma indicação de que uma ligação falhou.
IncompleteIndication (const uint64_t & aPeerNodeId, StatusReport & aReport)=0
virtual void
Lidar com uma indicação de que uma encadernação ficou incompleta.
Init ( WeaveExchangeManager *aExchangeMgr)
virtual WEAVE_ERROR
Init ( WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout)
virtual WEAVE_ERROR
UnbindRequest (const uint64_t & aPeerNodeId)
void
Solicite que uma ligação seja desfeita e removida da tabela de ligação.
UnbindRequest (const uint64_t & aPeerNodeId, WEAVE_ERROR aErr)
void
Solicite que uma ligação seja desfeita e removida da tabela de ligação.

Funções protegidas

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)

Aulas

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

Atributos protegidos

mBindingTable

Binding mBindingTable[kBindingTableSize]

O ProtocolEngine tem uma tabela de ligação que, se o motor vai ser responsável por qualquer coisa além de simplesmente receber notificações de transmissão, provavelmente precisa conter pelo menos uma entrada.

As ligações são geralmente indexadas pelo ID do nó. O que isso significa é que cada mecanismo pode ter apenas uma única ligação a um determinado terminal de serviço.

A especificação WDM tem essa noção de "ligação padrão", que é o lugar para onde as mensagens vão se nenhum destino explícito for fornecido. Isso será usado principalmente em dispositivos muito simples com uma única encadernação ou um pequeno número de encadernações e, para outros fins, será apenas a primeira encadernação formada.

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mResponseTimeout

uint32_t mResponseTimeout

mTransactionTable

TransactionTableEntry mTransactionTable[kTransactionTableSize]

Funções públicas

BindConfirm

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding
)

Trate a confirmação de que uma solicitação de vinculação foi concluída com êxito.

Depois que uma ligação é concluída, o mecanismo de protocolo percorre a tabela de transações e inicia todas as transações que dependem dessa ligação.

Detalhes
Parâmetros
[in] aBinding
Um ponteiro para a ligação concluída.
Devoluções
WEAVE_NO_ERROR Em caso de sucesso. Caso contrário retornar um WEAVE_ERROR refletindo uma incapacidade de iniciar uma transação.

BindConfirm

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

Trate a confirmação de que uma solicitação de vinculação falhou.

Quando uma solicitação de ligação falha, o mecanismo de protocolo deve passar pela tabela de transações e falhar em todas as transações, dependendo da ligação.

Detalhes
Parâmetros
[in] aBinding
Um ponteiro para a ligação com falha.
[in] aReport
Uma referência a um objeto StatusReport detalhando o motivo da falha.
Devoluções

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

Solicite uma ligação usando um ID de nó de mesmo nível conhecido e especificador de transporte.

Dado um ID de nó de mesmo nível e uma especificação de transporte, essa solicitação configura uma ligação para esse parceiro. A licitação exigirá complementação adicional SOMENTE se o transporte for TCP. Se uma ligação com o par já estiver presente, ela será reutilizada.

Detalhes
Parâmetros
[in] aPeerNodeId
Uma referência ao ID do nó de 64 bits da entidade de mesmo nível que é o destino de ligação.
[in] aTransport
O transporte a ser usado.
Devoluções
WEAVE_NO_ERROR em caso de sucesso ou WEAVE_ERROR_NO_MEMORY se a tabela de ligação está cheio. Caso contrário retornar um WEAVE_ERROR refletindo uma falha para inicializar a ligação.
Veja também:
WeaveTransportOption

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId
)

Ligue-se a um par conhecido usando o transporte padrão.

Detalhes
Parâmetros
[in] aPeerNodeId
Uma referência ao ID de nó de 64 bits da entidade de mesmo nível que é o destino de ligação.
Devoluções
WEAVE_NO_ERROR Em caso de sucesso. Caso contrário retornar um WEAVE_ERROR refletindo o fracasso da operação de ligação.

BindRequest

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

BindRequest

WEAVE_ERROR BindRequest(
  WeaveConnection *aConnection
)

Solicite uma ligação usando uma conexão Weave ativa.

Uma ligação também pode ser estabelecida usando uma conexão existente e aberta. Observe que as ligações estabelecidas dessa maneira não requerem complementação adicional.

Detalhes
Parâmetros
[in] aConnection
Um Ponteiro para uma conexão Weave a ser usado pela ligação.
Devoluções
WEAVE_NO_ERROR em caso de sucesso ou WEAVE_ERROR_NO_MEMORY se a tabela de ligação está cheio. Caso contrário, retorne um erro refletindo uma falha ao inicializar a ligação.

IncompleteIndication

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

Lidar com uma indicação de que uma ligação falhou.

Quando uma ligação se torna incompleta, ou seja, quando a conexão é fechada para uma ligação TCP, o mecanismo de protocolo deve falhar em todas as transações que dependem dele, o que inclui chamar seus tratadores de status. Além disso, a indicação incompleta é passada para qualquer objeto da superclasse que implemente a forma alternativa desse método que usa um ID de par.

Detalhes
Parâmetros
[in] aBinding
Um ponteiro para a ligação com falha.
[in] aReport
Uma referência a um objeto StatusReport detalhando o motivo da falha.

IncompleteIndication

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

Lidar com uma indicação de que uma encadernação ficou incompleta.

As camadas superiores que desejam ser informadas sobre a falha de vinculação devem usar esse método, que simplesmente passa o ID do par junto com um relatório de status. Na verdade, uma vez que este método é nula virtual, qualquer DMClient ou DMPublisher subclasse deve fornecer uma implementação.

Detalhes
Parâmetros
[in] aPeerNodeId
Uma referência ao ID de 64 bits do nó de mesmo nível ou terminal de serviço que é o destino da ligação com falha.
[in] aReport
Uma referência a um objeto StatusReport detalhando o motivo da falha.

Iniciar

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr
)

Iniciar

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr,
  uint32_t aResponseTimeout
)

ProtocolEngine

 ProtocolEngine(
  void
)

UnbindRequest

void UnbindRequest(
  const uint64_t & aPeerNodeId
)

Solicite que uma ligação seja desfeita e removida da tabela de ligação.

Quando uma vinculação é "desvinculada", todas as transações que atualmente dependem dela também devem ser removidas. Este método finaliza todas as transações com esta ligação automaticamente.

Detalhes
Parâmetros
[in] aPeerNodeId
Uma referência ao ID de nó de 64 bits ou ponto de extremidade de serviço que identifica a ligação.
Veja também:
UnbindRequest (const uint64_t, WEAVE_ERROR)

UnbindRequest

void UnbindRequest(
  const uint64_t & aPeerNodeId,
  WEAVE_ERROR aErr
)

Solicite que uma ligação seja desfeita e removida da tabela de ligação.

Quando uma vinculação é "desvinculada", todas as transações que atualmente dependem dela também devem ser removidas. Este método finaliza todas as transações com esta ligação automaticamente.

Detalhes
Parâmetros
[in] aPeerNodeId
Uma referência ao ID de nó de 64 bits ou ponto de extremidade de serviço que identifica a ligação.
[in] aErr
WEAVE_NO_ERROR se não houver um motivo específico para essa solicitação de desvinculação, caso contrário, a causa do erro será transmitida.
Veja também:
UnbindRequest (const uint64_t)

~ ProtocolEngine

virtual  ~ProtocolEngine(
  void
)

Funções protegidas

Claro

void Clear(
  void
)

ClearBindingTable

void ClearBindingTable(
  void
)

ClearTransactionTable

void ClearTransactionTable(
  void
)

DequeueTransaction

void DequeueTransaction(
  DMTransaction *aTransaction
)

EnqueueTransaction

WEAVE_ERROR EnqueueTransaction(
  DMTransaction *aTransaction,
  Binding *aBinding
)

EnqueueTransaction

WEAVE_ERROR EnqueueTransaction(
  DMTransaction *aTransaction
)

FailTransactions

bool FailTransactions(
  Binding *aBinding,
  StatusReport & aReport
)

Finalizar

virtual void Finalize(
  void
)

FinalizeBindingTable

void FinalizeBindingTable(
  void
)

FinalizeTransactionTable

void FinalizeTransactionTable(
  void
)

FinalizeTransactions

void FinalizeTransactions(
  Binding *aBinding
)

FromExchangeCtx

Binding * FromExchangeCtx(
  ExchangeContext *aExchangeCtx
)

GetBinding

Binding * GetBinding(
  const uint64_t & aPeerNodeId
)

NewBinding

Binding * NewBinding(
  void
)

StartTransaction

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction,
  Binding *aBinding
)

StartTransaction

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction
)

StatusResponse

WEAVE_ERROR StatusResponse(
  ExchangeContext *aExchangeCtx,
  StatusReport & aStatus
)