nl::Weave::Profiles::BDX_Development::BDXTransfer

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

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

Resumen

BdxProtocol usa estos objetos para mantener el estado del protocolo. Los administra BdxServer, que controla la creación y la 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
Es el siguiente número de bloque para el que esperamos recibir una BlockQuery o BlockACK cuando se envíe (una vez que la transferencia haya comenzado oficialmente).
mBytesSent
uint64_t
mExchangeContext
mFileDesignator
archivo/bloqueo de datos relacionados para miembros TODO: ¿Eliminar esto? ¿O deberíamos establecer un contrato de cómo se vería esta cadena y cómo se usará? En particular, ¿está respaldado por un packageBuffer? Si es así, es probable que no te quedes hasta el video completo, ya que ocupa 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 públicas

DispatchErrorHandler(WEAVE_ERROR anErrorCode)
void
Si se configuró el controlador de errores, llámalo.
DispatchGetBlockHandler(uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)
void
Si se configuró el controlador de bloques get, llámalo.
DispatchPutBlockHandler(uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
void
Si se configuró el controlador de bloques put, llámalo.
DispatchReceiveAccept(ReceiveAccept *aReceiveAcceptMsg)
Los despachadores tan solo verifican si se configuró un controlador y, de ser así, lo llaman.
DispatchRejectHandler(StatusReport *aReport)
void
Si se configuró el controlador de rechazo, llámalo.
DispatchSendAccept(SendAccept *aSendAcceptMsg)
Si se configuró el controlador de aceptación de envío, llámalo.
DispatchXferDoneHandler(void)
void
Si se configuró el controlador de transferencia completada, llámalo.
DispatchXferErrorHandler(StatusReport *aXferError)
void
Si se configuró el controlador de errores de transferencia, llámalo.
GetDefaultFlags(bool aExpectResponse)
uint16_t
Esta función muestra las marcas predeterminadas que se envían 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 configura los controladores en este objeto BDXTransfer.
Shutdown(void)
void
 Shuts down the current transfer, including closing any open ExchangeContext.

Atributos públicos

mAmInitiator

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

Es el siguiente número de bloque para el que esperamos recibir una BlockQuery o BlockACK cuando se envíe (una vez que la transferencia haya comenzado oficialmente).

Cuando se recibe, es el próximo BlockSend que esperamos recibir o la última versión de BlockQuery que enviamos (después de que la transferencia haya comenzado oficialmente y se haya enviado la primera consulta).

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/bloqueo de datos relacionados para miembros TODO: ¿Eliminar esto? ¿O deberíamos establecer un contrato de cómo se vería esta cadena y cómo se usará? En particular, ¿está respaldado por un packageBuffer? Si es así, es probable que no te quedes hasta el video completo, ya que ocupa 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

mIsInitiated

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

mNext

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 públicas

DispatchErrorHandler

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

Si se configuró el controlador de errores, llámalo.

Si no la estableces, también cierra la transferencia como comportamiento predeterminado.

Detalles
Parámetros
[in] anErrorCode
Se procesará el código de error

DispatchGetBlockHandler

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

Si se configuró el controlador de bloques get, llámalo.

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 configuró el controlador de bloques put, llámalo.

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

DispatchReceiveAccept

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

Los despachadores tan solo verifican si se configuró un controlador y, de ser así, lo llaman.

Si se configuró el controlador de aceptación de recepción, llámalo.

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

Detalles
Parámetros
[in] aReceiveAcceptMsg
Mensaje ReceiveAccept para procesar
Resultado que se muestra
un valor de error

DispatchRejectHandler

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

Si se configuró el controlador de rechazo, llámalo.

Si no la estableces, también cierra la transferencia como comportamiento predeterminado.

Detalles
Parámetros
[in] aReport
Mensaje del informe de estado que se procesará

DispatchSendAccept

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

Si se configuró el controlador de aceptación de envío, llámalo.

Detalles
Parámetros
[in] aSendAcceptMsg
Mensaje SendAccept que se procesará
Resultado que se muestra
un valor de error

DispatchXferDoneHandler

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

Si se configuró el controlador de transferencia completada, llámalo.

Si no la estableces, también cierra la transferencia como comportamiento predeterminado.

DispatchXferErrorHandler

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

Si se configuró el controlador de errores de transferencia, llámalo.

Si no la estableces, también cierra la transferencia como comportamiento predeterminado.

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

GetDefaultFlags

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

Esta función muestra las marcas predeterminadas que se envían con un mensaje.

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

IsAsync

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

 Returns true if this transfer is asynchronous, false otherwise.

Detalles
Resultado que se muestra
true si la transferencia es asíncrona.

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
Resultado que se muestra
verdadero si esta entidad es el controlador de la transferencia

Restablecer

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

 Sets all pointers to NULL, resets counters, etc.

Se llama al apagar.

SetHandlers

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

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

Siempre debes 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 de controlador no forma parte de la API pública.

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

Cierre

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

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

Aprovecha esta oportunidad para liberar cualquier recurso asociado con esta transferencia y la lógica de tu aplicación.