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

nl :: Tejido:: Perfiles: BDX_Development :: BDXTransfer

#include <src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.h>

Esta estructura contiene miembros de datos que representan una transferencia BDX activa.

Resumen

Estos objetos son utilizados por BdxProtocol para mantener el estado del protocolo. Son administrados por BdxServer, que maneja la creación e inicialización de nuevas transferencias, incluida la administración de Connections y ExchangeContexts.

Atributos públicos

mAmInitiator
bool
mAmSender
bool
mAppState
void *
mBlockCounter
uint32_t
El próximo número de bloque que esperar para recibir una BlockQuery o BlockACK a la hora de enviar (una vez que la transferencia ha iniciado oficialmente).
mBytesSent
uint64_t
mExchangeContext
mFileDesignator
archivo / bloque de miembros de datos relacionados TODO: ¿eliminar esto? ¿O deberíamos simplemente establecer un contrato de cómo se vería esta cadena y cómo se usará? Específicamente, ¿está respaldado por un PacketBuffer? Si es así, probablemente no debería quedarse durante todo el xfer, ya que eso requiere un pbuf
mFirstQuery
bool
mHandlers
mIsAccepted
bool
mIsCompletedSuccessfully
bool
mIsInitiated
bool
mIsWideRange
bool
mLength
uint64_t
mMaxBlockSize
uint16_t
mNext )(BDXTransfer &)
mStartOffset
uint64_t
mTransferMode
uint8_t
mVersion
uint8_t

Funciones publicas

