En Google, luchamos por la equidad racial de la comunidad negra. Más información

nl :: Tejido:: Perfiles: DataManagement_Legacy :: Protocolo Motor

Esto es una clase abstracta.

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

La clase de motor de protocolo WDM.

Resumen

Una entidad de gestión de datos, cliente o editor, tiene un componente de motor de protocolo y un componente de administrador de datos. Esta clase abstracta representa las características comunes del motor de protocolo.

Herencia

Subclases conocidas directas:
  nl :: Weave :: Perfiles :: DataManagement_Legacy :: DMClient
  nl :: Weave :: Profiles :: DataManagement_Legacy :: DMPublisher

Constructores y Destructores

ProtocolEngine (void)
~ProtocolEngine (void)

Atributos protegidos

mBindingTable [kBindingTableSize]
El ProtocolEngine tiene una mesa vinculante que, si el motor va a ser responsable de nada más allá de simplemente recibir notificaciones de difusión, probablemente, debe contener al menos una entrada.
mExchangeMgr
mResponseTimeout
uint32_t
mTransactionTable [kTransactionTableSize]

Funciones publicas

BindConfirm ( Binding *aBinding)
virtual WEAVE_ERROR
Manejar la confirmación de que una solicitud de vinculación se completó correctamente.
BindConfirm ( Binding *aBinding, StatusReport & aReport)
virtual WEAVE_ERROR
Manejar la confirmación de que ha fallado una solicitud de vinculación.
BindRequest (const uint64_t & aPeerNodeId, uint8_t aTransport)
Solicite una vinculación utilizando un identificador de nodo del mismo nivel y un especificador de transporte conocidos.
BindRequest (const uint64_t & aPeerNodeId)
Enlazar a un par conocido utilizando el transporte predeterminado.
BindRequest ( nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
BindRequest ( WeaveConnection *aConnection)
Solicite una encuadernación mediante una conexión Weave activa.
IncompleteIndication ( Binding *aBinding, StatusReport & aReport)
virtual void
Manejar una indicación de que un enlace ha fallado.
IncompleteIndication (const uint64_t & aPeerNodeId, StatusReport & aReport)=0
virtual void
Manejar una indicación de que una encuadernación se ha vuelto incompleta.
Init ( WeaveExchangeManager *aExchangeMgr)
virtual WEAVE_ERROR
Init ( WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout)
virtual WEAVE_ERROR
UnbindRequest (const uint64_t & aPeerNodeId)
void
Solicite que se deshaga y elimine una encuadernación de la tabla de encuadernación.
UnbindRequest (const uint64_t & aPeerNodeId, WEAVE_ERROR aErr)
void
Solicite que se deshaga y elimine una encuadernación de la tabla de encuadernación.

Funciones 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)

Clases

nl :: Armadura :: Perfiles :: DataManagement_Legacy :: :: ProtocolEngine DMTransaction

Atributos protegidos

mBindingTable

Binding mBindingTable[kBindingTableSize]

El ProtocolEngine tiene una mesa vinculante que, si el motor va a ser responsable de nada más allá de simplemente recibir notificaciones de difusión, probablemente, debe contener al menos una entrada.

Los enlaces generalmente se indexan por ID de nodo. Lo que esto significa es que cada motor solo puede tener un enlace único a un punto final de servicio determinado.

La especificación WDM tiene esta noción de "enlace predeterminado", que es el lugar al que van los mensajes si no se proporciona un destino explícito. Esto se utilizará principalmente en dispositivos muy simples con una sola encuadernación o una pequeña cantidad de encuadernaciones y, para otros fines, será solo la primera encuadernación formada.

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mResponseTimeout

uint32_t mResponseTimeout

mTransactionTable

TransactionTableEntry mTransactionTable[kTransactionTableSize]

Funciones publicas

BindConfirm

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding
)

Manejar la confirmación de que una solicitud de vinculación se completó correctamente.

Una vez que se ha completado un enlace, el motor de protocolo pasa por la tabla de transacciones e inicia las transacciones que dependen de ese enlace.

Detalles
Parámetros
[in] aBinding
Un puntero al enlace completado.
Devoluciones
WEAVE_NO_ERROR éxito On. De lo contrario, devolver un WEAVE_ERROR que refleja una incapacidad para iniciar una transacción.

BindConfirm

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

Manejar la confirmación de que una solicitud de vinculación ha fallado.

Cuando falla una solicitud de vinculación, el motor de protocolo debe pasar por la tabla de transacciones y fallar cualquier transacción según la vinculación.

Detalles
Parámetros
[in] aBinding
Un puntero al enlace fallido.
[in] aReport
Una referencia a un objeto StatusReport que detalla el motivo del error.
Devoluciones

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

