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
[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 de 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 de bloco put foi 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 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
[in] aReceiveAcceptMsg
mensagem ReceiveAccept a ser processada.
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
[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 configurado, chame-o.

Detalhes
Parâmetros
[in] aSendAcceptMsg
mensagem SendAccept a ser processada;
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
[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 sinalizações padrão a serem enviadas com uma mensagem.

Detalhes
Parâmetros
[in] aExpectResponse
Se esperamos uma resposta a esta mensagem
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
[in] aHandlers
Estrutura dos gerenciadores de callback a serem chamados

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.