En Google, luchamos por la equidad racial de la comunidad negra. Más información
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

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 tabla vinculante que, si el motor va a ser responsable de algo más que simplemente recibir notificaciones de transmisión, probablemente deba 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 un enlace mediante un identificador de nodo de pares conocido y un especificador de transporte.
BindRequest (const uint64_t & aPeerNodeId)
Enlace a un par conocido utilizando el transporte predeterminado.
BindRequest ( nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
BindRequest ( WeaveConnection *aConnection)
Solicite un enlace utilizando 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 un enlace de la tabla de enlace.
UnbindRequest (const uint64_t & aPeerNodeId, WEAVE_ERROR aErr)
void
Solicite que un enlace se deshaga y se elimine de la tabla de enlace.

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 :: Weave :: Profiles :: DataManagement_Legacy :: ProtocolEngine :: DMTransaction

Atributos protegidos

mBindingTable

Binding mBindingTable[kBindingTableSize]

El ProtocolEngine tiene una tabla vinculante que, si el motor va a ser responsable de algo más que simplemente recibir notificaciones de transmisión, probablemente deba 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 un pequeño número 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 Si tiene éxito. De lo contrario, devuelve un WEAVE_ERROR que refleja la imposibilidad de 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 dependiendo de 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 un enlace 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 una vinculación 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 en caso de éxito o WEAVE_ERROR_NO_MEMORY si la tabla de enlace está llena. De lo contrario, devuelve un WEAVE_ERROR que refleja un error al inicializar el enlace.
Ver también:
Opción De Transporte De Tejido

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId
)

Enlace 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 Si tiene éxito. De lo contrario, devuelve un WEAVE_ERROR que refleja el error de la operación de vinculación .

BindRequest

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

BindRequest

WEAVE_ERROR BindRequest(
  WeaveConnection *aConnection
)

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

También se puede establecer una vinculación mediante 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 en caso de éxito o WEAVE_ERROR_NO_MEMORY si la tabla de enlace está llena. De lo contrario, devuelve un error que refleja una falla al iniciar el enlace.

Incompleto Indicación

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.

Incompleto Indicación

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, dado que este método es prácticamente nulo, cualquier subclase de DMClient o DMPublisher 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 un enlace de la tabla de enlace.

Cuando un enlace está "liberado", también se deben eliminar las transacciones que actualmente dependen de él. 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 un enlace de la tabla de enlace.

Cuando un enlace está "liberado", también se deben eliminar las transacciones que actualmente dependen de él. 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
)