nl::Weave::Profiles::BDX_Development

Cet espace de noms inclut toutes les interfaces de Weave pour le profil de transfert de données groupées (BDX) qui sont en cours de développement et ne doivent pas être utilisées pour une utilisation en production.

Résumé

Énumérations

@80 énum
@81 énum
@82 énum
@83 énum

Typedefs

BdxClient typedef
BdxServer typedef
ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode) typedef
void(*
Ce gestionnaire est appelé chaque fois qu'une erreur Weave se produit et qu'elle 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) typedef
void(*
Get a block of data to be transmitted.
PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock) typedef
void(*
Gérer le bloc de données vers lequel pointe un DataBlock d'une longueur.
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) typedef
uint16_t(*
Rappel invoqué lors de la réception d'un message ReceiveInit.
RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport) typedef
void(*
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) typedef
uint16_t(*
Rappel invoqué lors de la réception d'un message SendInit.
XferDoneHandler)(BDXTransfer *aXfer) typedef
void(*
Gérez les cas où le transfert est terminé.
XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError) typedef
void(*
Traitez les messages TransferError reçus ou envoyés par BDX.

Fonctions

GetBDXAckFlag(ExchangeContext *anEc)
uint16_t
GetBDXAckFlag renvoie l'indicateur approprié pour le champ RequestAck en fonction de la connexion du contexte de l'échange (pas de confirmation de requête pour TCP) et de la compatibilité au moment de la compilation pour WRMP.

Classes

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

Le message BlockAck permet de confirmer un bloc de données.

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

Le message BlockAckV1 permet d'accuser réception d'un bloc de données.

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

Le message BlockEOF permet de transférer le dernier bloc de données de l'expéditeur au destinataire.

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

Le message BlockEOFAck permet d'accuser réception du dernier bloc de données.

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

Le message BlockEOFAckV1 permet d'accuser réception du dernier bloc de données.

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

Le message BlockEOFV1 permet de transférer le dernier bloc de données de l'expéditeur au destinataire.

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

Le message BlockQuery permet de demander qu'un bloc de données soit transféré de l'expéditeur au destinataire.

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

Le message BlockQueryV1 permet de demander qu'un bloc de données soit transféré de l'expéditeur au destinataire.

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

Le message BlockSend est utilisé pour transférer un bloc de données de l'expéditeur au destinataire.

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

Le message BlockSendV1 est utilisé pour transférer un bloc de données de l'expéditeur au destinataire.

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

Le message ReceiveAccept permet d'accepter un échange proposé lorsque le destinataire en est l'initiateur.

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

Le message ReceiveInit permet de démarrer un échange lorsque le destinataire en est l'initiateur.

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

Le message ReceiveReject permet de rejeter un échange proposé lorsque l'expéditeur en est l'initiateur.

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

Le message SendAccept est utilisé pour accepter une proposition d'échange lorsque l'expéditeur est l'initiateur.

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

Le message SendInit permet de démarrer un échange lorsque l'expéditeur est l'initiateur.

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

Le message SendReject permet de rejeter un échange proposé lorsque l'expéditeur est l'initiateur.

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

Le message d'erreur permet de signaler une erreur et d'annuler un échange.

Structs

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

Cette structure contient des membres de données représentant un transfert BDX actif.

Espaces de noms

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

É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 qu'elle 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 au sein d'un autre gestionnaire dont le type de signature est "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'une erreur peut se produire avant l'initialisation d'un transfert BDXTransfer (par exemple, trop d'objets de transfert alloués). Dans ce cas, cette erreur sera consignée par Weave, et le protocole se chargera de nettoyer tout état nécessaire alloué.

Détails
Paramètres
[in] aXfer
Pointeur vers le BDXTransfer associé à ce transfert
[in] anErrorCode
Le code d'erreur à traiter

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 pour des raisons de rétrocompatibilité, il peut renvoyer son propre tampon. L'appelé ne doit pas fournir plus de aLength d'octets. En retour, aLength contient le nombre réel d'octets lus dans le tampon.

Détails
Paramètres
[in] aXfer
L'élément BDXTransfer associé à ce transfert en cours
[in,out] aLength
Longueur des données lues et stockées dans ce bloc. L'appel de la fonction contient la longueur du tampon transmis dans aDataBlock. En retour, la variable contient la longueur des données réellement lues.
[in,out] aDataBlock
Pointeur vers le bloc de données. En entrée, il contient le tampon fourni par le framework. l'appelé peut utiliser cet espace pour remplir le tampon ou fournir son propre espace de mise en mémoire tampon (pour les applications de rétrocompatibilité). Les applications utilisant le tampon fourni ne doivent pas supposer un alignement.
[out] aLastBlock
"True" si le blocage doit être envoyé en tant que BlockEOF et que le transfert est terminé, ou "false" dans le cas contraire

PutBlockHandler

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

Gérer le bloc de données vers lequel pointe un DataBlock d'une longueur.

Cela impliquera probablement de l'écrire dans un fichier et de le fermer si isLastBlock est vrai.

Détails
Paramètres
[in] aXfer
L'élément BDXTransfer associé à ce transfert en cours
[in] aLength
Longueur des données lues et stockées dans le bloc spécifié
[in] aDataBlock
Le bloc de données réel
[in] aLastBlock
"True" si le blocage a été reçu en tant que BlockEOF et que le transfert est terminé, sinon "false". Si la valeur est "true", le programmeur devrait probablement finaliser les traitements de fichiers, en gardant à l'esprit que XferDoneHandler sera appelé après cela.

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 profiter de cette opportunité pour ouvrir des fichiers ou allouer des ressources pour le transfert si vous ne l'avez pas déjà fait lors de son lancement.

Détails
Paramètres
[in] aXfer
Pointeur vers le BDXTransfer associé à ce transfert
[in] aReceiveAcceptMsg
Pointeur vers le message ReceiveAccept que nous traitons actuellement.

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 la réception 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 lancé avec les paramètres par défaut. C'est l'endroit idéal pour associer n'importe quel état spécifique à une application (poignées de fichiers ouverts, etc.) à aXfer->mAppState. Vous devez également associer les gestionnaires nécessaires pour, par exemple, à l'objet BDXTransfer. 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 ce code.

Détails
Paramètres
[in] aXfer
Pointeur vers le BDXTransfer associé à ce transfert
[in] aReceiveInitMsg
Pointeur vers le message ReceiveInit en cours de traitement.

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
[in] aXfer
Pointeur vers le BDXTransfer associé à ce transfert
[in] aReport
Pointeur sur le refus du message StatusReport que nous traitons

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 profiter de cette opportunité pour ouvrir des fichiers ou allouer des ressources pour le transfert si vous ne l'avez pas déjà fait lors de son lancement.

Détails
Paramètres
[in] aXfer
Pointeur vers le BDXTransfer associé à ce transfert
[in] aSendAcceptMsg
Pointeur vers le message SendAccept que nous traitons.

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->mIsAccepted=true afin que le protocole envoie un message d'acceptation à l'initiateur. L'objet BDXTransfer est lancé avec les paramètres par défaut. C'est l'endroit idéal pour associer n'importe quel état spécifique à une application (poignées de fichiers ouverts, etc.) à aXfer->mAppState. Vous devez également associer les gestionnaires nécessaires pour, par exemple, la gestion des blocs à l'objet BDXTransfer. 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 ce code.

Détails
Paramètres
[in] aXfer
Pointeur vers le BDXTransfer associé à ce transfert
[in] aSendInitMsg
Pointeur vers le message SendInit que nous traitons

XferDoneHandler

void(* XferDoneHandler)(BDXTransfer *aXfer)

Gérez les cas où le transfert est terminé.

Détails
Paramètres
[in] aXfer
Pointeur vers le BDXTransfer associé à ce transfert

XferErrorHandler

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

Traitez les messages TransferError reçus ou envoyés par BDX.

Remarque:Le transfert BDX est supposé être potentiellement récupérable (peut-être temporaire, par exemple à partir 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 et rapprocher la langue du document BDX, qui indique : "[Une erreur de transfert] peut être envoyée à tout moment par l'une ou l'autre des parties pour prématurément mettre fin au transfert groupé de données. »

Détails
Paramètres
[in] aXfer
Pointeur vers le BDXTransfer associé à ce transfert
[in] aXferError
Pointeur sur le message d'erreur StatusReport que nous traitons

Fonctions

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 (pas de confirmation de requête pour TCP) et de la compatibilité au moment de la compilation pour WRMP.

Détails
Paramètres
[in] anEc
Le contexte de l'échange sur lequel nous devons obtenir l'indicateur
Renvoie
0 ou kSendFlag_RequestAck