nl:: Weave:: Profiles:: BDX_Development:: BDXTransfer
#include <src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.h>
Essa estrutura contém membros de dados que representam uma transferência ativa do BDX.
Resumo
Esses objetos são usados pelo Bdx Protocol para manter o estado do protocolo. Elas são gerenciadas pelo BdxServer, que lida com a criação e inicialização de novas transferências, incluindo o gerenciamento de Connections e ExchangeContexts.
Atributos públicos |
|
---|---|
mAmInitiator
|
bool
|
mAmSender
|
bool
|
mAppState
|
void *
|
mBlockCounter
|
uint32_t
O próximo número de bloco esperamos receber uma BlockQuery ou BlockACK para o envio (assim que a transferência for iniciada oficialmente).
|
mBytesSent
|
uint64_t
|
mExchangeContext
|
|
mFileDesignator
|
arquivo/bloco de dados relacionados membros TODO: remover isso? ou devemos apenas estabelecer um contrato de como essa string pode ser e como ela será usada? Especificamente, ele tem o suporte de um PackageBuffer? Em caso afirmativo, ele provavelmente não deve permanecer por todo o Xfer, já que isso ocupa um pbuf.
|
mFirstQuery
|
bool
|
mHandlers
|
|
mIsAccepted
|
bool
|
mIsCompletedSuccessfully
|
bool
|
mIsInitiated
|
bool
|
mIsWideRange
|
bool
|
mLength
|
uint64_t
|
mMaxBlockSize
|
uint16_t
|
mNext)(BDXTransfer &)
|
|
mStartOffset
|
uint64_t
|
mTransferMode
|
uint8_t
|
mVersion
|
uint8_t
|
Funções públicas |
|
---|---|
DispatchErrorHandler(WEAVE_ERROR anErrorCode)
|
void
Se o gerenciador de erros tiver sido definido, chame-o.
|
DispatchGetBlockHandler(uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)
|
void
Se o gerenciador de bloco "get" tiver sido definido, chame-o.
|
DispatchPutBlockHandler(uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
|
void
Se o gerenciador de bloco put foi definido, chame-o.
|
DispatchReceiveAccept(ReceiveAccept *aReceiveAcceptMsg)
|
Os agentes simplesmente verificam se um manipulador foi definido e, em seguida, chamam-o em caso afirmativo.
|
DispatchRejectHandler(StatusReport *aReport)
|
void
Se o gerenciador de rejeição tiver sido definido, chame-o.
|
DispatchSendAccept(SendAccept *aSendAcceptMsg)
|
Se o gerenciador de aceitação de envio tiver sido configurado, chame-o.
|
DispatchXferDoneHandler(void)
|
void
Se o gerenciador de transferência concluída tiver sido definido, chame-o.
|
DispatchXferErrorHandler(StatusReport *aXferError)
|
void
Se o gerenciador de erros de transferência tiver sido definido, chame-o.
|
GetDefaultFlags(bool aExpectResponse)
|
uint16_t
Essa função retorna as sinalizações padrão a serem enviadas com uma mensagem.
|
IsAsync(void)
|
bool
Returns true if this transfer is asynchronous, false otherwise. |
IsDriver(void)
|
bool
Returns true if this entity (node) is the driver for this transfer, false otherwise. |
Reset(void)
|
void
Sets all pointers to NULL, resets counters, etc. |
SetHandlers(BDXHandlers aHandlers)
|
void
Essa função define os gerenciadores nesse objeto BDXTransfer.
|
Shutdown(void)
|
void
Shuts down the current transfer, including closing any open ExchangeContext. |
Atributos públicos
mAmInitiator
bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mAmInitiator
mAmSender
bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mAmSender
mAppState
void * nl::Weave::Profiles::BDX_Development::BDXTransfer::mAppState
mBlockCounter
uint32_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mBlockCounter
O próximo número de bloco esperamos receber uma BlockQuery ou BlockACK para o envio (assim que a transferência for iniciada oficialmente).
Ao receber, é o próximo BlockSend que esperamos receber ou a última BlockQuery que enviamos (após o início oficial da transferência e o envio da primeira consulta).
mBytesSent
uint64_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mBytesSent
mExchangeContext
ExchangeContext * nl::Weave::Profiles::BDX_Development::BDXTransfer::mExchangeContext
mFileDesignator
ReferencedString nl::Weave::Profiles::BDX_Development::BDXTransfer::mFileDesignator
arquivo/bloco de dados relacionados membros TODO: remover isso? ou devemos apenas estabelecer um contrato de como essa string pode ser e como ela será usada? Especificamente, ele tem o suporte de um PackageBuffer? Em caso afirmativo, ele provavelmente não deve permanecer por todo o Xfer, já que isso ocupa um pbuf.
mFirstQuery
bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mFirstQuery
mHandlers
BDXHandlers nl::Weave::Profiles::BDX_Development::BDXTransfer::mHandlers
mIsAccepted
bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsAccepted
mIsCompletedSuccessfully
bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsCompletedSuccessfully
mIsInitiated
bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsInitiated
mIsWideRange
bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsWideRange
mLength
uint64_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mLength
mMaxBlockSize
uint16_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mMaxBlockSize
mNext
WEAVE_ERROR(* nl::Weave::Profiles::BDX_Development::BDXTransfer::mNext)(BDXTransfer &)
mStartOffset
uint64_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mStartOffset
mTransferMode
uint8_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mTransferMode
mVersion
uint8_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mVersion
Funções públicas
DispatchErrorHandler
void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchErrorHandler( WEAVE_ERROR anErrorCode )
Se o gerenciador de erros tiver sido definido, chame-o.
Se ela não for definida, a transferência também será encerrada como o comportamento padrão.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
DispatchGetBlockHandler
void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchGetBlockHandler( uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock )
Se o gerenciador de bloco "get" tiver sido definido, chame-o.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
DispatchPutBlockHandler
void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchPutBlockHandler( uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock )
Se o gerenciador de bloco put foi definido, chame-o.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
DispatchReceiveAccept
WEAVE_ERROR nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchReceiveAccept( ReceiveAccept *aReceiveAcceptMsg )
Os agentes simplesmente verificam se um manipulador foi definido e, em seguida, chamam-o em caso afirmativo.
Se o gerenciador de aceitação de recebimento tiver sido configurado, chame-o.
Portanto, eles devem ser usados como a interface pública para chamar callbacks, que nunca devem ser tocados diretamente por aplicativos externos. É possível que uma revisão futura de BDXTransfer use um objeto delegado em vez de armazenar ponteiros individuais para cada um dos callbacks.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
um valor de erro
|
DispatchRejectHandler
void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchRejectHandler( StatusReport *aReport )
Se o gerenciador de rejeição tiver sido definido, chame-o.
Se ela não for definida, a transferência também será encerrada como o comportamento padrão.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
DispatchSendAccept
WEAVE_ERROR nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchSendAccept( SendAccept *aSendAcceptMsg )
Se o gerenciador de aceitação de envio tiver sido configurado, chame-o.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
um valor de erro
|
DispatchXferDoneHandler
void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchXferDoneHandler( void )
Se o gerenciador de transferência concluída tiver sido definido, chame-o.
Se ela não for definida, a transferência também será encerrada como o comportamento padrão.
DispatchXferErrorHandler
void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchXferErrorHandler( StatusReport *aXferError )
Se o gerenciador de erros de transferência tiver sido definido, chame-o.
Se ela não for definida, a transferência também será encerrada como o comportamento padrão.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
GetDefaultFlags
uint16_t nl::Weave::Profiles::BDX_Development::BDXTransfer::GetDefaultFlags( bool aExpectResponse )
Essa função retorna as sinalizações padrão a serem enviadas com uma mensagem.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
As sinalizações a serem enviadas
|
IsAsync
bool nl::Weave::Profiles::BDX_Development::BDXTransfer::IsAsync( void )
Returns true if this transfer is asynchronous, false otherwise.
Detalhes | |
---|---|
Retorna |
true se a transferência for assíncrona.
|
IsDriver
bool nl::Weave::Profiles::BDX_Development::BDXTransfer::IsDriver( void )
Returns true if this entity (node) is the driver for this transfer, false otherwise.
Detalhes | |
---|---|
Retorna |
true se essa entidade for o driver da baldeação
|
Redefinir
void nl::Weave::Profiles::BDX_Development::BDXTransfer::Reset( void )
Sets all pointers to NULL, resets counters, etc.
Chamado quando desligado.
SetHandlers
void nl::Weave::Profiles::BDX_Development::BDXTransfer::SetHandlers( BDXHandlers aHandlers )
Essa função define os gerenciadores nesse objeto BDXTransfer.
Use esse método sempre em vez de tentar defini-los manualmente, já que a implementação subjacente de como os ponteiros da função do gerenciador são armazenados não faz parte da API pública.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
Desligamento
void nl::Weave::Profiles::BDX_Development::BDXTransfer::Shutdown( void )
Shuts down the current transfer, including closing any open ExchangeContext.
Aproveite para liberar todos os recursos associados a esta transferência e a lógica do seu aplicativo.