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. Vengono gestiti da BdxServer, che gestisce la creazione e l'inizializzazione di nuovi trasferimenti, inclusa la gestione delle connessioni e di ExchangeContext.

Attributi pubblici

mAmInitiator
bool
mAmSender
bool
mAppState
void *
mBlockCounter
uint32_t
Il numero di blocco successivo per cui prevediamo di ricevere un messaggio BlockQuery o BlockACK al momento dell'invio (una volta iniziato ufficialmente il trasferimento).
mBytesSent
uint64_t
mExchangeContext
mFileDesignator
Membri con dati correlati a file/blocco DA FARE: rimuovere questo elemento? O dovremmo semplicemente stipulare un contratto per definire l'aspetto di questa stringa e come verrà utilizzata? Nello specifico, è supportato da un PacketBuffer? Se è così, probabilmente non dovrebbe rimanere in giro per l'intero xfer dato che occupa un 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

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 dei blocchi 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 controllare se è stato impostato un gestore e, in quel caso, lo chiamano.
DispatchRejectHandler(StatusReport *aReport)
void
Se è stato impostato il gestore del rifiuto, chiamalo.
DispatchSendAccept(SendAccept *aSendAcceptMsg)
Se il gestore dell'invio di accettazione è stato impostato, chiamalo.
DispatchXferDoneHandler(void)
void
Se il gestore del trasferimento completato è stato impostato, chiamalo.
DispatchXferErrorHandler(StatusReport *aXferError)
void
Se il gestore degli errori di trasferimento è stato impostato, 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 per questo 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 numero di blocco successivo per cui prevediamo di ricevere un messaggio BlockQuery o BlockACK al momento dell'invio (una volta iniziato ufficialmente il trasferimento).

Alla ricezione, si tratta del successivo BlockSend che prevediamo di ricevere o dell'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

Membri con dati correlati a file/blocco DA FARE: rimuovere questo elemento? O dovremmo semplicemente stipulare un contratto per definire l'aspetto di questa stringa e come verrà utilizzata? Nello specifico, è supportato da un PacketBuffer? Se è così, probabilmente non dovrebbe rimanere in giro per l'intero xfer dato che occupa un 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

Funzioni pubbliche

DispatchErrorHandler

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

Se il gestore degli errori è stato impostato, chiamalo.

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

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 dei blocchi get, chiamalo.

Dettagli
Parametri
[in] aLength
Lunghezza del blocco
[in] aDataBlock
Puntatore al blocco di dati
[in] aLastBlock
True se questo è l'ultimo blocco del 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
Puntatore al blocco di dati
[in] aLastBlock
True se questo è l'ultimo blocco del trasferimento

DispatchReceiveAccept

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

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

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

Pertanto, dovrebbe essere utilizzata come interfaccia pubblica per le chiamate di callback, che non dovrebbero mai essere toccate direttamente dalle applicazioni esterne. È possibile che una revisione futura di BDXTransfer utilizzi un oggetto delegato anziché memorizzare singoli puntatori a ciascuno dei callback.

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

DispatchRejectHandler

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

Se è stato impostato il gestore del rifiuto, chiamalo.

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

Dettagli
Parametri
[in] aReport
Messaggio StatusReport da elaborare

DispatchSendAccept

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

Se il gestore dell'invio di accettazione è stato impostato, 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 il gestore del trasferimento completato è stato impostato, chiamalo.

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

DispatchXferErrorHandler

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

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

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

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 prevediamo 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
true se questa entità è il conducente 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 per questo oggetto BDXTransfer.

Devi sempre utilizzare questo metodo anziché provare a impostarli manualmente, poiché l'implementazione sottostante del modo in cui vengono archiviati i puntatori delle funzioni di 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.

Utilizza questa opportunità per liberare risorse associate al trasferimento e alla logica dell'applicazione.