nl:: Weave:: Perfis:: 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 devem ser usados para uso em produção.
Resumo
Enumerações |
|
---|---|
@80
|
tipo enumerado |
@81
|
tipo enumerado |
@82
|
tipo enumerado |
@83
|
tipo enumerado |
Typedefs |
|
---|---|
BdxClient
|
typedef |
BdxServer
|
typedef |
ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode)
|
typedefvoid(*
Esse gerenciador é chamado sempre que ocorre um erro de Weave que não pode ser retornado diretamente por códigos de erro para o fluxo de controle definido 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(*
Processe o bloco de dados apontado por aDataBlock de comprimento aLength. |
ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg)
|
typedef Callback invocado 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 Callback invocado 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(*
Processar casos em que a transferência foi concluída |
XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError)
|
typedefvoid(*
Processar mensagens TransferError recebidas ou enviadas pelo BDX. |
Functions |
|
---|---|
GetBDXAckFlag(ExchangeContext *anEc)
|
uint16_t
GetBDXAckFlag retorna a sinalização apropriada para o campo RequestAck, dependendo da conexão do contexto de troca (sem confirmação de solicitação para TCP) e com base na compatibilidade com 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 receptor for o iniciador. |
nl:: |
A mensagem ReceiveInit é usada para iniciar uma troca quando o receptor é o iniciador. |
nl:: |
A mensagem ReceiveRecusa é 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 SendRejected é 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
88
@82
@83
@83
Typedefs
BdxClient
BdxNode BdxClient
BdxServer
BdxNode BdxServer
ErrorHandler
void(* ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode)
Esse gerenciador é chamado sempre que ocorre um erro de Weave que não pode ser retornado diretamente por códigos de erro para o fluxo de controle definido pelo usuário.
Ou seja, se ocorrer um erro em outro gerenciador com uma assinatura que tenha o tipo de retorno vazio (por exemplo, em resposta a uma mensagem do Weave recebida ou até mesmo enviada pelo protocolo), esse gerenciador será chamado para que o usuário possa determinar se a transferência pode ser recuperada e continuar ou se ele precisa chamar Shutdown(). É possível que ocorra um erro antes que um BDXTransfer seja inicializado (por exemplo, muitos objetos de transferência alocados). Nesse caso, o erro será registrado pelo Weave e o protocolo processará a limpeza dos estados necessários alocados.
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 do buffer (buffer e tamanho do buffer, passados 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 que aLength
de bytes. No retorno, 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)
Processe o bloco de dados apontado por aDataBlock de comprimento aLength.
Provavelmente, isso 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)
Callback invocado quando um ReceiveInit enviado anteriormente é aceito pelo destino.
Talvez você queira 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.
A função dele é determinar se você quer aceitar o recebimento 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. Este é um bom lugar para anexar qualquer estado específico do aplicativo (alças de arquivos abertas etc.) a aXfer->mAppState. Você também precisa anexar os gerenciadores necessários para, por exemplo, o processamento de blocos ao objeto BDXTransfer. Se um código de erro diferente de kStatus_Success for retornado, a transferência será considerada rejeitada e o protocolo processará o envio de uma mensagem de rejeição com o código.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
Rejeitador
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)
Callback invocado quando um SendInit enviado anteriormente é aceito pelo destino.
Talvez você queira 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.
A função dele é determinar se você quer aceitar o SendInit e, em caso afirmativo, definir aXfer->mIsAccepted=true para que o protocolo envie uma mensagem de aceitação ao iniciador. O objeto BDXTransfer é iniciado para as configurações padrão. Este é um bom lugar para anexar qualquer estado específico do aplicativo (alças de arquivos abertas etc.) a aXfer->mAppState. Você também precisa anexar os gerenciadores necessários para, por exemplo, o processamento de blocos ao objeto BDXTransfer. 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)
Processar casos em que a transferência foi concluída
Detalhes | |||
---|---|---|---|
Parâmetros |
|
XferErrorHandler
void(* XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError)
Processar mensagens TransferError recebidas ou enviadas pelo BDX.
Observação: presume-se que a transferência BDX seja potencialmente recuperável (possivelmente temporariamente, como fora dos PackageBuffers) no momento. Portanto, a opção de chamar Shutdown() é deixada para o programador de aplicativos e para os callbacks definidos. TODO: confirmar e reconciliar com a linguagem do documento BDX, que declara: "quoquo;[A TransferError] pode ser enviada a qualquer momento por qualquer uma das partes para encerrar prematuramente a transferência de dados em massa."
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
Functions
GetBDXAckFlag
uint16_t GetBDXAckFlag( ExchangeContext *anEc )
GetBDXAckFlag retorna a sinalização apropriada para o campo RequestAck, dependendo da conexão do contexto de troca (sem confirmação de solicitação para TCP) e com base na compatibilidade com tempo de compilação para WRMP.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
0 ou kSendFlag_RequestAck
|