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

nl :: Tejido:: Perfiles: BDX_Desarrollo

Este espacio de nombres incluye todas las interfaces dentro de Weave para el perfil Bulk Data Transfer (BDX) que están en desarrollo activo y no deben usarse para uso de producción.

Resumen

Enumeraciones

@80 enumeración
@81 enumeración
@82 enumeración
@83 enumeración

Typedefs

BdxClient typedef
BdxServer typedef
ErrorHandler )(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode) typedef
void(*
Este controlador se llama cada vez que se encuentra un error de Weave que no se puede devolver directamente a través de 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 apuntado por un DataBlock de longitud aLength.
ReceiveAcceptHandler )(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg) typedef
Devolución de llamada invoca cuando un enviado previamente ReceiveInit es aceptada por el destino.
ReceiveInitHandler )(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg) typedef
uint16_t(*
Devolución de llamada invoca cuando se recibe una ReceiveInit mensaje.
RejectHandler )(BDXTransfer *aXfer, StatusReport *aReport) typedef
void(*
Se invoca si el destino rechazó uno de los mensajes de inicialización anteriores.
SendAcceptHandler )(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg) typedef
Devolución de llamada invoca cuando un enviado previamente SendInit es aceptada por el destino.
SendInitHandler )(BDXTransfer *aXfer, SendInit *aSendInitMsg) typedef
uint16_t(*
Devolución de llamada invoca cuando se recibe una SendInit mensaje.
XferDoneHandler )(BDXTransfer *aXfer) typedef
void(*
Manejar los casos donde la transferencia está terminada.
XferErrorHandler )(BDXTransfer *aXfer, StatusReport *aXferError) typedef
void(*
Manija TransferError mensajes recibidos o enviados por BDX.

Funciones

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

Clases

nl :: Armadura :: Perfiles :: :: BDX_Development BdxNode
nl :: Armadura :: Perfiles :: :: BDX_Development BlockAck

El BlockAck mensaje se utiliza para reconocer un bloque de datos.

nl :: Armadura :: Perfiles :: :: BDX_Development BlockAckV1

El BlockAckV1 mensaje se utiliza para reconocer un bloque de datos.

nl :: Armadura :: Perfiles :: :: BDX_Development BlockEOF

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

nl :: Armadura :: Perfiles :: :: BDX_Development BlockEOFAck

El BlockEOFAck mensaje se utiliza para reconocer el último bloque de datos.

nl :: Armadura :: Perfiles :: :: BDX_Development BlockEOFAckV1

El BlockEOFAckV1 mensaje se utiliza para reconocer el último bloque de datos.

nl :: Armadura :: Perfiles :: :: BDX_Development BlockEOFV1

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

nl :: Armadura :: Perfiles :: :: BDX_Development BlockQuery

El BlockQuery mensaje se utiliza para solicitar que un bloque de datos se transfiere del emisor al receptor.

nl :: Armadura :: Perfiles :: :: BDX_Development BlockQueryV1

El BlockQueryV1 mensaje se utiliza para solicitar que un bloque de datos se transfiere del emisor al receptor.

nl :: Armadura :: Perfiles :: :: BDX_Development BlockSend

El BlockSend mensaje se utiliza para transferir un bloque de datos del emisor al receptor.

nl :: Armadura :: Perfiles :: :: BDX_Development BlockSendV1

El BlockSendV1 mensaje se utiliza para transferir un bloque de datos del emisor al receptor.

nl :: Armadura :: Perfiles :: :: BDX_Development ReceiveAccept

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

nl :: Armadura :: Perfiles :: :: BDX_Development ReceiveInit

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

nl :: Armadura :: Perfiles :: :: BDX_Development ReceiveReject

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

nl :: Armadura :: Perfiles :: :: BDX_Development SendAccept

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

nl :: Armadura :: Perfiles :: :: BDX_Development SendInit

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

nl :: Armadura :: Perfiles :: :: BDX_Development SendReject

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

nl :: Armadura :: Perfiles :: :: BDX_Development TransferError

El mensaje de error se utiliza para informar un error y cancelar un intercambio.

Estructuras

nl :: Armadura :: Perfiles :: :: BDX_Development BDXHandlers
nl :: Armadura :: Perfiles :: :: BDX_Development BDXTransfer

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

Espacios de nombres

nl :: Armadura :: Perfiles :: :: 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)

Este controlador se llama cada vez que se encuentra un error de Weave que no se puede devolver directamente a través de códigos de error al flujo de control definido por la aplicación del usuario.