Solicite una vinculación utilizando un identificador de nodo del mismo nivel y un especificador de transporte conocidos.

Dada una ID de nodo par y una especificación de transporte, esta solicitud establece un enlace a ese par. La licitación requerirá una finalización adicional SOLO si el transporte es TCP. Si ya existe un enlace al par, se reutiliza.

Detalles
Parámetros
[in] aPeerNodeId
Una referencia al ID de nodo de 64 bits de la entidad par que es el destino de enlace.
[in] aTransport
El transporte a utilizar.
Devoluciones
WEAVE_NO_ERROR el éxito o WEAVE_ERROR_NO_MEMORY si la tabla de unión es completa. De lo contrario, devolver un WEAVE_ERROR que refleja un fracaso para inicializar la unión.
Ver también:
Opción De Transporte De Tejido

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId
)

Enlazar a un par conocido utilizando el transporte predeterminado.

Detalles
Parámetros
[in] aPeerNodeId
Una referencia al ID de nodo de 64 bits de la entidad par que es el destino de enlace.
Devoluciones
WEAVE_NO_ERROR éxito On. De lo contrario, devolver un WEAVE_ERROR que refleja el fracaso de la operación de enlace.

BindRequest

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

BindRequest

WEAVE_ERROR BindRequest(
  WeaveConnection *aConnection
)

Solicite una encuadernación mediante una conexión Weave activa.

También se puede establecer un enlace utilizando una conexión existente y abierta. Tenga en cuenta que los enlaces que se establecen de esta manera no requieren una finalización adicional.

Detalles
Parámetros
[in] aConnection
Un puntero a una conexión de tejido que utilizará el enlace.
Devoluciones
WEAVE_NO_ERROR el éxito o WEAVE_ERROR_NO_MEMORY si la tabla de unión es completa. De lo contrario, devuelve un error que refleja un error al inicializar el enlace.

Indicación incompleta

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

Manejar una indicación de que un enlace ha fallado.

Cuando un enlace se vuelve incompleto, es decir, cuando la conexión se cierra para un enlace TCP, el motor de protocolo debe fallar en cualquier transacción que dependa de él, lo que incluye llamar a sus controladores de estado. Además, la indicación incompleta se pasa a cualquier objeto de superclase que implemente la forma alternativa de este método que toma un ID de par.

Detalles
Parámetros
[in] aBinding
Un puntero al enlace fallido.
[in] aReport
Una referencia a un objeto StatusReport que detalla el motivo del error.

Indicación incompleta

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

Manejar una indicación de que una encuadernación se ha vuelto incompleta.

Las capas superiores que quieran estar informadas de la falla de enlace deben usar este método, que simplemente pasa el ID del par junto con un informe de estado. De hecho, ya que este método es nulo virtual, cualquier DMClient o DMPublisher subclase debe proporcionar una implementación.

Detalles
Parámetros
[in] aPeerNodeId
Una referencia al ID de 64 bits del nodo del mismo nivel o del punto final de servicio que es el destino del enlace fallido.
[in] aReport
Una referencia a un objeto StatusReport que detalla el motivo del error.

En eso

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr
)

En eso

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr,
  uint32_t aResponseTimeout
)

Protocolo Motor

 ProtocolEngine(
  void
)

UnbindRequest

void UnbindRequest(
  const uint64_t & aPeerNodeId
)

Solicite que se deshaga y elimine una encuadernación de la tabla de encuadernación.

Cuando una vinculación está "liberada", también se deben eliminar las transacciones que actualmente dependen de ella. Este método finaliza todas las transacciones con este enlace automáticamente.

Detalles
Parámetros
[in] aPeerNodeId
Una referencia al ID de nodo de 64 bits o al punto final de servicio que identifica el enlace.
Ver también:
UnbindRequest (const uint64_t, WEAVE_ERROR)

UnbindRequest

void UnbindRequest(
  const uint64_t & aPeerNodeId,
  WEAVE_ERROR aErr
)

Solicite que se deshaga y elimine una encuadernación de la tabla de encuadernación.

Cuando una vinculación está "liberada", también se deben eliminar las transacciones que actualmente dependen de ella. Este método finaliza todas las transacciones con este enlace automáticamente.

Detalles
Parámetros
[in] aPeerNodeId
Una referencia al ID de nodo de 64 bits o al punto final de servicio que identifica el enlace.
[in] aErr
WEAVE_NO_ERROR si no hay una razón específica para esta solicitud de desvinculación, de lo contrario, la causa del error se transmitiría.
Ver también:
UnbindRequest (const uint64_t)

~ Motor de protocolo

virtual  ~ProtocolEngine(
  void
)

Funciones 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
)

Finalizar transacciones

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
)