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 BDX ativa.

Resumo

Esses objetos são usados pelo BdxProtocolo para manter o estado do protocolo. Eles são gerenciados pelo BdxServer, que cuida da 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 esperado para receber uma BlockQuery ou BlockACK para envio (após o início oficial da transferência).
mBytesSent
uint64_t
mExchangeContext
mFileDesignator
membros relacionados ao arquivo/bloco de dados TODO: remover isto? ou devemos apenas estabelecer um contrato de como essa string pode ficar e como ela será usada? Especificamente, ele tem o suporte de um PackageBuffer? Em caso afirmativo, ele provavelmente não deve ficar por todo o xfer, já que 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 do bloco get tiver sido definido, chame-o.
DispatchPutBlockHandler(uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
void
Se o gerenciador do bloco put tiver sido definido, chame-o.
DispatchReceiveAccept(ReceiveAccept *aReceiveAcceptMsg)
Os agentes simplesmente verificam se um gerenciador foi configurado e, em seguida, chamam-o, se for o caso.
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 definido, chame-o.
DispatchXferDoneHandler(void)
void
Se o gerenciador de transferência concluída tiver sido configurado, chame-o.
DispatchXferErrorHandler(StatusReport *aXferError)
void
Se o gerenciador de erros de transferência tiver sido configurado, chame-o.
GetDefaultFlags(bool aExpectResponse)
uint16_t
Essa função retorna as flags padrão que serão 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 manipuladores neste 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 esperado para receber uma BlockQuery ou BlockACK para envio (após o início oficial da transferência).

Quando receber, é o próximo BlockSend que esperamos receber ou a BlockQuery mais recente que enviamos (depois que a transferência é iniciada oficialmente e a primeira consulta enviada).

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

membros relacionados ao arquivo/bloco de dados TODO: remover isto? ou devemos apenas estabelecer um contrato de como essa string pode ficar e como ela será usada? Especificamente, ele tem o suporte de um PackageBuffer? Em caso afirmativo, ele provavelmente não deve ficar por todo o xfer, já que 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 não for definido, encerre também a transferência como um comportamento padrão.

Detalhes
Parâmetros
[in] anErrorCode
Código do erro a ser processado

DispatchGetBlockHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchGetBlockHandler(
  uint64_t *aLength,
  uint8_t **aDataBlock,
  bool *aLastBlock
)

Se o gerenciador do bloco get tiver sido definido, chame-o.

Detalhes
Parâmetros
[in] aLength
Comprimento do bloco
[in] aDataBlock
Ponteiro para o bloco de dados
[in] aLastBlock
Verdadeiro se este for o último bloco da transferência

DispatchPutBlockHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchPutBlockHandler(
  uint64_t aLength,
  uint8_t *aDataBlock,
  bool aLastBlock
)

Se o gerenciador do bloco put tiver sido definido, chame-o.

Detalhes
Parâmetros
[in] aLength
Comprimento do bloco
[in] aDataBlock
Ponteiro para o bloco de dados
[in] aLastBlock
Verdadeiro se este for o último bloco da transferência

DispatchReceiveAccept

WEAVE_ERROR nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchReceiveAccept(
  ReceiveAccept *aReceiveAcceptMsg
)

Os agentes simplesmente verificam se um gerenciador foi configurado e, em seguida, chamam-o, se for o caso.

Se o gerenciador de aceitação do recebimento tiver sido definido, chame-o.

Portanto, elas devem ser usadas como a interface pública para chamar callbacks, que nunca devem ser usados diretamente por aplicativos externos. É possível que uma revisão futura do BDXTransfer use um objeto delegado em vez de armazenar ponteiros individuais para cada um dos callbacks.

Detalhes
Parâmetros
[in] aReceiveAcceptMsg
Mensagem ReceiveAccept a ser processada
Retornos
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 não for definido, encerre também a transferência como um comportamento padrão.

Detalhes
Parâmetros
[in] aReport
Mensagem StatusReport a ser processada

DispatchSendAccept

WEAVE_ERROR nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchSendAccept(
  SendAccept *aSendAcceptMsg
)

Se o gerenciador de aceitação de envio tiver sido definido, chame-o.

Detalhes
Parâmetros
[in] aSendAcceptMsg
Mensagem SendAccept a ser processada
Retornos
um valor de erro

DispatchXferDoneHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchXferDoneHandler(
  void
)

Se o gerenciador de transferência concluída tiver sido configurado, chame-o.

Se não for definido, encerre também a transferência como um comportamento padrão.

DispatchXferErrorHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchXferErrorHandler(
  StatusReport *aXferError
)

Se o gerenciador de erros de transferência tiver sido configurado, chame-o.

Se não for definido, encerre também a transferência como um comportamento padrão.

Detalhes
Parâmetros
[in] aXferError
Relatório de status de um erro a ser processado

GetDefaultFlags

uint16_t nl::Weave::Profiles::BDX_Development::BDXTransfer::GetDefaultFlags(
  bool aExpectResponse
)

Essa função retorna as flags padrão que serão enviadas com uma mensagem.

Detalhes
Parâmetros
[in] aExpectResponse
Se esperarmos uma resposta a esta mensagem
Retornos
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
Retornos
verdadeiro 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
Retornos
Verdadeiro se a entidade for a origem da baldeação

Redefinir

void nl::Weave::Profiles::BDX_Development::BDXTransfer::Reset(
  void
)

 Sets all pointers to NULL, resets counters, etc.

Chamado ao desligar.

SetHandlers

void nl::Weave::Profiles::BDX_Development::BDXTransfer::SetHandlers(
  BDXHandlers aHandlers
)

Essa função define os manipuladores neste 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
[in] aHandlers
Estrutura de gerenciadores de callback a serem chamados

Encerramento

void nl::Weave::Profiles::BDX_Development::BDXTransfer::Shutdown(
  void
)

 Shuts down the current transfer, including closing any open ExchangeContext.

Use essa oportunidade para liberar os recursos associados a esta transferência e a lógica do seu aplicativo.