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)
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 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
[in] aBinding
Um ponteiro para a vinculação concluída.
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
[in] aBinding
Um ponteiro para a vinculação com falha.
[in] aReport
Uma referência a um objeto StatusReport que detalha o motivo da falha.
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
[in] aPeerNodeId
Uma referência ao ID do nó de 64 bits da entidade de peering que é o destino de vinculação.
[in] aTransport
O transporte a ser usado.
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.
Consulte também:
WeaveTransportOption

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId
)

Vincular a um ponto conhecido usando o transporte padrão.

Detalhes
Parâmetros
[in] aPeerNodeId
Uma referência ao ID do nó de 64 bits da entidade de peering que é o destino de vinculação.
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
[in] aConnection
Um ponteiro para uma conexão do Weave a ser usado pela vinculação.
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
[in] aBinding
Um ponteiro para a vinculação com falha.
[in] aReport
Uma referência a um objeto StatusReport que detalha o motivo da falha.

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
[in] aPeerNodeId
Uma referência ao ID de 64 bits do nó de peering ou do endpoint do serviço que é o destino da vinculação com falha.
[in] aReport
Uma referência a um objeto StatusReport que detalha o motivo da falha.

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
[in] aPeerNodeId
Uma referência ao ID do nó ou ao endpoint do serviço de 64 bits que identifica a vinculação.
Consulte também:
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
[in] aPeerNodeId
Uma referência ao ID do nó ou ao endpoint do serviço de 64 bits que identifica a vinculação.
[in] aErr
WEAVE_NO_ERROR se não houver uma razão específica para essa solicitação de desvinculação. Caso contrário, a causa do erro seria repassada.
Consulte também:
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
)

StartTransaction

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction
)

StatusResponse

WEAVE_ERROR StatusResponse(
  ExchangeContext *aExchangeCtx,
  StatusReport & aStatus
)