nl::Weave::Profiles::BDX_Development

Esse namespace inclui todas as interfaces no Weave para o perfil de Transferência de dados em massa (BDX, na sigla em inglês) que estão ativamente em desenvolvimento e não deve ser usado para uso em produção.

Resumo

Enumerações

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

Typedefs

BdxClient typedef
BdxServer typedef
ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode) typedef
void(*
Esse manipulador é chamado sempre que é encontrado um erro do Weave que não pode ser retornado diretamente por meio de códigos de erro para o fluxo de controle definido pelo aplicativo pelo usuário.
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(*
Processa o bloco de dados apontado por um aDataBlock de comprimento aLength.
ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg) typedef
Chamada de retorno invocada quando um ReceiveInit enviado anteriormente é aceito pelo destino.
ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg) typedef
uint16_t(*
Chamada de retorno invocada ao receber uma mensagem ReceiveInit.
RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport) typedef
void(*
Invocado se uma das mensagens Init anteriores foi rejeitada pelo destino.
SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg) typedef
Chamada de retorno invocada quando um SendInit enviado anteriormente é aceito pelo destino.
SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg) typedef
uint16_t(*
Chamada de retorno invocada ao receber uma mensagem SendInit.
XferDoneHandler)(BDXTransfer *aXfer) typedef
void(*
Lide com os casos em que a transferência é concluída.
XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError) typedef
void(*
Processa mensagens TransferError recebidas ou enviadas pelo BDX.

Funções

GetBDXAckFlag(ExchangeContext *anEc)
uint16_t
GetBDXAckFlag retorna a flag apropriada para o campo RequestAck dependendo da conexão do contexto de troca (sem confirmação de solicitação para TCP) e com base no suporte ao tempo de compilação para WRMP.

Classes

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

A mensagem BlockAck é usada para confirmar um bloco de dados.

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

A mensagem BlockAckV1 é usada para confirmar um bloco de dados.

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

A mensagem BlockEOF é usada para transferir o último bloco de dados do remetente para o destinatário.

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

A mensagem BlockEOFAck é usada para confirmar o último bloco de dados.

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

A mensagem BlockEOFAckV1 é usada para confirmar o último bloco de dados.

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

A mensagem BlockEOFV1 é usada para transferir o último bloco de dados do remetente para o destinatário.

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

A mensagem BlockQuery é usada para solicitar que um bloco de dados seja transferido do remetente para o destinatário.

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

A mensagem BlockQueryV1 é usada para solicitar que um bloco de dados seja transferido do remetente para o destinatário.

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

A mensagem BlockSend é usada para transferir um bloco de dados do remetente para o destinatário.

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

A mensagem BlockSendV1 é usada para transferir um bloco de dados do remetente para o destinatário.

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

A mensagem ReceiveAccept é usada para aceitar uma troca proposta quando o destinatário é o iniciador.

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

A mensagem ReceiveInit é usada para iniciar uma troca quando o destinatário é o iniciador.

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

A mensagem ReceiveReject é usada para rejeitar uma troca proposta quando o remetente é o iniciador.

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

A mensagem SendAccept é usada para aceitar uma troca proposta quando o remetente é o iniciador.

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

A mensagem SendInit é usada para iniciar uma troca quando o remetente é o iniciador.

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

A mensagem SendReject é usada para rejeitar uma troca proposta quando o remetente é o iniciador.

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

A mensagem de erro é usada para informar um erro e cancelar uma troca.

Estruturas

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

Essa estrutura contém membros de dados que representam uma transferência BDX ativa.

Namespaces

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

Enumerações

@80

 @80

@81

 @81

@82

 @82

@83

 @83

Typedefs

BdxClient

BdxNode BdxClient

BdxServer

BdxNode BdxServer

ErrorHandler

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

Esse manipulador é chamado sempre que é encontrado um erro do Weave que não pode ser retornado diretamente por meio de códigos de erro para o fluxo de controle definido pelo aplicativo pelo usuário.

Ou seja, se ocorrer um erro em outro manipulador cuja assinatura tenha o tipo de retorno nulo (por exemplo, em resposta a uma mensagem do Weave recebida ou mesmo despachada pelo protocolo), esse manipulador será chamado para que o usuário possa determinar se a transferência pode ser recuperada e continuar ou se ele deve chamar Shutdown(). É possível que um erro ocorra antes da inicialização de BDXTransfer (por exemplo, já há muitos objetos de transferência alocados). Nesse caso, esse erro será registrado pelo Weave e o protocolo tratará a limpeza de qualquer estado necessário alocado.

Detalhes
Parâmetros
[in] aXfer
Ponteiro para o BDXTransfer associado a esta transferência
[in] anErrorCode
O código de erro que precisamos processar

GetBlockHandler

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

Get a block of data to be transmitted.

O autor da chamada fornece o espaço de armazenamento em buffer (buffer e comprimento do buffer, transmitidos por referência). O recebedor da chamada (aplicativo do usuário) DEVE usar o buffer fornecido, mas, por motivos de compatibilidade com versões anteriores, pode retornar o próprio buffer. O recebedor da chamada não pode fornecer mais do que aLength de bytes. Ao retornar, aLength contém o número real de bytes lidos no buffer.

Detalhes
Parâmetros
[in] aXfer
O BDXTransfer associado a esta transferência em andamento
[in,out] aLength
O tamanho dos dados lidos e armazenados nesse bloco. Na chamada para a função, contém o comprimento do buffer transmitido na aDataBlock. Ao retornar, a variável contém o comprimento dos dados realmente lidos.
[in,out] aDataBlock
O ponteiro para o bloco de dados. Na entrada, contém o buffer fornecido pelo framework. o recebedor da chamada pode usar esse espaço para preencher o buffer ou fornecer seu próprio espaço de armazenamento em buffer (para aplicativos de compatibilidade com versões anteriores). Os aplicativos que usam o buffer fornecido não podem assumir nenhum alinhamento.
[out] aLastBlock
"True", se o bloco precisa ser enviado como um BlockEOF e a transferência é concluída; caso contrário, "false".

PutBlockHandler

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

Processa o bloco de dados apontado por um aDataBlock de comprimento aLength.

Provavelmente, isso vai envolver gravá-lo em um arquivo e fechar esse arquivo se isLastBlock for verdadeiro.

Detalhes
Parâmetros
[in] aXfer
O BDXTransfer associado a esta transferência em andamento
[in] aLength
O tamanho dos dados lidos e armazenados no bloco especificado
[in] aDataBlock
O bloco de dados real
[in] aLastBlock
Verdadeiro se o bloqueio foi recebido como um BlockEOF e a transferência foi concluída. Caso contrário, é falso. Se for "true", o programador provavelmente finalizará qualquer identificador de arquivo, tendo em mente que o XferDoneHandler será chamado depois disso

ReceiveAcceptHandler

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

Chamada de retorno invocada quando um ReceiveInit enviado anteriormente é aceito pelo destino.

Você pode usar essa oportunidade para abrir arquivos ou alocar recursos para a transferência, caso não tenha feito isso ao iniciá-la.

Detalhes
Parâmetros
[in] aXfer
Ponteiro para o BDXTransfer associado a esta transferência
[in] aReceiveAcceptMsg
Ponteiro para a mensagem ReceiveAccept que estamos processando

ReceiveInitHandler

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

Chamada de retorno invocada ao receber uma mensagem ReceiveInit.

Seu trabalho é determinar se você deseja aceitar o receive e, em caso afirmativo, definir aXfer->mIsAccepted=true para que o protocolo envie uma mensagem de aceitação para o iniciador. O objeto BDXTransfer é iniciado para as configurações padrão. Esse é um bom lugar para anexar qualquer estado específico do aplicativo (identificadores de arquivos abertos etc.) a aXfer->mAppState. Você também deve anexar os gerenciadores necessários para, por exemplo, processamento de blocos para o objeto BDXTransfer neste ponto. Se um código de erro diferente de kStatus_Success for retornado, a transferência será considerada rejeitada e o protocolo tratará o envio de uma mensagem de rejeição com o código.

Detalhes
Parâmetros
[in] aXfer
Ponteiro para o BDXTransfer associado a esta transferência
[in] aReceiveInitMsg
Ponteiro para a mensagem ReceiveInit que estamos processando

RejectHandler

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

Invocado se uma das mensagens Init anteriores foi rejeitada pelo destino.

Detalhes
Parâmetros
[in] aXfer
Ponteiro para o BDXTransfer associado a esta transferência
[in] aReport
Indicador para a rejeição da mensagem StatusReport que estamos processando

SendAcceptHandler

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

Chamada de retorno invocada quando um SendInit enviado anteriormente é aceito pelo destino.

Você pode usar essa oportunidade para abrir arquivos ou alocar recursos para a transferência, caso não tenha feito isso ao iniciá-la.

Detalhes
Parâmetros
[in] aXfer
Ponteiro para o BDXTransfer associado a esta transferência
[in] aSendAcceptMsg
Ponteiro para a mensagem SendAccept que estamos processando

SendInitHandler

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

Chamada de retorno invocada ao receber uma mensagem SendInit.

Sua função é determinar se você quer aceitar SendInit e, em caso afirmativo, definir aXfer->mIsAccepted=true para que o protocolo envie uma mensagem de aceitação para o iniciador. O objeto BDXTransfer é iniciado para as configurações padrão. Esse é um bom lugar para anexar qualquer estado específico do aplicativo (identificadores de arquivos abertos etc.) a aXfer->mAppState. Você também deve anexar os gerenciadores necessários para, por exemplo, processamento de blocos para o objeto BDXTransfer neste ponto. Se um código de erro diferente de WEAVE_NO_ERROR for retornado, a transferência será considerada rejeitada e o protocolo tratará o envio de uma mensagem de rejeição com o código.

Detalhes
Parâmetros
[in] aXfer
Ponteiro para o BDXTransfer associado a esta transferência
[in] aSendInitMsg
Ponteiro para a mensagem SendInit que estamos processando

XferDoneHandler

void(* XferDoneHandler)(BDXTransfer *aXfer)

Lide com os casos em que a transferência é concluída.

Detalhes
Parâmetros
[in] aXfer
Ponteiro para o BDXTransfer associado a esta transferência

XferErrorHandler

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

Processa mensagens TransferError recebidas ou enviadas pelo BDX.

Observação: presume-se que a transferência BDX seja potencialmente recuperável (possivelmente temporária, por exemplo, fora dos PackageBuffers no momento) e, portanto, a opção de chamar Shutdown() é deixada para o programador do aplicativo e para os callbacks definidos por ele. PENDENTE: verifique e reconcilie isso com o idioma do documento BDX, que afirma: "[A TransferError] Pode ser enviado a qualquer momento por qualquer uma das partes para prematuramente finalizar a transferência de dados em massa".

Detalhes
Parâmetros
[in] aXfer
Ponteiro para o BDXTransfer associado a esta transferência
[in] aXferError
Ponteiro para o erro da mensagem StatusReport que estamos processando

Funções

GetBDXAckFlag

uint16_t GetBDXAckFlag(
  ExchangeContext *anEc
)

GetBDXAckFlag retorna a flag apropriada para o campo RequestAck dependendo da conexão do contexto de troca (sem confirmação de solicitação para TCP) e com base no suporte ao tempo de compilação para WRMP.

Detalhes
Parâmetros
[in] anEc
O contexto da troca em que vamos receber a flag com base
Retornos
0 ou kSendFlag_RequestAck