nl::Weave::Profiles::BDX_Development

Dieser Namespace umfasst alle Schnittstellen in Weave 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 den benutzerdefinierte 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 einDataBlock der Länge aLength verweist.
ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg) typedef.
Callback, das aufgerufen wird, wenn eine zuvor gesendete ReceiveInit-Anfrage vom Ziel akzeptiert wird.
ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg) typedef.
uint16_t(*
Callback, der beim Empfangen 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, das aufgerufen wird, wenn eine zuvor gesendete SendInit vom Ziel akzeptiert wird.
SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg) typedef.
uint16_t(*
Callback, der beim Empfangen einer SendInit-Nachricht aufgerufen wird.
XferDoneHandler)(BDXTransfer *aXfer) typedef.
void(*
Verarbeiten Sie Fälle, in denen die Übertragung abgeschlossen ist.
XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError) typedef.
void(*
Verarbeiten Sie TransferError-Nachrichten, die von BDX empfangen oder gesendet werden.

Funktionen

GetBDXAckFlag(ExchangeContext *anEc)
uint16_t
GetBDXAckFlag gibt abhängig von der Verbindung des Austauschkontexts (keine Anforderungsbestätigung für TCP) und basierend auf der Unterstützung der Kompilierungszeit für WRMP das entsprechende Flag für das RequestAck-Feld zurück.

Klassen

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

Die Nachricht BlockAck 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

Mit der Nachricht BlockEOF wird der letzte Datenblock vom Absender an den Empfänger ü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

Mit der Nachricht BlockEOFAckV1 wird der letzte Datenblock bestätigt.

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

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

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

Die Nachricht BlockQuery wird verwendet, um anzufordern, dass ein Datenblock vom Sender an den Empfänger übertragen wird.

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

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

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

Die BlockSend-Nachricht wird verwendet, um einen Datenblock vom Absender an den Empfänger zu übertragen.

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

Die Nachricht BlockSendV1 wird verwendet, um einen Datenblock vom Sender an den Empfänger zu ü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 ReceiveInit-Nachricht 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 wird ein vorgeschlagener Austausch abgelehnt, 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 Datenmitglieder, 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 den benutzerdefinierte Steuerungsablauf zurückgegeben werden kann.

Wenn also ein Fehler bei einem anderen Handler auftritt, dessen Signatur den Rückgabetyp "void" hat (z.B. als Antwort auf eine eingehende Weave-Nachricht oder sogar durch das Protokoll ausgelöst), wird dieser Handler aufgerufen, damit der Nutzer bestimmen kann, ob die Übertragung wiederhergestellt und fortgesetzt werden kann oder ob er Shutdown() aufrufen sollte. Es kann vorkommen, dass vor der Initialisierung von BDXTransfer ein Fehler auftritt (z.B. bereits zu viele zugewiesene Übertragungsobjekte). In einem solchen Fall wird der Fehler von Weave protokolliert und das Protokoll bereinigt alle erforderlichen Status, die es zugewiesen hat.

Details
Parameter
[in] aXfer
Zeiger auf den BDXTransfer, der mit dieser Übertragung verknüpft ist
[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 Zwischenspeichers, die durch einen Verweis übergeben werden). Der Aufgerufene (Nutzeranwendung) SOLLTEN den bereitgestellten Zwischenspeicher verwenden, kann jedoch aus Gründen der Abwärtskompatibilität einen eigenen Zwischenspeicher zurückgeben. Der Aufgerufene darf nicht mehr als aLength an Byte bereitstellen. Nach der Rückgabe enthält aLength die tatsächliche Anzahl der in den Zwischenspeicher gelesenen Byte.

Details
Parameter
[in] aXfer
Die BDXTransfer, die mit dieser laufenden Übertragung verknüpft ist
[in,out] aLength
Die Länge der in diesem Block gelesenen und gespeicherten Daten. Bei Aufruf der Funktion enthält die Funktion die Länge des Zwischenspeichers, der in aDataBlock übergeben wurde. Nach der Rückgabe enthält die Variable die Länge der tatsächlich gelesenen Daten.
[in,out] aDataBlock
Der Zeiger zum Datenblock. Bei der Eingabe enthält er den vom Framework bereitgestellten Zwischenspeicher. Der Aufgerufene kann diesen Bereich zum Füllen des Zwischenspeichers verwenden oder einen eigenen Pufferbereich bereitstellen (für Abwärtskompatibilitätsanwendungen). Bei Anwendungen, die den bereitgestellten Puffer verwenden, darf keine Ausrichtung vorausgesetzt werden.
[out] aLastBlock
"True", wenn die Blockierung als BlockEOF gesendet werden soll 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 einDataBlock der Länge aLength verweist.

Dazu wird wahrscheinlich in eine Datei geschrieben und die Datei geschlossen, wenn isLastBlock auf „true“ gesetzt ist.

Details
Parameter
[in] aXfer
Die BDXTransfer, die mit dieser laufenden Übertragung verknüpft ist
[in] aLength
Die Länge der im angegebenen Block gelesenen und gespeicherten Daten
[in] aDataBlock
Der eigentliche Datenblock
[in] aLastBlock
Der Wert ist "True", wenn die Blockierung als BlockEOF empfangen wurde und die Übertragung abgeschlossen wurde, andernfalls "False". Falls wahr, sollte der Programmierer wahrscheinlich alle Datei-Handles fertigstellen. Denken Sie jedoch daran, dass XferDoneHandler danach aufgerufen wird.

ReceiveAcceptHandler

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

Callback, das aufgerufen wird, wenn eine zuvor gesendete ReceiveInit-Anfrage vom Ziel akzeptiert wird.

Sie können diese Gelegenheit nutzen, um Dateien zu öffnen oder Ressourcen für die Übertragung zuzuweisen, wenn Sie dies nicht bereits bei der Initiierung der Übertragung getan haben.

Details
Parameter
[in] aXfer
Zeiger auf den BDXTransfer, der mit dieser Übertragung verknüpft ist
[in] aReceiveAcceptMsg
Zeiger auf die Nachricht ReceiveAccept, die gerade verarbeitet wird

ReceiveInitHandler

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

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

Seine Aufgabe besteht darin, zu bestimmen, ob Sie die Empfangsbestätigung annehmen möchten. Wenn dies der Fall ist, stellen Sie aXfer->mIsAccepted=true ein, sodass das Protokoll eine Empfangsnachricht an den Initiator sendet. Das BDXTransfer-Objekt wird mit den Standardeinstellungen initiiert. Hier können Sie anwendungsspezifische Status wie Handles von offenen Dateien usw. an aXfer->mAppState anhängen. Sie sollten auch die erforderlichen Handler für an das BDXTransfer-Objekt übergeben. Wenn ein anderer Fehlercode als kStatus_Success zurückgegeben wird, wird davon ausgegangen, dass die Übertragung abgelehnt wurde. Das Protokoll sendet dann eine Ablehnungsnachricht mit dem Code.

Details
Parameter
[in] aXfer
Zeiger auf den BDXTransfer, der mit dieser Übertragung verknüpft ist
[in] aReceiveInitMsg
Zeiger 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 BDXTransfer, der mit dieser Übertragung verknüpft ist
[in] aReport
Zeiger auf die Ablehnung der StatusReport-Nachricht, die verarbeitet wird

SendAcceptHandler

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

Callback, das aufgerufen wird, wenn eine zuvor gesendete SendInit vom Ziel akzeptiert wird.

Sie können diese Gelegenheit nutzen, um Dateien zu öffnen oder Ressourcen für die Übertragung zuzuweisen, wenn Sie dies nicht bereits beim Starten der Übertragung getan haben.

Details
Parameter
[in] aXfer
Zeiger auf den BDXTransfer, der mit dieser Übertragung verknüpft ist
[in] aSendAcceptMsg
Zeiger auf die Nachricht SendAccept, die gerade verarbeitet wird

SendInitHandler

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

Callback, der beim Empfangen einer SendInit-Nachricht aufgerufen wird.

Seine Aufgabe besteht darin, zu bestimmen, ob Sie SendInit akzeptieren möchten. Ist dies der Fall, legen Sie „aXfer->mIsAccepted=true“ fest, damit das Protokoll eine Annahmenachricht an den Initiator sendet. Das BDXTransfer-Objekt wird mit den Standardeinstellungen initiiert. Hier können Sie anwendungsspezifische Status wie Handles von offenen Dateien usw. an aXfer->mAppState anhängen. Sie sollten auch die erforderlichen Handler für an das BDXTransfer-Objekt übergeben. Wenn ein anderer Fehlercode als WEAVE_NO_ERROR zurückgegeben wird, wird davon ausgegangen, dass die Übertragung abgelehnt wurde. Das Protokoll sendet dann eine Ablehnungsnachricht mit dem Code.

Details
Parameter
[in] aXfer
Zeiger auf den BDXTransfer, der mit dieser Übertragung verknüpft ist
[in] aSendInitMsg
Zeiger auf die Nachricht SendInit, die gerade verarbeitet wird

XferDoneHandler

void(* XferDoneHandler)(BDXTransfer *aXfer)

Verarbeiten Sie Fälle, in denen die Übertragung abgeschlossen ist.

Details
Parameter
[in] aXfer
Zeiger auf den BDXTransfer, der mit dieser Übertragung verknüpft ist

XferErrorHandler

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

Verarbeiten Sie TransferError-Nachrichten, die von BDX empfangen oder gesendet werden.

Hinweis:Es wird davon ausgegangen, dass die BDX-Übertragung potenziell wiederherstellbar ist (möglicherweise vorübergehend, z. B. aus PacketBuffers im Moment). Daher bleibt die Option, Shutdown() aufzurufen, dem Anwendungsprogrammierer und den von ihm definierten Callbacks überlassen. AUFGABE: Überprüfen und mit der Sprache im BDX-Dokument abgleichen, das lautet: „[A TransferError] Kann jederzeit von beiden Parteien vorzeitig gesendet werden beenden Sie die Bulk-Datenübertragung.“

Details
Parameter
[in] aXfer
Zeiger auf den BDXTransfer, der mit dieser Übertragung verknüpft ist
[in] aXferError
Zeiger auf den StatusReport-Meldungsfehler, der gerade verarbeitet wird

Funktionen

GetBDXAckFlag

uint16_t GetBDXAckFlag(
  ExchangeContext *anEc
)

GetBDXAckFlag gibt abhängig von der Verbindung des Austauschkontexts (keine Anforderungsbestätigung für 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 Plattformkontext, auf dem wir die Meldung erhalten sollten
Rückgabe
0 oder kSendFlag_RequestAck