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)
|
typedefvoid(*
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)
|
typedefvoid(*
Get a block of data to be transmitted. |
PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
|
typedefvoid(*
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)
|
typedefuint16_t(*
Chamada de retorno invocada ao receber uma mensagem ReceiveInit. |
RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport)
|
typedefvoid(*
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)
|
typedefuint16_t(*
Chamada de retorno invocada ao receber uma mensagem SendInit. |
XferDoneHandler)(BDXTransfer *aXfer)
|
typedefvoid(*
Lide com os casos em que a transferência é concluída. |
XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError)
|
typedefvoid(*
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:: |
|
nl:: |
A mensagem BlockAck é usada para confirmar um bloco de dados. |
nl:: |
A mensagem BlockAckV1 é usada para confirmar um bloco de dados. |
nl:: |
A mensagem BlockEOF é usada para transferir o último bloco de dados do remetente para o destinatário. |
nl:: |
A mensagem BlockEOFAck é usada para confirmar o último bloco de dados. |
nl:: |
A mensagem BlockEOFAckV1 é usada para confirmar o último bloco de dados. |
nl:: |
A mensagem BlockEOFV1 é usada para transferir o último bloco de dados do remetente para o destinatário. |
nl:: |
A mensagem BlockQuery é usada para solicitar que um bloco de dados seja transferido do remetente para o destinatário. |
nl:: |
A mensagem BlockQueryV1 é usada para solicitar que um bloco de dados seja transferido do remetente para o destinatário. |
nl:: |
A mensagem BlockSend é usada para transferir um bloco de dados do remetente para o destinatário. |
nl:: |
A mensagem BlockSendV1 é usada para transferir um bloco de dados do remetente para o destinatário. |
nl:: |
A mensagem ReceiveAccept é usada para aceitar uma troca proposta quando o destinatário é o iniciador. |
nl:: |
A mensagem ReceiveInit é usada para iniciar uma troca quando o destinatário é o iniciador. |
nl:: |
A mensagem ReceiveReject é usada para rejeitar uma troca proposta quando o remetente é o iniciador. |
nl:: |
A mensagem SendAccept é usada para aceitar uma troca proposta quando o remetente é o iniciador. |
nl:: |
A mensagem SendInit é usada para iniciar uma troca quando o remetente é o iniciador. |
nl:: |
A mensagem SendReject é usada para rejeitar uma troca proposta quando o remetente é o iniciador. |
nl:: |
A mensagem de erro é usada para informar um erro e cancelar uma troca. |
Estruturas |
|
---|---|
nl:: |
|
nl:: |
Essa estrutura contém membros de dados que representam uma transferência BDX ativa. |
Namespaces |
|
---|---|
nl:: |
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
RejectHandler
void(* RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport)
Invocado se uma das mensagens Init anteriores foi rejeitada pelo destino.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
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 |
|
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 |
|
XferDoneHandler
void(* XferDoneHandler)(BDXTransfer *aXfer)
Lide com os casos em que a transferência é concluída.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
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 |
|
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 |
|
||
Retornos |
0 ou kSendFlag_RequestAck
|