nl::Weave::Profiles::BDX_Development

Este espacio de nombres incluye todas las interfaces dentro de Weave para el perfil de Transferencia de datos masivas (BDX) que están en desarrollo activo y no se deben utilizar para el uso en producción.

Resumen

Enumeraciones

@80 enum
@81 enum
@82 enum
@83 enum

Typedefs

BdxClient typedef
BdxServer typedef
ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode) typedef
void(*
Se llama a este controlador cada vez que se encuentra un error de Weave que no se puede mostrar directamente mediante códigos de error al flujo de control definido por la aplicación del usuario.
GetBlockHandler)(BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock) typedef
void(*
Get a block of data to be transmitted.
PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock) typedef
void(*
Maneja el bloque de datos al que apunta un DataBlock de longitud aLength.
ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg) typedef
Es la devolución de llamada que se invoca cuando el destino acepta un ReceiveInit enviado anteriormente.
ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg) typedef
uint16_t(*
Es la devolución de llamada que se invoca cuando se recibe un mensaje ReceiveInit.
RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport) typedef
void(*
Se invoca si el destino rechazó uno de los mensajes Init anteriores.
SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg) typedef
Es la devolución de llamada que se invoca cuando el destino acepta un SendInit enviado anteriormente.
SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg) typedef
uint16_t(*
Es la devolución de llamada que se invoca cuando se recibe un mensaje SendInit.
XferDoneHandler)(BDXTransfer *aXfer) typedef
void(*
Controla los casos en los que finaliza la transferencia.
XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError) typedef
void(*
Maneja mensajes de TransferError recibidos o enviados por BDX.

Funciones

GetBDXAckFlag(ExchangeContext *anEc)
uint16_t
GetBDXAckFlag muestra el indicador adecuado para el campo RequestAck según la conexión del contexto de intercambio (sin confirmación de solicitud para TCP) y según la compatibilidad con el tiempo de compilación para WRMP.

Clases

nl::Weave::Profiles::BDX_Development::BdxNode
nl::Weave::Profiles::BDX_Development::BlockAck

El mensaje BlockAck se usa para confirmar la recepción de un bloque de datos.

nl::Weave::Profiles::BDX_Development::BlockAckV1

El mensaje BlockAckV1 se usa para confirmar un bloque de datos.

nl::Weave::Profiles::BDX_Development::BlockEOF

El mensaje BlockEOF se usa para transferir el último bloque de datos del remitente al receptor.

nl::Weave::Profiles::BDX_Development::BlockEOFAck

El mensaje BlockEOFAck se usa para confirmar el último bloque de datos.

nl::Weave::Profiles::BDX_Development::BlockEOFAckV1

El mensaje BlockEOFAckV1 se usa para confirmar el último bloque de datos.

nl::Weave::Profiles::BDX_Development::BlockEOFV1

El mensaje BlockEOFV1 se usa para transferir el último bloque de datos del remitente al receptor.

nl::Weave::Profiles::BDX_Development::BlockQuery

El mensaje BlockQuery se usa para solicitar que un bloque de datos se transfiera del remitente al receptor.

nl::Weave::Profiles::BDX_Development::BlockQueryV1

El mensaje BlockQueryV1 se usa para solicitar que un bloque de datos se transfiera del remitente al receptor.

nl::Weave::Profiles::BDX_Development::BlockSend

El mensaje BlockSend se usa para transferir un bloque de datos del remitente al receptor.

nl::Weave::Profiles::BDX_Development::BlockSendV1

El mensaje BlockSendV1 se usa para transferir un bloque de datos del remitente al receptor.

nl::Weave::Profiles::BDX_Development::ReceiveAccept

El mensaje ReceiveAccept se usa para aceptar un intercambio propuesto cuando el receptor es el iniciador.

nl::Weave::Profiles::BDX_Development::ReceiveInit

El mensaje ReceiveInit se usa para iniciar un intercambio cuando el receptor es el iniciador.

nl::Weave::Profiles::BDX_Development::ReceiveReject

El mensaje ReceiveReject se usa para rechazar un intercambio propuesto cuando el remitente es el iniciador.

nl::Weave::Profiles::BDX_Development::SendAccept

El mensaje SendAccept se usa para aceptar un intercambio propuesto cuando el remitente es el iniciador.

nl::Weave::Profiles::BDX_Development::SendInit

El mensaje SendInit se usa para iniciar un intercambio cuando el remitente es el iniciador.

nl::Weave::Profiles::BDX_Development::SendReject

El mensaje SendReject se usa para rechazar un intercambio propuesto cuando el remitente es el iniciador.

nl::Weave::Profiles::BDX_Development::TransferError

El mensaje de error se usa para informar un error y anular un intercambio.

Structs

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

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

Espacios de nombres

nl::Weave::Profiles::BDX_Development::BdxProtocol

Enumeraciones

@80

 @80

@81

 @81

@82

 @82

@83

 @83

Typedefs

BdxClient

BdxNode BdxClient

BdxServer

BdxNode BdxServer

ErrorHandler

void(* ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode)

Se llama a este controlador cada vez que se encuentra un error de Weave que no se puede mostrar directamente mediante códigos de error al flujo de control definido por la aplicación del usuario.

Es decir, si se produce un error dentro de otro controlador cuya firma tiene vacío de tipo de datos (p.ej., en respuesta a un mensaje entrante de Weave o incluso enviado por el protocolo), se llamará a este controlador para que el usuario pueda determinar si la transferencia se puede recuperar y continuar o si debe llamar a Shutdown(). Ten en cuenta que es posible que se produzca un error antes de que se inicialice un BDXTransfer (p.ej., ya hay demasiados objetos de transferencia asignados). En tal caso, Weave registrará dicho error y el protocolo se encargará de limpiar cualquier estado necesario que haya asignado.

Detalles
Parámetros
[in] aXfer
Puntero a la BDXTransfer asociada con esta transferencia
[in] anErrorCode
El código de error que debemos procesar

GetBlockHandler

void(* GetBlockHandler)(BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)

Get a block of data to be transmitted.

El llamador proporciona el espacio de almacenamiento en búfer (búfer y la longitud del búfer, que se pasa por referencia). Callee (aplicación de usuario) DEBE usar el búfer proporcionado, pero, por razones de retrocompatibilidad, puede mostrar su propio búfer. Callee no debe proporcionar más de aLength de bytes. Cuando se muestra, aLength contiene la cantidad real de bytes leídos en el búfer.

Detalles
Parámetros
[in] aXfer
El BDXTransfer asociado con esta transferencia en curso
[in,out] aLength
Es la longitud de los datos leídos y almacenados en este bloque. Cuando se llama a la función, contiene la longitud del búfer que se pasó en el aDataBlock. En el resultado, la variable contiene la longitud de los datos realmente leídos.
[in,out] aDataBlock
El puntero al bloque de datos. En la entrada, contiene el búfer proporcionado por el framework; el destinatario puede usar ese espacio para completar el búfer o proporcionar su propio espacio de almacenamiento en búfer (para aplicaciones de retrocompatibilidad). Las aplicaciones que usan el búfer proporcionado no deben suponer ninguna alineación.
[out] aLastBlock
Es verdadero si se debe enviar el bloque como BlockEOF y se completa la transferencia. De lo contrario, es falso.

PutBlockHandler

void(* PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)

Maneja el bloque de datos al que apunta un DataBlock de longitud aLength.

Es probable que esto implique escribirlo en un archivo y cerrarlo si isLastBlock es verdadero.

Detalles
Parámetros
[in] aXfer
El BDXTransfer asociado con esta transferencia en curso
[in] aLength
La longitud de los datos leídos y almacenados en el bloque especificado
[in] aDataBlock
El bloque real de datos
[in] aLastBlock
Es verdadero si se recibió el bloqueo como BlockEOF y se completó la transferencia. De lo contrario, es falso. Si es verdadero, el programador probablemente debería finalizar cualquier controlador de archivo, teniendo en cuenta que se llamará a XferDoneHandler después de esto.

ReceiveAcceptHandler

WEAVE_ERROR(* ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg)

Es la devolución de llamada que se invoca cuando el destino acepta un ReceiveInit enviado anteriormente.

Te recomendamos aprovechar esta oportunidad para abrir archivos o asignar recursos para la transferencia si no lo hiciste al iniciarla.

Detalles
Parámetros
[in] aXfer
Puntero a la BDXTransfer asociada con esta transferencia
[in] aReceiveAcceptMsg
Puntero del mensaje ReceiveAccept que indica que estamos procesando

ReceiveInitHandler

uint16_t(* ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg)

Es la devolución de llamada que se invoca cuando se recibe un mensaje ReceiveInit.

Su trabajo es determinar si deseas aceptar la recepción y, de ser así, configurar aXfer->mIsAccepted=true para que el protocolo envíe un mensaje de aceptación al iniciador. El objeto BDXTransfer se inicia con la configuración predeterminada. Este es un buen lugar para adjuntar cualquier estado específico de la aplicación (controladores de archivos abiertos, etc.) a aXfer->mAppState. También debes adjuntar los controladores necesarios para, p.ej., control de bloques al objeto BDXTransfer en este punto. Si se muestra un código de error distinto de kStatus_Success, se supone que la transferencia es rechazada y el protocolo se encargará de enviar un mensaje de rechazo con el código.

Detalles
Parámetros
[in] aXfer
Puntero a la BDXTransfer asociada con esta transferencia
[in] aReceiveInitMsg
Puntero del mensaje ReceiveInit que estamos procesando

RejectHandler

void(* RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport)

Se invoca si el destino rechazó uno de los mensajes Init anteriores.

Detalles
Parámetros
[in] aXfer
Puntero a la BDXTransfer asociada con esta transferencia
[in] aReport
Puntero del rechazo del mensaje de StatusReport que estamos procesando

SendAcceptHandler

WEAVE_ERROR(* SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg)

Es la devolución de llamada que se invoca cuando el destino acepta un SendInit enviado anteriormente.

Te recomendamos aprovechar esta oportunidad para abrir archivos o asignar recursos para la transferencia si no lo hiciste al iniciarla.

Detalles
Parámetros
[in] aXfer
Puntero a la BDXTransfer asociada con esta transferencia
[in] aSendAcceptMsg
Puntero del mensaje SendAccept que estamos procesando

SendInitHandler

uint16_t(* SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg)

Es la devolución de llamada que se invoca cuando se recibe un mensaje SendInit.

Su trabajo es determinar si deseas aceptar SendInit y, de ser así, configurar aXfer->mIsAccepted=true para que el protocolo envíe un mensaje de aceptación al iniciador. El objeto BDXTransfer se inicia con la configuración predeterminada. Este es un buen lugar para adjuntar cualquier estado específico de la aplicación (controladores de archivos abiertos, etc.) a aXfer->mAppState. También debes adjuntar los controladores necesarios para, p.ej., control de bloques al objeto BDXTransfer en este punto. Si se muestra un código de error distinto de WEAVE_NO_ERROR, se supone que la transferencia es rechazada y el protocolo se encargará del envío de un mensaje de rechazo con el código.

Detalles
Parámetros
[in] aXfer
Puntero a la BDXTransfer asociada con esta transferencia
[in] aSendInitMsg
Puntero del mensaje SendInit que estamos procesando

XferDoneHandler

void(* XferDoneHandler)(BDXTransfer *aXfer)

Controla los casos en los que finaliza la transferencia.

Detalles
Parámetros
[in] aXfer
Puntero a la BDXTransfer asociada con esta transferencia

XferErrorHandler

void(* XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError)

Maneja mensajes de TransferError recibidos o enviados por BDX.

Nota: Se supone que la transferencia de BDX es potencialmente recuperable (es posible que sea temporal, p.ej., desde packageBuffers en este momento) y, por lo tanto, la opción de llamar a Shutdown() quedará en manos del programador de la aplicación y de las devoluciones de llamada que defina. TODO: verifica esto y concilialo con el lenguaje del documento de BDX, que establece lo siguiente: "[A TransferError] Puede ser enviado en cualquier momento por cualquiera de las partes para finalizar la transferencia masiva de datos".

Detalles
Parámetros
[in] aXfer
Puntero a la BDXTransfer asociada con esta transferencia
[in] aXferError
Puntero del error del mensaje StatusReport que estamos procesando

Funciones

GetBDXAckFlag

uint16_t GetBDXAckFlag(
  ExchangeContext *anEc
)

GetBDXAckFlag muestra el indicador adecuado para el campo RequestAck según la conexión del contexto de intercambio (sin confirmación de solicitud para TCP) y según la compatibilidad con el tiempo de compilación para WRMP.

Detalles
Parámetros
[in] anEc
El contexto de intercambio en el que deberíamos obtener la marca
Resultado que se muestra
0 o kSendFlag_RequestAck