nl:: Weave:: Profiles:: BDX_Development
Cet espace de noms inclut toutes les interfaces de Weave associées au profil de transfert de données groupées (BDX) qui sont activement en cours de développement et ne doivent pas être utilisées en production.
Résumé
Énumérations |
|
---|---|
@80
|
enum |
@81
|
enum |
@82
|
enum |
@83
|
enum |
Typedefs |
|
---|---|
BdxClient
|
typedef |
BdxServer
|
typedef |
ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode)
|
typedefvoid(*
Ce gestionnaire est appelé chaque fois qu'une erreur Weave se produit et ne peut pas être renvoyée directement via des codes d'erreur au flux de contrôle défini par l'application par l'utilisateur. |
GetBlockHandler)(BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)
|
typedefvoid(*
Get a block of data to be transmitted. |
PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
|
typedefvoid(*
Gérez le bloc de données vers lequel pointe l'élément aDataBlock de longueur aLength. |
ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg)
|
typedef Rappel invoqué lorsqu'un élément ReceiveInit précédemment envoyé est accepté par la destination. |
ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg)
|
typedefuint16_t(*
Rappel invoqué lors de la réception d'un message ReceiveInit. |
RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport)
|
typedefvoid(*
Appelée si l'un des messages Init précédents a été rejeté par la destination. |
SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg)
|
typedef Rappel invoqué lorsqu'un élément SendInit précédemment envoyé est accepté par la destination. |
SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg)
|
typedefuint16_t(*
Rappel invoqué lors de la réception d'un message SendInit. |
XferDoneHandler)(BDXTransfer *aXfer)
|
typedefvoid(*
Gérez les cas où le transfert est terminé. |
XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError)
|
typedefvoid(*
Gérez les messages TransferError reçus ou envoyés par BDX. |
distantes |
|
---|---|
GetBDXAckFlag(ExchangeContext *anEc)
|
uint16_t
GetBDXAckFlag renvoie l'indicateur approprié pour le champ RequestAck en fonction de la connexion du contexte de l'échange (aucun ACK de requête pour TCP) et de la prise en charge du temps de compilation pour WRMP.
|
Classes |
|
---|---|
nl:: |
|
nl:: |
Le message BlockAck est utilisé pour accuser réception d'un bloc de données. |
nl:: |
Le message BlockAckV1 est utilisé pour accuser réception d'un bloc de données. |
nl:: |
Le message BlockEOF permet de transférer le dernier bloc de données de l'expéditeur au destinataire. |
nl:: |
Le message BlockEOFAck permet de confirmer le dernier bloc de données. |
nl:: |
Le message BlockEOFAckV1 est utilisé pour confirmer le dernier bloc de données. |
nl:: |
Le message BlockEOFV1 est utilisé pour transférer le dernier bloc de données de l'expéditeur au destinataire. |
nl:: |
Le message BlockQuery permet de demander le transfert d'un bloc de données de l'expéditeur au destinataire. |
nl:: |
Le message BlockQueryV1 est utilisé pour demander qu'un bloc de données soit transféré de l'expéditeur au destinataire. |
nl:: |
Le message BlockSend est utilisé pour transférer un bloc de données de l'expéditeur au destinataire. |
nl:: |
Le message BlockSendV1 permet de transférer un bloc de données de l'expéditeur au destinataire. |
nl:: |
Le message ReceiveAccept (Réception d'acceptation) permet d'accepter une proposition d'échange lorsque le destinataire est l'initiateur. |
nl:: |
Le message ReceiveInit permet de démarrer un échange lorsque le destinataire est l'initiateur. |
nl:: |
Le message ReceiveReject permet de rejeter une proposition d'échange lorsque l'expéditeur en est l'initiateur. |
nl:: |
Le message SendAccept sert à accepter une proposition d'échange lorsque l'expéditeur en est l'initiateur. |
nl:: |
Le message SendInit permet de lancer un échange lorsque l'expéditeur en est l'initiateur. |
nl:: |
Le message SendReject permet de rejeter une proposition d'échange lorsque l'expéditeur en est l'initiateur. |
nl:: |
Le message d'erreur permet de signaler une erreur et d'annuler un échange. |
Structs |
|
---|---|
nl:: |
|
nl:: |
Cette structure contient des membres de données représentant un transfert BDX actif. |
Espaces de noms |
|
---|---|
nl:: |
Énumérations
@80
@80
@81
@81
@82
@82
@83
@83
Typedefs
BdxClient
BdxNode BdxClient
BdxServer
BdxNode BdxServer
ErrorHandler
void(* ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode)
Ce gestionnaire est appelé chaque fois qu'une erreur Weave se produit et ne peut pas être renvoyée directement via des codes d'erreur au flux de contrôle défini par l'application par l'utilisateur.
En d'autres termes, si une erreur se produit dans un autre gestionnaire dont la signature est de type renvoyé "void" (par exemple, en réponse à un message Weave entrant ou même envoyé par le protocole), ce gestionnaire est appelé afin que l'utilisateur puisse déterminer si le transfert peut être récupéré et continuer, ou s'il doit appeler Shutdown(). Notez qu'il est possible qu'une erreur se produise avant qu'un transfert BDXTransfer ne soit initialisé (par exemple, un trop grand nombre d'objets alloués). Dans ce cas, l'erreur est consignée par Weave et le protocole gère le nettoyage de tout état nécessaire alloué.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
GetBlockHandler
void(* GetBlockHandler)(BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)
Get a block of data to be transmitted.
L'appelant fournit l'espace de mise en mémoire tampon (tampon et longueur du tampon, transmis par référence). L'appelé (application utilisateur) DOIT utiliser le tampon fourni, mais il peut renvoyer son propre tampon pour des raisons de rétrocompatibilité. L'appelé ne doit pas fournir plus de aLength
d'octets. Au retour, aLength
contient le nombre réel d'octets lus dans le tampon.
Détails | |||||||||
---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
PutBlockHandler
void(* PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
Gérez le bloc de données vers lequel pointe l'élément aDataBlock de longueur aLength.
Cela implique probablement de l'écrire dans un fichier et de le fermer si isLastBlock est défini sur true.
Détails | |||||||||
---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
ReceiveAcceptHandler
WEAVE_ERROR(* ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg)
Rappel invoqué lorsqu'un élément ReceiveInit précédemment envoyé est accepté par la destination.
Vous pouvez en profiter pour ouvrir des fichiers ou allouer des ressources pour le transfert si vous ne l'avez pas fait lors de son lancement.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
ReceiveInitHandler
uint16_t(* ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg)
Rappel invoqué lors de la réception d'un message ReceiveInit.
Son rôle est de déterminer si vous souhaitez accepter l'option "Receive" (Recevoir) et, le cas échéant, de définir aXfer->mIsAccept=true afin que le protocole envoie un message d'acceptation à l'initiateur de la réception. L'objet BDXTransfer est défini sur les paramètres par défaut. C'est l'endroit idéal pour associer n'importe quel état spécifique à une application (ouvrir les poignées de fichiers, etc.) à aXfer->mAppState. À ce stade, vous devez également associer les gestionnaires nécessaires à l'objet BDXTransfer, par exemple pour la gestion des blocs. Si un code d'erreur autre que kStatus_Success est renvoyé, le transfert est considéré comme rejeté et le protocole gère l'envoi d'un message de rejet avec le code.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
RejectHandler
void(* RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport)
Appelée si l'un des messages Init précédents a été rejeté par la destination.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
SendAcceptHandler
WEAVE_ERROR(* SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg)
Rappel invoqué lorsqu'un élément SendInit précédemment envoyé est accepté par la destination.
Vous pouvez en profiter pour ouvrir des fichiers ou allouer des ressources pour le transfert si vous ne l'avez pas fait lors de son lancement.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
SendInitHandler
uint16_t(* SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg)
Rappel invoqué lors de la réception d'un message SendInit.
Son rôle est de déterminer si vous souhaitez accepter SendInit et, le cas échéant, de définir aXfer->mIsAccept=true afin que le protocole envoie un message d'acceptation à l'initiateur. L'objet BDXTransfer est défini sur les paramètres par défaut. C'est l'endroit idéal pour associer n'importe quel état spécifique à une application (ouvrir les poignées de fichiers, etc.) à aXfer->mAppState. À ce stade, vous devez également associer les gestionnaires nécessaires à l'objet BDXTransfer, par exemple pour la gestion des blocs. Si un code d'erreur autre que WEAVE_NO_ERROR est renvoyé, le transfert est considéré comme rejeté et le protocole gère l'envoi d'un message de rejet avec le code.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
XferDoneHandler
void(* XferDoneHandler)(BDXTransfer *aXfer)
Gérez les cas où le transfert est terminé.
Détails | |||
---|---|---|---|
Paramètres |
|
XferErrorHandler
void(* XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError)
Gérez les messages TransferError reçus ou envoyés par BDX.
Remarque:Le transfert BDX est supposé être récupérable (peut-être temporaire, par exemple hors de PacketBuffers pour le moment). L'option d'appel de Shutdown() est donc laissée au programmeur de l'application et aux rappels qu'il définit. À FAIRE: vérifier ce point et le comparer à celui du document BDX, qui indique: "[Une erreur de transfert] peut être envoyée à tout moment par l'une ou l'autre des parties pour mettre fin prématurément au transfert de données groupé."
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
distantes
GetBDXAckFlag
uint16_t GetBDXAckFlag( ExchangeContext *anEc )
GetBDXAckFlag renvoie l'indicateur approprié pour le champ RequestAck en fonction de la connexion du contexte de l'échange (aucun ACK de requête pour TCP) et de la prise en charge du temps de compilation pour WRMP.
Détails | |||
---|---|---|---|
Paramètres |
|
||
Renvoie |
0 ou kSendFlag_RequestAck
|