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) | 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 :: 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 |
| ||
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 |
| ||||
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 |
| ||||
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. |
WeaveTransportOption
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId )
Ligue-se a um par conhecido usando o transporte padrão.
Detalhes | |||
---|---|---|---|
Parâmetros |
| ||
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 |
| ||
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 |
|
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 |
|
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 |
|
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 |
|
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 )