nl:: Weave:: Profiles:: DataManagement_Legacy:: ProtocolEngine
Essa é 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, tem um componente de mecanismo de protocolo e um de gerenciador de dados. Esta classe abstrata representa os recursos comuns do mecanismo de protocolo.
Herança
Subclasses conhecidas diretas: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 vinculação que, se o mecanismo for responsável por qualquer coisa além do simples recebimento de notificações de transmissão, provavelmente precisará conter pelo menos uma entrada.
|
mExchangeMgr
|
|
mResponseTimeout
|
uint32_t
|
mTransactionTable[kTransactionTableSize]
|
Funções públicas |
|
---|---|
BindConfirm(Binding *aBinding)
|
virtual WEAVE_ERROR
Processar a confirmação de que uma solicitação de vinculação foi concluída com sucesso.
|
BindConfirm(Binding *aBinding, StatusReport & aReport)
|
virtual WEAVE_ERROR
Processar a confirmação de que uma solicitação de vinculação falhou.
|
BindRequest(const uint64_t & aPeerNodeId, uint8_t aTransport)
|
Solicite uma vinculação usando um ID de nó de peering conhecido e um especificador de transporte.
|
BindRequest(const uint64_t & aPeerNodeId)
|
Vincule a um peering conhecido usando o transporte padrão.
|
BindRequest(nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
|
|
BindRequest(WeaveConnection *aConnection)
|
Solicite uma vinculação usando uma conexão ativa do Weave.
|
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
|
virtual void
Processar uma indicação de que uma vinculação falhou.
|
IncompleteIndication(const uint64_t & aPeerNodeId, StatusReport & aReport)=0
|
virtual void
Processar uma indicação de que uma vinculação se tornou incompleta.
|
Init(WeaveExchangeManager *aExchangeMgr)
|
virtual WEAVE_ERROR
|
Init(WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout)
|
virtual WEAVE_ERROR
|
UnbindRequest(const uint64_t & aPeerNodeId)
|
void
Solicita que uma vinculação seja desfeita e removida da tabela de vinculação.
|
UnbindRequest(const uint64_t & aPeerNodeId, WEAVE_ERROR aErr)
|
void
Solicita que uma vinculação seja desfeita e removida da tabela de vinculaçã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)
|
Binding *
|
GetBinding(const uint64_t & aPeerNodeId)
|
Binding *
|
NewBinding(void)
|
Binding *
|
StartTransaction(DMTransaction *aTransaction, Binding *aBinding)
|
|
StartTransaction(DMTransaction *aTransaction)
|
|
StatusResponse(ExchangeContext *aExchangeCtx, StatusReport & aStatus)
|
Classes |
|
---|---|
nl:: |
Atributos protegidos
mBindingTable
Binding mBindingTable[kBindingTableSize]
O ProtocolEngine tem uma tabela de vinculação que, se o mecanismo for responsável por qualquer coisa além do simples recebimento de notificações de transmissão, provavelmente precisará conter pelo menos uma entrada.
As vinculações geralmente são indexadas pelo ID do nó. Isso significa que cada mecanismo só pode ter uma vinculação única com um determinado endpoint de serviço.
A especificação WDM tem essa noção de "vinculação padrão" que é o lugar onde as mensagens serão direcionadas se nenhum destino explícito for fornecido. Ela será usada principalmente em dispositivos muito simples, com uma única vinculação ou um pequeno número de vinculações. Para outros fins, apenas a primeira vinculação será formada.
mExchangeMgr
WeaveExchangeManager * mExchangeMgr
mResponseTimeout
uint32_t mResponseTimeout
mTransactionTable
TransactionTableEntry mTransactionTable[kTransactionTableSize]
Funções públicas
BindConfirm
virtual WEAVE_ERROR BindConfirm( Binding *aBinding )
Processar a confirmação de que uma solicitação de vinculação foi concluída com sucesso.
Depois que uma vinculação é concluída, o mecanismo de protocolo analisa a tabela de transações e inicia todas as transações dependentes dessa vinculação.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retornos |
WEAVE_NO_ERROR Se tiver êxito. Caso contrário, retorna um WEAVE_ERROR que reflete uma incapacidade de iniciar uma transação.
|
BindConfirm
virtual WEAVE_ERROR BindConfirm( Binding *aBinding, StatusReport & aReport )
Processar a confirmação de que uma solicitação de vinculação falhou.
Quando uma solicitação de vinculação falha, o mecanismo de protocolo precisa passar pela tabela de transações e falhar em todas as transações que dependem da vinculação.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Retornos |
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId, uint8_t aTransport )
Solicite uma vinculação usando um ID de nó de peering conhecido e um especificador de transporte.
Com um ID de nó de peering e uma especificação de transporte, essa solicitação configura uma vinculação com esse peering. O lance exigirá uma conclusão adicional SOMENTE se o transporte for TCP. Se já houver uma vinculação ao peer, ela será reutilizada.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Retornos |
WEAVE_NO_ERROR em caso de sucesso ou WEAVE_ERROR_NO_MEMORY se a tabela de vinculação estiver cheia. Caso contrário, retorna um WEAVE_ERROR que reflete uma falha ao inicializar a vinculação.
|
WeaveTransportOption
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId )
Vincule a um peering conhecido usando o transporte padrão.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retornos |
WEAVE_NO_ERROR Se tiver êxito. Caso contrário, retorne um WEAVE_ERROR que reflita a falha da operação de vinculação.
|
BindRequest
WEAVE_ERROR BindRequest( nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
BindRequest
WEAVE_ERROR BindRequest( WeaveConnection *aConnection )
Solicite uma vinculação usando uma conexão ativa do Weave.
Uma vinculação também pode ser estabelecida usando uma conexão existente e aberta. Observe que as vinculações estabelecidas dessa maneira não exigem conclusão adicional.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retornos |
WEAVE_NO_ERROR em caso de sucesso ou WEAVE_ERROR_NO_MEMORY se a tabela de vinculação estiver cheia. Caso contrário, retorne um erro que reflita uma falha ao iniciar a vinculação.
|
IncompleteIndication
virtual void IncompleteIndication( Binding *aBinding, StatusReport & aReport )
Processar uma indicação de que uma vinculação falhou.
Quando uma vinculação fica incompleta, ou seja, quando a conexão é encerrada para uma vinculação TCP, o mecanismo de protocolo precisa falhar em todas as transações que dependem dela, o que inclui chamar os gerenciadores de status. Além disso, a indicação incompleta é transmitida para qualquer objeto de superclasse que implementa a forma alternativa desse método que usa um ID de peering.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
IncompleteIndication
virtual void IncompleteIndication( const uint64_t & aPeerNodeId, StatusReport & aReport )=0
Processar uma indicação de que uma vinculação se tornou incompleta.
Camadas superiores que querem ser informadas sobre a falha de vinculação devem usar esse método, que simplesmente passa o ID do terminal junto com um relatório de status. Na verdade, como esse método é um vazio virtual, qualquer subclasse DMClient ou DMPublisher deve fornecer uma implementação.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
Init
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr )
Init
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout )
ProtocolEngine
ProtocolEngine( void )
UnbindRequest
void UnbindRequest( const uint64_t & aPeerNodeId )
Solicita que uma vinculação seja desfeita e removida da tabela de vinculação.
Quando uma vinculação é "desvinculada" todas as transações que dependem dele também devem ser removidas. Esse método finaliza automaticamente todas as transações com essa vinculação.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
UnbindRequest(const uint64_t, WEAVE_ERROR)
UnbindRequest
void UnbindRequest( const uint64_t & aPeerNodeId, WEAVE_ERROR aErr )
Solicita que uma vinculação seja desfeita e removida da tabela de vinculação.
Quando uma vinculação é "desvinculada" todas as transações que dependem dele também devem ser removidas. Esse método finaliza automaticamente todas as transações com essa vinculação.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
UnbindRequest(const uint64_t)
~ProtocolEngine
virtual ~ProtocolEngine( void )
Funções protegidas
Limpar
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 )