Es decir, si ocurre un error dentro de otro controlador cuya firma tiene el tipo de retorno nulo (por ejemplo, en respuesta a un mensaje Weave entrante 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 deben llamar a Shutdown (). Tenga en cuenta que es posible que se produzca un error antes de que un BDXTransfer es inicializado (por ejemplo, ya 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 asociado con esta transferencia
[in] anErrorCode
El código de error que necesitamos procesar.

GetBlockHandler

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

Get a block of data to be transmitted.

La persona que llama proporciona el espacio de almacenamiento en búfer (búfer y longitud del búfer, pasados ​​por referencia). Callee (aplicación de usuario) DEBE usar el búfer provisto, pero por razones de compatibilidad con versiones anteriores, puede devolver su propio búfer. Destinatario de la llamada no debe ofrecer más que el aLength de bytes. En cambio, aLength contiene el número real de bytes leídos en el buffer.

Detalles
Parámetros
[in] aXfer
El BDXTransfer asociado con esta transferencia en curso
[in,out] aLength
La longitud de los datos leídos y almacenados en este bloque. En llamada a la función contiene la longitud de la memoria intermedia del pasado en el aDataBlock . A su regreso, 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 marco; el destinatario de la llamada puede usar ese espacio para llenar el búfer o proporcionar su propio espacio de almacenamiento en búfer (para aplicaciones de compatibilidad con versiones anteriores). Las aplicaciones que utilizan el búfer proporcionado no deben asumir ninguna alineación.
[out] aLastBlock
Es cierto que si el bloque debe ser enviado como BlockEOF y la transferencia completada, falso en caso contrario

PutBlockHandler

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

Maneja el bloque de datos apuntado por un DataBlock de longitud aLength.

Es probable que esto implique escribirlo en un archivo y cerrar dicho archivo 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 de datos real
[in] aLastBlock
Es cierto que si el bloque fue recibido como un BlockEOF y la transferencia completada, en caso contrario. Si es verdadero, el programador probablemente debería finalizar cualquier identificador de archivo, teniendo en cuenta que se llamará a XferDoneHandler después de esto.

ReceiveAcceptHandler

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

Devolución de llamada invoca cuando un enviado previamente ReceiveInit es aceptada por el destino.

Es posible que desee aprovechar esta oportunidad para abrir archivos o asignar recursos para la transferencia si no lo hizo al iniciarla.

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

ReceiveInitHandler

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

Devolución de llamada invoca cuando se recibe una ReceiveInit mensaje.

Su trabajo es determinar si desea aceptar la recepción y, de ser así, establecer aXfer-> mIsAccepted = true para que el protocolo envíe un mensaje de aceptación al iniciador. El BDXTransfer objeto se inició a los valores predeterminados. Este es un buen lugar para adjuntar cualquier estado específico de la aplicación (identificadores de archivos abiertos, etc.) a aXfer-> mAppState. También debe adjuntar los controladores necesarios para el manejo por ejemplo, bloque a la BDXTransfer objeto en este punto. Si se devuelve un código de error que no sea kStatus_Success, se asume 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 asociado con esta transferencia
[in] aReceiveInitMsg
Puntero a la ReceiveInit mensaje que estamos procesando

RejectHandler

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

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

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

SendAcceptHandler

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

Devolución de llamada invoca cuando un enviado previamente SendInit es aceptada por el destino.

Es posible que desee aprovechar esta oportunidad para abrir archivos o asignar recursos para la transferencia si no lo hizo al iniciarla.

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

SendInitHandler

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

Devolución de llamada invoca cuando se recibe una SendInit mensaje.

Su función es determinar si desea aceptar la SendInit y, si es así, establecer aXfer-> mIsAccepted = true para que el protocolo enviará un mensaje de aceptación al iniciador. El BDXTransfer objeto se inició a los valores predeterminados. Este es un buen lugar para adjuntar cualquier estado específico de la aplicación (identificadores de archivos abiertos, etc.) a aXfer-> mAppState. También debe adjuntar los controladores necesarios para el manejo por ejemplo, bloque a la BDXTransfer objeto en este punto. Si se devuelve un código de error que no sea WEAVE_NO_ERROR, se asume 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 asociado con esta transferencia
[in] aSendInitMsg
Puntero a la SendInit mensaje que estamos procesando

XferDoneHandler

void(* XferDoneHandler)(BDXTransfer *aXfer)

Manejar los casos donde la transferencia está terminada.

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

XferErrorHandler

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

Manija TransferError mensajes recibidos o enviados por BDX.

Nota: La transferencia BDX se presume que es potencialmente recuperable (por ejemplo, posiblemente temporal de PacketBuffers por el momento) y por lo tanto la opción de llamar apagado () se deja al programador de la aplicación y las devoluciones de llamada que definen. TODO: verificar esto y conciliarlo con el idioma en el documento BDX, que dice: "[Un TransferError] Puede ser enviado en cualquier momento por cualquiera de las partes para finalizar prematuramente la transferencia masiva de datos".

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

Funciones

GetBDXAckFlag

uint16_t GetBDXAckFlag(
  ExchangeContext *anEc
)

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

Detalles
Parámetros
[in] anEc
El contexto de intercambio en el que deberíamos obtener la bandera
Devoluciones
0 o kSendFlag_RequestAck