nl::Weave::Profiles::BDX_Development

Dieser Namespace enthält alle Weave-Schnittstellen für das BDX-Profil (Bulk Data Transfer), die sich aktiv in der Entwicklung befinden und nicht für die Produktion verwendet werden sollten.

Zusammenfassung

Aufzählungen

@80 enum
@81 enum
@82 enum
@83 enum

Typedefs

BdxClient typedef
BdxServer typedef
ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode) typedef
void(*
Dieser Handler wird jedes Mal aufgerufen, wenn ein Weave-Fehler auftritt, der nicht direkt über Fehlercodes an einen benutzerdefinierten Steuerungsablauf zurückgegeben werden kann.
GetBlockHandler)(BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock) typedef
void(*
Get a block of data to be transmitted.
PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock) typedef
void(*
Verarbeitet den Datenblock, auf den ein DataBlock der Länge aLength verweist.
ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg) typedef
Callback, der aufgerufen wird, wenn ein zuvor gesendetes ReceiveInit-Element vom Ziel akzeptiert wird.
ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg) typedef
uint16_t(*
Callback, der beim Empfang einer ReceiveInit-Nachricht aufgerufen wird.
RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport) typedef
void(*
Wird aufgerufen, wenn eine der vorherigen Init-Nachrichten vom Ziel abgelehnt wurde.
SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg) typedef
Callback, der aufgerufen wird, wenn ein zuvor gesendetes SendInit-Element vom Ziel akzeptiert wird.
SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg) typedef
uint16_t(*
Callback, der beim Empfang einer SendInit-Nachricht ausgelöst wird.
XferDoneHandler)(BDXTransfer *aXfer) typedef
void(*
Umgang mit Fällen, in denen die Übertragung abgeschlossen ist.
XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError) typedef
void(*
Behandelt von BDX empfangene oder gesendete TransferError-Nachrichten.

Funktionen

GetBDXAckFlag(ExchangeContext *anEc)
uint16_t
GetBDXAckFlag gibt je nach Verbindung des Exchange-Kontexts (keine Anfragebestätigung bei TCP) und basierend auf der Unterstützung der Kompilierungszeit für WRMP das entsprechende Flag für das RequestAck-Feld zurück.

Kurse

nl::Weave::Profiles::BDX_Development::BdxNode
nl::Weave::Profiles::BDX_Development::BlockAck

Die BlockAck-Nachricht wird verwendet, um einen Datenblock zu bestätigen.

nl::Weave::Profiles::BDX_Development::BlockAckV1

Die Nachricht BlockAckV1 wird verwendet, um einen Datenblock zu bestätigen.

nl::Weave::Profiles::BDX_Development::BlockEOF

Die BlockEOF-Nachricht wird verwendet, um den letzten Datenblock vom Sender an den Empfänger zu übertragen.

nl::Weave::Profiles::BDX_Development::BlockEOFAck

Die Nachricht BlockEOFAck wird verwendet, um den letzten Datenblock zu bestätigen.

nl::Weave::Profiles::BDX_Development::BlockEOFAckV1

Die Nachricht BlockEOFAckV1 wird zur Bestätigung des letzten Datenblocks verwendet.

nl::Weave::Profiles::BDX_Development::BlockEOFV1

Mit der Nachricht BlockEOFV1 wird der letzte Datenblock vom Sender an den Empfänger übertragen.

nl::Weave::Profiles::BDX_Development::BlockQuery

Mit der BlockQuery-Nachricht wird angefordert, dass ein Datenblock von Sender an Empfänger übertragen wird.

nl::Weave::Profiles::BDX_Development::BlockQueryV1

Mit der Nachricht BlockQueryV1 wird angefordert, dass ein Datenblock von Sender an Empfänger übertragen wird.

nl::Weave::Profiles::BDX_Development::BlockSend

Mit der BlockSend-Nachricht wird ein Datenblock vom Sender an den Empfänger übertragen.

nl::Weave::Profiles::BDX_Development::BlockSendV1

Mit der Nachricht BlockSendV1 wird ein Datenblock vom Absender zum Empfänger übertragen.

nl::Weave::Profiles::BDX_Development::ReceiveAccept

Die Nachricht ReceiveAccept wird verwendet, um einen vorgeschlagenen Austausch zu akzeptieren, wenn der Empfänger der Initiator ist.

nl::Weave::Profiles::BDX_Development::ReceiveInit

Die Nachricht ReceiveInit wird verwendet, um einen Austausch zu starten, wenn der Empfänger der Initiator ist.

nl::Weave::Profiles::BDX_Development::ReceiveReject

Die Nachricht ReceiveReject wird verwendet, um einen vorgeschlagenen Austausch abzulehnen, wenn der Absender der Initiator ist.

nl::Weave::Profiles::BDX_Development::SendAccept

Die Nachricht SendAccept wird verwendet, um einen vorgeschlagenen Austausch zu akzeptieren, wenn der Absender der Initiator ist.

nl::Weave::Profiles::BDX_Development::SendInit

Die SendInit-Nachricht wird verwendet, um einen Austausch zu starten, wenn der Absender der Initiator ist.

nl::Weave::Profiles::BDX_Development::SendReject

Mit der Nachricht SendReject (Ablehnen) lehnen Sie einen vorgeschlagenen Austausch ab, wenn der Absender der Initiator ist.

nl::Weave::Profiles::BDX_Development::TransferError

Die Fehlermeldung wird verwendet, um einen Fehler zu melden und einen Austausch abzubrechen.

Strukturen

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

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

Namespaces

nl::Weave::Profiles::BDX_Development::BdxProtocol

Aufzählungen

@80

 @80

@81

 @81

@82

 @82

@83

 @83

Typedefs

BdxClient

BdxNode BdxClient

BdxServer

BdxNode BdxServer

ErrorHandler

void(* ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode)

Dieser Handler wird jedes Mal aufgerufen, wenn ein Weave-Fehler auftritt, der nicht direkt über Fehlercodes an einen benutzerdefinierten Steuerungsablauf zurückgegeben werden kann.

Wenn also ein Fehler innerhalb eines anderen Handlers auftritt, dessen Signatur den Rückgabetyp „void“ hat (z.B. als Antwort auf eine eingehende Weave-Nachricht oder sogar durch das Protokoll weitergeleitet), wird dieser Handler aufgerufen, damit der Nutzer bestimmen kann, ob die Übertragung wiederhergestellt und fortgesetzt werden kann oder ob er Herunterfahren() aufrufen soll. Ein Fehler kann auftreten, bevor ein BDXTransfer initialisiert wurde (z.B. bereits zu viele zugewiesene Übertragungsobjekte). In einem solchen Fall wird der besagte Fehler von Weave protokolliert und das Protokoll kümmert sich um die Bereinigung aller notwendigen Zustände, die von Weave zugewiesen wurden.

Details
Parameter
[in] aXfer
Zeiger auf den mit dieser Übertragung verknüpften BDXTransfer
[in] anErrorCode
Der Fehlercode, den wir verarbeiten müssen.

GetBlockHandler

void(* GetBlockHandler)(BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)

Get a block of data to be transmitted.

Der Aufrufer stellt den Pufferbereich bereit (Puffer und Länge des Puffers, die durch einen Verweis übergeben werden). Aufgerufene Nutzer (Nutzeranwendung) SOLLTE den bereitgestellten Puffer verwenden, kann jedoch aus Gründen der Abwärtskompatibilität einen eigenen Puffer zurückgeben. Der Aufgerufene darf nicht mehr als aLength Byte bereitstellen. Bei Rückgabe enthält aLength die tatsächliche Anzahl der Byte, die in den Zwischenspeicher gelesen wurden.

Details
Parameter
[in] aXfer
Die mit dieser laufenden Übertragung verknüpfte BDXTransfer
[in,out] aLength
Die Länge der in diesem Block gelesenen und gespeicherten Daten. Beim Aufruf der Funktion enthält sie die Länge des Zwischenspeichers, der im aDataBlock übergeben wurde. Die Variable enthält dann die Länge der tatsächlich gelesenen Daten.
[in,out] aDataBlock
Der Zeiger auf den Datenblock. Bei der Eingabe enthält er den vom Framework bereitgestellten Puffer. Der Aufgerufene kann diesen Platz zum Füllen des Puffers verwenden oder seinen eigenen Pufferbereich für Anwendungen zur Abwärtskompatibilität bereitstellen. Anwendungen, die den bereitgestellten Puffer verwenden, dürfen keine Ausrichtung voraussetzen.
[out] aLastBlock
„True“, wenn der Block als BlockEOF gesendet und die Übertragung abgeschlossen werden soll, andernfalls „false“.

PutBlockHandler

void(* PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)

Verarbeitet den Datenblock, auf den ein DataBlock der Länge aLength verweist.

Dazu ist es wahrscheinlich erforderlich, dass die Datei in eine Datei geschrieben und diese Datei geschlossen wird, wenn isLastBlock wahr ist.

Details
Parameter
[in] aXfer
Die mit dieser laufenden Übertragung verknüpfte BDXTransfer
[in] aLength
Die Länge der im angegebenen Block gelesenen und gespeicherten Daten
[in] aDataBlock
Der eigentliche Datenblock
[in] aLastBlock
„True“, wenn der Block als BlockEOF empfangen und die Übertragung abgeschlossen wurde, andernfalls „false“. Falls er auf „true“ gesetzt ist, sollte der Programmierer wahrscheinlich alle Datei-Handles abschließen, wobei zu beachten ist, dass XferDoneHandler danach aufgerufen wird.

ReceiveAcceptHandler

WEAVE_ERROR(* ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg)

Callback, der aufgerufen wird, wenn ein zuvor gesendetes ReceiveInit-Element vom Ziel akzeptiert wird.

Sie können diese Möglichkeit nutzen, um Dateien zu öffnen oder Ressourcen für die Übertragung zuzuweisen, falls Sie dies beim Start der Übertragung noch nicht getan haben.

Details
Parameter
[in] aXfer
Zeiger auf den mit dieser Übertragung verknüpften BDXTransfer
[in] aReceiveAcceptMsg
Mauszeiger auf die Nachricht ReceiveAccept (Empfangen akzeptieren), die verarbeitet wird.

ReceiveInitHandler

uint16_t(* ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg)

Callback, der beim Empfang einer ReceiveInit-Nachricht aufgerufen wird.

Seine Aufgabe ist es zu bestimmen, ob Sie den Empfang akzeptieren möchten, und legen Sie in diesem Fall aXfer->mIsAccepted=true fest, damit das Protokoll eine Annahmenachricht an den Initiator sendet. Das Objekt BDXTransfer wird auf die Standardeinstellungen zurückgesetzt. Hier können Sie anwendungsspezifischen Status (z. B. offene Datei-Handles usw.) gut an aXfer->mAppState anhängen. An dieser Stelle sollten Sie auch die erforderlichen Handler, z.B. für die Blockierbehandlung, an das Objekt BDXTransfer anhängen. Wenn ein anderer Fehlercode als kStatus_Success zurückgegeben wird, wird angenommen, dass die Übertragung abgelehnt wird. Das Protokoll sendet dann eine Ablehnungsnachricht mit dem Code.

Details
Parameter
[in] aXfer
Zeiger auf den mit dieser Übertragung verknüpften BDXTransfer
[in] aReceiveInitMsg
Verweis auf die Nachricht ReceiveInit, die verarbeitet wird

RejectHandler

void(* RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport)

Wird aufgerufen, wenn eine der vorherigen Init-Nachrichten vom Ziel abgelehnt wurde.

Details
Parameter
[in] aXfer
Zeiger auf den mit dieser Übertragung verknüpften BDXTransfer
[in] aReport
Verweis auf die Ablehnung der StatusReport-Nachricht, die verarbeitet wird

SendAcceptHandler

WEAVE_ERROR(* SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg)

Callback, der aufgerufen wird, wenn ein zuvor gesendetes SendInit-Element vom Ziel akzeptiert wird.

Sie können diese Möglichkeit nutzen, um Dateien zu öffnen oder Ressourcen für die Übertragung zuzuweisen, falls Sie dies beim Start der Übertragung noch nicht getan haben.

Details
Parameter
[in] aXfer
Zeiger auf den mit dieser Übertragung verknüpften BDXTransfer
[in] aSendAcceptMsg
Mauszeiger auf die Nachricht SendAccept, die verarbeitet wird

SendInitHandler

uint16_t(* SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg)

Callback, der beim Empfang einer SendInit-Nachricht ausgelöst wird.

Dessen Aufgabe besteht darin, festzulegen, ob Sie SendInit akzeptieren möchten, und legen Sie in diesem Fall aXfer->mIsAccepted=true fest, damit das Protokoll eine Annahmenachricht an den Initiator sendet. Das Objekt BDXTransfer wird auf die Standardeinstellungen zurückgesetzt. Hier können Sie anwendungsspezifischen Status (z. B. offene Datei-Handles usw.) gut an aXfer->mAppState anhängen. An dieser Stelle sollten Sie auch die erforderlichen Handler, z.B. für die Blockierbehandlung, an das Objekt BDXTransfer anhängen. Wenn ein anderer Fehlercode als WEAVE_NO_ERROR zurückgegeben wird, wird davon ausgegangen, dass die Übertragung abgelehnt wird. Das Protokoll sendet dann eine Ablehnungsnachricht mit dem Code.

Details
Parameter
[in] aXfer
Zeiger auf den mit dieser Übertragung verknüpften BDXTransfer
[in] aSendInitMsg
Mauszeiger auf die SendInit-Nachricht, die verarbeitet wird

XferDoneHandler

void(* XferDoneHandler)(BDXTransfer *aXfer)

Umgang mit Fällen, in denen die Übertragung abgeschlossen ist.

Details
Parameter
[in] aXfer
Zeiger auf den mit dieser Übertragung verknüpften BDXTransfer

XferErrorHandler

void(* XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError)

Behandelt von BDX empfangene oder gesendete TransferError-Nachrichten.

Hinweis: Es wird davon ausgegangen, dass die BDX-Übertragung wiederhergestellt werden kann (möglicherweise vorübergehend, z. B. weil PacketBuffers derzeit nicht verfügbar ist). Daher bleibt die Option zum Aufrufen von Herunterfahren() dem Anwendungsprogrammierer und den definierten Callbacks überlassen. TODO: Überprüfen und mit der Sprache im BDX-Dokument abgleichen, die lautet: „[A TransferError] Kann jederzeit von jeder Partei gesendet werden, um die Bulk-Datenübertragung vorzeitig zu beenden.“

Details
Parameter
[in] aXfer
Zeiger auf den mit dieser Übertragung verknüpften BDXTransfer
[in] aXferError
Verweis auf den Fehler in der StatusReport-Meldung, der verarbeitet wird

Funktionen

GetBDXAckFlag

uint16_t GetBDXAckFlag(
  ExchangeContext *anEc
)

GetBDXAckFlag gibt je nach Verbindung des Exchange-Kontexts (keine Anfragebestätigung bei TCP) und basierend auf der Unterstützung der Kompilierungszeit für WRMP das entsprechende Flag für das RequestAck-Feld zurück.

Details
Parameter
[in] anEc
Der Austauschkontext, auf dem wir die Markierung erhalten sollen
Rückgabe
0 oder kSendFlag_RequestAck