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 componente de gerenciador de dados. Essa 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 destrutores |
|
---|---|
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 de apenas 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
Processar a confirmação de que uma solicitação de vinculação foi concluída.
|
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 e um especificador de transporte conhecidos.
|
BindRequest(const uint64_t & aPeerNodeId)
|
Vincular a um ponto 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 Weave ativa.
|
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
Solicite que uma vinculação seja desfeita e removida da tabela de vinculações.
|
UnbindRequest(const uint64_t & aPeerNodeId, WEAVE_ERROR aErr)
|
void
Solicite que uma vinculação seja desfeita e removida da tabela de vinculações.
|
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)
|
Aulas |
|
---|---|
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 de apenas receber notificações de transmissão, provavelmente precisa 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 única vinculação a um determinado endpoint do serviço.
A especificação WDM tem essa noção de "vinculação padrão", que é o lugar que as mensagens vão se nenhum destino explícito for fornecido. Isso vai ser usado principalmente em dispositivos muito simples, com uma única vinculação ou um pequeno número de vinculações, e, para outras finalidades, será apenas a primeira vinculação 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.
Depois que uma vinculação é concluída, o mecanismo de protocolo passa pela tabela de transações e inicia todas as transações que dependem dessa vinculação.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
WEAVE_NO_ERROR Em caso de êxito. Caso contrário, retorne 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, dependendo da vinculação.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Retorna |
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId, uint8_t aTransport )
Solicite uma vinculação usando um ID de nó de peering e um especificador de transporte conhecidos.
Com um ID de nó de peering e uma especificação de transporte, essa solicitação configura uma vinculação a esse peering. Os lances vão exigir conclusão adicional SOMENTE se o transporte for TCP. Se já houver uma vinculação com o peering, ela será reutilizada.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Retorna |
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 WEAVE_ERROR que reflete uma falha ao inicializar a vinculação.
|
WeaveTransportOption
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId )
Vincular a um ponto conhecido usando o transporte padrão.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
WEAVE_NO_ERROR Em caso de êxito. Caso contrário, retorne um WEAVE_ERROR que reflete 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 Weave ativa.
Uma vinculação também pode ser estabelecida usando uma conexão aberta e existente. As vinculações estabelecidas dessa forma não exigem conclusão adicional.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
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 reflete 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 dependam dela, o que inclui chamar os gerenciadores de status. Além disso, a indicação incompleta é passada para qualquer objeto de superclasse que implemente a forma alternativa desse método que receba um ID de mesmo nível.
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.
As camadas superiores que quiserem ser informadas sobre a falha de vinculação precisam usar esse método, que simplesmente transmite o ID do peering com um relatório de status. Na verdade, como esse método é nulo virtual, qualquer subclasse DMClient ou DMPublisher precisa 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 )
Solicite que uma vinculação seja desfeita e removida da tabela de vinculações.
Quando uma vinculação é "desvinculada", todas as transações que dependem dela também precisam ser removidas. Esse método finaliza todas as transações com essa vinculação automaticamente.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
UnbindRequest(const uint64_t, WEAVE_ERROR)
UnbindRequest
void UnbindRequest( const uint64_t & aPeerNodeId, WEAVE_ERROR aErr )
Solicite que uma vinculação seja desfeita e removida da tabela de vinculações.
Quando uma vinculação é "desvinculada", todas as transações que dependem dela também precisam ser removidas. Esse método finaliza todas as transações com essa vinculação automaticamente.
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 )