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

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

Diese Struktur enthält Datenelemente, die eine aktive BDX-Übertragung darstellen.

Zusammenfassung

Diese Objekte werden vom BdxProtocol zur Verwaltung des Protokollstatus verwendet. Sie werden vom BdxServer verwaltet, der das Erstellen und Initialisieren neuer Übertragungen übernimmt, einschließlich der Verwaltung von Verbindungen und ExchangeContexts.

Öffentliche Attribute

mAmInitiator
bool
mAmSender
bool
mAppState
void *
mBlockCounter
uint32_t
Die nächste Blocknummer, von der wir erwarten, beim Senden eine BlockQuery oder BlockACK zu erhalten (sobald die Übertragung offiziell gestartet wurde).
mBytesSent
uint64_t
mExchangeContext
mFileDesignator
Datei-/Blockbezogene Datenelemente TODO: entfernen? oder sollen wir einfach einen Vertrag abschließen, wie dieser String aussehen könnte und wie er verwendet wird? Wird es von einem PacketBuffer gestützt? Wenn ja, sollte er nicht das gesamte Buch verwenden, da er mehr Speicherplatz benötigt.
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

Öffentliche Funktionen

DispatchErrorHandler(WEAVE_ERROR anErrorCode)
void
Rufen Sie den festgelegten Fehler-Handler auf.
DispatchGetBlockHandler(uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)
void
Wenn der get-Block-Handler festgelegt wurde, rufen Sie ihn auf.
DispatchPutBlockHandler(uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
void
Wenn der Block-Handler "put" festgelegt wurde, rufen Sie ihn auf.
DispatchReceiveAccept(ReceiveAccept *aReceiveAcceptMsg)
Dispatcher überprüfen einfach, ob ein Handler festgelegt wurde, und rufen ihn dann auf, wenn dies der Fall ist.
DispatchRejectHandler(StatusReport *aReport)
void
Wenn der Ablehnungs-Handler eingerichtet wurde, rufen Sie ihn auf.
DispatchSendAccept(SendAccept *aSendAcceptMsg)
Wenn der Handler für die Annahme des Sendevorgangs festgelegt wurde, rufen Sie ihn auf.
DispatchXferDoneHandler(void)
void
Wenn der Handler für die Übertragung abgeschlossen wurde, rufen Sie ihn auf.
DispatchXferErrorHandler(StatusReport *aXferError)
void
Wenn der Übertragungsfehler-Handler festgelegt wurde, rufen Sie ihn auf.
GetDefaultFlags(bool aExpectResponse)
uint16_t
Diese Funktion gibt die Standard-Flags zurück, die mit einer Nachricht gesendet werden sollen.
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
Diese Funktion legt die Handler für dieses BDXTransfer-Objekt fest.
Shutdown(void)
void
 Shuts down the current transfer, including closing any open ExchangeContext.

Öffentliche Attribute

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

Die nächste Blocknummer, von der wir erwarten, beim Senden eine BlockQuery oder BlockACK zu erhalten (sobald die Übertragung offiziell gestartet wurde).

Beim Empfang ist dies der nächste erwartete BlockSend oder die letzte von uns gesendete BlockQuery (nachdem die Übertragung offiziell begonnen hat und die erste gesendete Abfrage erfolgt).

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

Datei-/Blockbezogene Datenelemente TODO: entfernen? oder sollen wir einfach einen Vertrag abschließen, wie dieser String aussehen könnte und wie er verwendet wird? Wird es von einem PacketBuffer gestützt? Wenn ja, sollte er nicht das gesamte Buch verwenden, da er mehr Speicherplatz benötigt.

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

Öffentliche Funktionen

DispatchErrorHandler

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

Rufen Sie den festgelegten Fehler-Handler auf.

Wenn die Richtlinie nicht konfiguriert ist, beenden Sie die Übertragung auch standardmäßig.

Details
Parameter
[in] anErrorCode
Zu verarbeitender Fehlercode

DispatchGetBlockHandler

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

Wenn der get-Block-Handler festgelegt wurde, rufen Sie ihn auf.

Details
Parameter
[in] aLength
Länge des Blocks
[in] aDataBlock
Zeiger auf den Datenblock
[in] aLastBlock
„True“, wenn dies der letzte Block in der Übertragung ist

DispatchPutBlockHandler

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

Wenn der Block-Handler "put" festgelegt wurde, rufen Sie ihn auf.

Details
Parameter
[in] aLength
Länge des Blocks
[in] aDataBlock
Zeiger auf den Datenblock
[in] aLastBlock
„True“, wenn dies der letzte Block in der Übertragung ist

DispatchReceiveAccept

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

Dispatcher überprüfen einfach, ob ein Handler festgelegt wurde, und rufen ihn dann auf, wenn dies der Fall ist.

Rufen Sie den Handler für die Annahme des Empfangs auf, falls er festgelegt wurde.

Daher sollten diese als öffentliche Schnittstelle zum Aufrufen von Rückrufen verwendet werden, die niemals direkt von externen Anwendungen bearbeitet werden sollten. Es ist möglich, dass eine zukünftige Überarbeitung von BDXTransfer ein Delegatobjekt verwendet, anstatt einzelne Verweise auf die einzelnen Callbacks zu speichern.

Details
Parameter
[in] aReceiveAcceptMsg
ReceiveAccept-Nachricht, die verarbeitet werden soll
Rückgabe
Fehlerwert

DispatchRejectHandler

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

Wenn der Ablehnungs-Handler eingerichtet wurde, rufen Sie ihn auf.

Wenn die Richtlinie nicht konfiguriert ist, beenden Sie die Übertragung auch standardmäßig.

Details
Parameter
[in] aReport
Zu verarbeitende StatusReport-Nachricht

DispatchSendAccept

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

Wenn der Handler für die Annahme des Sendevorgangs festgelegt wurde, rufen Sie ihn auf.

Details
Parameter
[in] aSendAcceptMsg
SendAccept-Nachricht, die verarbeitet werden soll.
Rückgabe
Fehlerwert

DispatchXferDoneHandler

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

Wenn der Handler für die Übertragung abgeschlossen wurde, rufen Sie ihn auf.

Wenn die Richtlinie nicht konfiguriert ist, beenden Sie die Übertragung auch standardmäßig.

DispatchXferErrorHandler

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

Wenn der Übertragungsfehler-Handler festgelegt wurde, rufen Sie ihn auf.

Wenn die Richtlinie nicht konfiguriert ist, beenden Sie die Übertragung auch standardmäßig.

Details
Parameter
[in] aXferError
Statusbericht zu einem zu verarbeitenden Fehler

GetDefaultFlags

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

Diese Funktion gibt die Standard-Flags zurück, die mit einer Nachricht gesendet werden sollen.

Details
Parameter
[in] aExpectResponse
Wenn wir eine Antwort auf diese Nachricht erwarten
Rückgabe
Zu sendende Meldungen

IsAsync

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

 Returns true if this transfer is asynchronous, false otherwise.

Details
Rückgabe
"true", wenn die Übertragung asynchron ist.

IsDriver

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

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

Details
Rückgabe
„true“, wenn diese Entität die Grundlage für diese Übertragung ist

Zurücksetzen

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

 Sets all pointers to NULL, resets counters, etc.

Beim Herunterfahren aufgerufen.

SetHandlers

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

Diese Funktion legt die Handler für dieses BDXTransfer-Objekt fest.

Sie sollten immer diese Methode verwenden, anstatt sie manuell festzulegen, da die zugrunde liegende Implementierung für die Speicherung der Handler-Funktionszeiger nicht Teil der öffentlichen API ist.

Details
Parameter
[in] aHandlers
Struktur der aufzurufenden Callback-Handler

Herunterfahren

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

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

Bei dieser Gelegenheit können Sie Ressourcen für diese Übertragung und Ihre Anwendungslogik freigeben.