DispatchErrorHandler ( WEAVE_ERROR anErrorCode)
void
Si se ha configurado el controlador de errores, llámelo.
DispatchGetBlockHandler (uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)
void
Si se ha establecido el controlador de bloque get, llámelo.
DispatchPutBlockHandler (uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
void
Si se ha establecido el controlador de bloque de colocación, llámelo.
DispatchReceiveAccept ( ReceiveAccept *aReceiveAcceptMsg)
Los despachadores simplemente comprueban si se ha configurado un controlador y luego lo llaman si es así.
DispatchRejectHandler ( StatusReport *aReport)
void
Si se ha configurado el controlador de rechazos, llámelo.
DispatchSendAccept ( SendAccept *aSendAcceptMsg)
Si se ha configurado el controlador de envío y aceptación, llámelo.
DispatchXferDoneHandler (void)
void
Si se ha configurado el controlador de transferencia realizada, llámelo.
DispatchXferErrorHandler ( StatusReport *aXferError)
void
Si se ha configurado el controlador de errores de transferencia, llámelo.
GetDefaultFlags (bool aExpectResponse)
uint16_t
Esta función devuelve las banderas predeterminadas que se enviarán con un mensaje.
IsAsync (void)
bool
 Returns true if this transfer is asynchronous, false otherwise.
IsDriver (void)
bool
 Returns true if this entity (node) is the driver for this transfer, false otherwise.
Reset (void)
void
 Sets all pointers to NULL, resets counters, etc.
SetHandlers ( BDXHandlers aHandlers)
void
Esta función establece los controladores en este BDXTransfer objeto.
Shutdown (void)
void
 Shuts down the current transfer, including closing any open ExchangeContext.

Atributos públicos

mAmIniciador

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mAmInitiator

mAmSender

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mAmSender

mAppState

void * nl::Weave::Profiles::BDX_Development::BDXTransfer::mAppState

mBlockCounter

uint32_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mBlockCounter

El próximo número de bloque que esperar para recibir una BlockQuery o BlockACK a la hora de enviar (una vez que la transferencia ha iniciado oficialmente).

Cuando se recibe, es la siguiente BlockSend esperamos recibir o la última BlockQuery enviamos (después de la transferencia ha comenzado oficialmente y el primer enviado de consulta que es).

mBytesSent

uint64_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mBytesSent

mExchangeContext

ExchangeContext * nl::Weave::Profiles::BDX_Development::BDXTransfer::mExchangeContext

mFileDesignator

ReferencedString nl::Weave::Profiles::BDX_Development::BDXTransfer::mFileDesignator

archivo / bloque de miembros de datos relacionados TODO: ¿eliminar esto? ¿O deberíamos simplemente establecer un contrato de cómo se vería esta cadena y cómo se usará? Específicamente, ¿está respaldado por un PacketBuffer? Si es así, probablemente no debería quedarse durante todo el xfer, ya que eso requiere un pbuf

mFirstQuery

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mFirstQuery

mHandlers

BDXHandlers nl::Weave::Profiles::BDX_Development::BDXTransfer::mHandlers

mIsAccepted

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsAccepted

mIsCompletedSuccessfully

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsCompletedSuccessfully

mIsIniciado

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsInitiated

mIsWideRange

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsWideRange

mLength

uint64_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mLength

mMaxBlockSize

uint16_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mMaxBlockSize

mSiguiente

WEAVE_ERROR(* nl::Weave::Profiles::BDX_Development::BDXTransfer::mNext)(BDXTransfer &)

mStartOffset

uint64_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mStartOffset

mTransferMode

uint8_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mTransferMode

mVersion

uint8_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mVersion

Funciones publicas

DispatchErrorHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchErrorHandler(
  WEAVE_ERROR anErrorCode
)

Si se ha configurado el controlador de errores, llámelo.

Si no se establece, también cierre la transferencia como comportamiento predeterminado.

Detalles
Parámetros
[in] anErrorCode
Código de error a procesar

DispatchGetBlockHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchGetBlockHandler(
  uint64_t *aLength,
  uint8_t **aDataBlock,
  bool *aLastBlock
)

Si se ha establecido el controlador de bloque get, llámelo.

Detalles
Parámetros
[in] aLength
Longitud del bloque
[in] aDataBlock
Puntero al bloque de datos
[in] aLastBlock
Verdadero si este es el último bloque de la transferencia

DispatchPutBlockHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchPutBlockHandler(
  uint64_t aLength,
  uint8_t *aDataBlock,
  bool aLastBlock
)

Si se ha establecido el controlador de bloque de colocación, llámelo.

Detalles
Parámetros
[in] aLength
Longitud del bloque
[in] aDataBlock
Puntero al bloque de datos
[in] aLastBlock
Verdadero si este es el último bloque de la transferencia

DespachoRecibirAceptar

WEAVE_ERROR nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchReceiveAccept(
  ReceiveAccept *aReceiveAcceptMsg
)

Los despachadores simplemente comprueban si se ha configurado un controlador y luego lo llaman si es así.

Si se ha configurado el controlador de aceptación de recepción, llámelo.

Por lo tanto, estos deben usarse como la interfaz pública para llamar devoluciones de llamada, que nunca deben ser tocadas directamente por aplicaciones externas. Es posible que una futura revisión de BDXTransfer utilizará un objeto delegado en lugar de almacenar punteros individuales para cada una de las devoluciones de llamada.

Detalles
Parámetros
[in] aReceiveAcceptMsg
ReceiveAccept mensaje a ser procesado
Devoluciones
un valor de error

DispatchRejectHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchRejectHandler(
  StatusReport *aReport
)

Si se ha configurado el controlador de rechazos, llámelo.

Si no se establece, también cierre la transferencia como comportamiento predeterminado.

Detalles
Parámetros
[in] aReport
Mensaje de StatusReport para ser procesado

DespachoEnviarAceptar

WEAVE_ERROR nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchSendAccept(
  SendAccept *aSendAcceptMsg
)

Si se ha configurado el controlador de envío y aceptación, llámelo.

Detalles
Parámetros
[in] aSendAcceptMsg
SendAccept mensaje a ser procesado
Devoluciones
un valor de error

DispatchXferDoneHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchXferDoneHandler(
  void
)

Si se ha configurado el controlador de transferencia realizada, llámelo.

Si no se establece, también cierre la transferencia como comportamiento predeterminado.

DispatchXferErrorHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchXferErrorHandler(
  StatusReport *aXferError
)

Si se ha configurado el controlador de errores de transferencia, llámelo.

Si no se establece, también cierre la transferencia como comportamiento predeterminado.

Detalles
Parámetros
[in] aXferError
Informe de estado de un error a procesar

GetDefaultFlags

uint16_t nl::Weave::Profiles::BDX_Development::BDXTransfer::GetDefaultFlags(
  bool aExpectResponse
)

Esta función devuelve las banderas predeterminadas que se enviarán con un mensaje.

Detalles
Parámetros
[in] aExpectResponse
Si esperamos una respuesta a este mensaje
Devoluciones
Las banderas que se enviarán

IsAsync

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::IsAsync(
  void
)

 Returns true if this transfer is asynchronous, false otherwise.

Detalles
Devoluciones
Verdadero si la transferencia es asincrónica.

IsDriver

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::IsDriver(
  void
)

 Returns true if this entity (node) is the driver for this transfer, false otherwise.

Detalles
Devoluciones
verdadero si esta entidad es el conductor de esta transferencia

Reiniciar

void nl::Weave::Profiles::BDX_Development::BDXTransfer::Reset(
  void
)

 Sets all pointers to NULL, resets counters, etc.

Llamado cuando se apaga.

SetHandlers

void nl::Weave::Profiles::BDX_Development::BDXTransfer::SetHandlers(
  BDXHandlers aHandlers
)

Esta función establece los controladores en este BDXTransfer objeto.

Siempre debe usar este método en lugar de intentar configurarlos manualmente, ya que la implementación subyacente de cómo se almacenan los punteros de la función del controlador no es parte de la API pública.

Detalles
Parámetros
[in] aHandlers
Estructura de los controladores de devolución de llamada que se llamarán

Cerrar

void nl::Weave::Profiles::BDX_Development::BDXTransfer::Shutdown(
  void
)

 Shuts down the current transfer, including closing any open ExchangeContext.

Aproveche esta oportunidad para liberar los recursos asociados con esta transferencia y la lógica de su aplicación.