nl:: Weave:: Profiles:: BDX_Development
Esse namespace inclui todas as interfaces do Weave para o perfil da Transferência de dados em massa (BDX) que estão ativamente em desenvolvimento e não devem ser usadas 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(*
Processar o bloco de dados apontados por um 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(*
Callback invocado 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(*
Callback invocado ao receber uma mensagem SendInit. |
XferDoneHandler)(BDXTransfer *aXfer)
|
typedefvoid(*
Lidar com casos em que a transferência é concluída. |
XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError)
|
typedefvoid(*
Gerenciar mensagens TransferError recebidas ou enviadas pelo BDX. |
remotas |
|
---|---|
GetBDXAckFlag(ExchangeContext *anEc)
|
uint16_t
GetBDXAckFlag retorna a sinalização adequada para o campo RequestAck, dependendo da conexão do contexto de troca (nenhuma confirmação de solicitação para TCP) e com base no suporte ao tempo de compilação para WRMP.
|
Aulas |
|
---|---|
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 receptor é 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:: |
Essa mensagem é usada para informar um erro e cancelar uma troca. |
Estruturas |
|
---|---|
nl:: |
|
nl:: |
Essa estrutura contém membros de dados que representam uma transferência ativa do BDX. |
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 gerenciador com uma assinatura que tenha o tipo de retorno nulo (por exemplo, em resposta a uma mensagem Weave recebida ou mesmo despachada pelo protocolo), esse gerenciador será chamado para que o usuário possa determinar se a transferência pode ser recuperada e continuar ou se deve chamar Shutdown(). Observe que é possível ocorrer um erro antes que uma BDXTransfer seja inicializada (por exemplo, muitos objetos de transferência alocados). Nesse caso, esse erro será registrado pelo Weave e o protocolo processará 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 o aLength
de bytes. Quando retornamos, 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)
Processar o bloco de dados apontados por um aDataBlock de comprimento aLength.
Provavelmente, isso envolve gravar 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.
Use 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)
Callback invocado ao receber uma mensagem ReceiveInit.
A função dele é determinar se você deseja 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. Esse é um bom momento para anexar qualquer estado específico do aplicativo (identificadores de arquivo abertos etc.) a aXfer->mAppState. Também é preciso anexar os gerenciadores necessários para, por exemplo, lidar com blocos ao objeto BDXTransfer. Se um código de erro diferente de kStatus_Success for retornado, presume-se que a transferência foi 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)
Callback invocado quando um SendInit enviado anteriormente é aceito pelo destino.
Use 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)
Callback invocado 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 para o iniciador. O objeto BDXTransfer é iniciado para as configurações padrão. Esse é um bom momento para anexar qualquer estado específico do aplicativo (identificadores de arquivo abertos etc.) a aXfer->mAppState. Também é preciso anexar os gerenciadores necessários para, por exemplo, lidar com blocos ao objeto BDXTransfer. Se for retornado um código de erro diferente de WEAVE_NO_ERROR, presume-se que a transferência foi rejeitada e o protocolo processará o envio de uma mensagem de rejeição com o código.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
XferDoneHandler
void(* XferDoneHandler)(BDXTransfer *aXfer)
Lidar com casos em que a transferência é concluída.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
XferErrorHandler
void(* XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError)
Gerenciar 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 pacotes Buffers no momento) e, portanto, a opção de chamar Shutdown() é deixada para o programador do aplicativo e os callbacks definidos. TODO: verifique e reconcilie com a linguagem no documento BDX, que afirma: "[Um TransferError] pode ser enviado a qualquer momento por qualquer uma das partes para encerrar prematuramente a transferência de dados em massa".
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
remotas
GetBDXAckFlag
uint16_t GetBDXAckFlag( ExchangeContext *anEc )
GetBDXAckFlag retorna a sinalização adequada para o campo RequestAck, dependendo da conexão do contexto de troca (nenhuma confirmação de solicitação para TCP) e com base no suporte ao tempo de compilação para WRMP.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
0 ou kSendFlag_RequestAck
|