nl::Weave::Profiles::BDX_Development::BDXTransfer

#include <src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.h>

Questa struttura contiene membri di dati che rappresentano un trasferimento BDX attivo.

Riepilogo

Questi oggetti vengono utilizzati da BdxProtocol per mantenere lo stato del protocollo. Sono gestiti da BdxServer, che gestisce la creazione e l'inizializzazione di nuovi trasferimenti, compresa la gestione di Connections ed ExchangeContexts.

Attributi pubblici

mAmInitiator
bool
mAmSender
bool
mAppState
void *
mBlockCounter
uint32_t
Il prossimo numero di blocco per cui prevediamo di ricevere una BlockQuery o un BlockACK durante l'invio (una volta iniziato ufficialmente il trasferimento).
mBytesSent
uint64_t
mExchangeContext
mFileDesignator
file/bloccare dati correlati membri TODO: rimuovere questo? oppure dobbiamo stabilire un contratto con l'aspetto che potrebbe avere questa stringa e come verrà usata? Nello specifico, è supportato da un PacketBuffer? Se è così, probabilmente non dovrebbe restare nei paraggi per l'intero xfer, che occupa un file
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

Funzioni pubbliche

DispatchErrorHandler(WEAVE_ERROR anErrorCode)
void
Se il gestore degli errori è stato impostato, chiamalo.
DispatchGetBlockHandler(uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)
void
Se è stato impostato il gestore del blocco get, chiamalo.
DispatchPutBlockHandler(uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
void
Se è stato impostato il gestore del blocco put, chiamalo.
DispatchReceiveAccept(ReceiveAccept *aReceiveAcceptMsg)
I committenti si limitano a verificare se è stato impostato un gestore e, in caso affermativo, lo chiamano.
DispatchRejectHandler(StatusReport *aReport)
void
Se è stato impostato il gestore dei rifiuti, chiamalo.
DispatchSendAccept(SendAccept *aSendAcceptMsg)
Se è stato impostato il gestore di accettazione di invio, chiamalo.
DispatchXferDoneHandler(void)
void
Se è stato impostato il gestore del trasferimento effettuato, chiamalo.
DispatchXferErrorHandler(StatusReport *aXferError)
void
Se è stato impostato il gestore degli errori di trasferimento, chiamalo.
GetDefaultFlags(bool aExpectResponse)
uint16_t
Questa funzione restituisce i flag predefiniti da inviare con un messaggio.
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
Questa funzione imposta i gestori dell'oggetto BDXTransfer.
Shutdown(void)
void
 Shuts down the current transfer, including closing any open ExchangeContext.

Attributi pubblici

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

Il prossimo numero di blocco per cui prevediamo di ricevere una BlockQuery o un BlockACK durante l'invio (una volta iniziato ufficialmente il trasferimento).

Al momento della ricezione, è il prossimo BlockSend che ci aspettiamo di ricevere o l'ultima BlockQuery che abbiamo inviato (dopo l'inizio ufficiale del trasferimento e la prima query inviata).

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

file/bloccare dati correlati membri TODO: rimuovere questo? oppure dobbiamo stabilire un contratto con l'aspetto che potrebbe avere questa stringa e come verrà usata? Nello specifico, è supportato da un PacketBuffer? Se è così, probabilmente non dovrebbe restare nei paraggi per l'intero xfer, che occupa un file

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

Funzioni pubbliche

DispatchErrorHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchErrorHandler(
  WEAVE_ERROR anErrorCode
)

Se il gestore degli errori è stato impostato, chiamalo.

Se non viene configurato, arresta anche il trasferimento come comportamento predefinito.

Dettagli
Parametri
[in] anErrorCode
Codice di errore da elaborare

DispatchGetBlockHandler

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

Se è stato impostato il gestore del blocco get, chiamalo.

Dettagli
Parametri
[in] aLength
Lunghezza del blocco
[in] aDataBlock
Punta al blocco di dati
[in] aLastBlock
True se questo è l'ultimo blocco nel trasferimento

DispatchPutBlockHandler

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

Se è stato impostato il gestore del blocco put, chiamalo.

Dettagli
Parametri
[in] aLength
Lunghezza del blocco
[in] aDataBlock
Punta al blocco di dati
[in] aLastBlock
True se questo è l'ultimo blocco nel trasferimento

DispatchReceiveAccept

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

I committenti si limitano a verificare se è stato impostato un gestore e, in caso affermativo, lo chiamano.

Se è stato impostato il gestore di accettazione in caso di ricezione, chiamalo.

Pertanto, dovrebbero essere usati come interfaccia pubblica per le chiamate dei callback, che non dovrebbero mai essere toccati direttamente dalle applicazioni esterne. È possibile che una revisione futura di BDXTransfer utilizzerà un oggetto delegato anziché archiviare singoli puntatori a ciascun callback.

Dettagli
Parametri
[in] aReceiveAcceptMsg
ReceiveAccept il messaggio da elaborare
Restituisce
un valore di errore

DispatchRejectHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchRejectHandler(
  StatusReport *aReport
)

Se è stato impostato il gestore dei rifiuti, chiamalo.

Se non viene configurato, arresta anche il trasferimento come comportamento predefinito.

Dettagli
Parametri
[in] aReport
Messaggio StatusReport da elaborare

DispatchSendAccept

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

Se è stato impostato il gestore di accettazione di invio, chiamalo.

Dettagli
Parametri
[in] aSendAcceptMsg
Messaggio SendAccept da elaborare
Restituisce
un valore di errore

DispatchXferDoneHandler

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

Se è stato impostato il gestore del trasferimento effettuato, chiamalo.

Se non viene configurato, arresta anche il trasferimento come comportamento predefinito.

DispatchXferErrorHandler

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

Se è stato impostato il gestore degli errori di trasferimento, chiamalo.

Se non viene configurato, arresta anche il trasferimento come comportamento predefinito.

Dettagli
Parametri
[in] aXferError
Report sullo stato di un errore da elaborare

GetDefaultFlags

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

Questa funzione restituisce i flag predefiniti da inviare con un messaggio.

Dettagli
Parametri
[in] aExpectResponse
Se ci aspettiamo una risposta a questo messaggio
Restituisce
I flag da inviare

IsAsync

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::IsAsync(
  void
)

 Returns true if this transfer is asynchronous, false otherwise.

Dettagli
Restituisce
true se il trasferimento è asincrono.

IsDriver

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::IsDriver(
  void
)

 Returns true if this entity (node) is the driver for this transfer, false otherwise.

Dettagli
Restituisce
vero se questa entità è il motore del trasferimento

Reimposta

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

 Sets all pointers to NULL, resets counters, etc.

Richiamato all'arresto.

SetHandlers

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

Questa funzione imposta i gestori dell'oggetto BDXTransfer.

Dovresti usare sempre questo metodo anziché provare a impostarli manualmente poiché l'implementazione di base della modalità di archiviazione dei puntatori delle funzioni del gestore non fa parte dell'API pubblica.

Dettagli
Parametri
[in] aHandlers
Struttura dei gestori di callback da chiamare

Arresto

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

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

Sfrutta questa opportunità per liberare eventuali risorse associate a questo trasferimento e alla logica dell'applicazione.

{1 Il processo di BDX