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) typedef
void(*
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) typedef
void(*
Get a block of data to be transmitted.
PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock) typedef
void(*
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) 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(*
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::Weave::Profiles::BDX_Development::BdxNode
nl::Weave::Profiles::BDX_Development::BlockAck

Le message BlockAck est utilisé pour accuser réception d'un bloc de données.

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

Le message BlockAckV1 est utilisé pour 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 de confirmer le dernier bloc de données.

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

Le message BlockEOFAckV1 est utilisé pour confirmer le dernier bloc de données.

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

Le message BlockEOFV1 est utilisé pour 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 le transfert d'un bloc de données de l'expéditeur au destinataire.

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

Le message BlockQueryV1 est utilisé pour 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 permet de transférer un bloc de données de l'expéditeur au destinataire.

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

Le message ReceiveAccept (Réception d'acceptation) permet d'accepter une proposition d'échange lorsque le destinataire est l'initiateur.

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

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

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

Le message ReceiveReject permet de rejeter une proposition d'échange lorsque l'expéditeur en est l'initiateur.

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

Le message SendAccept sert à accepter une proposition d'échange lorsque l'expéditeur en est l'initiateur.

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

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

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

Le message SendReject permet de rejeter une proposition d'échange lorsque l'expéditeur en 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 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
[in] aXfer
Pointeur visant le BDXTransfer associé à ce transfert
[in] anErrorCode
Le code d'erreur que nous devons 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 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
[in] aXfer
BDXTransfer associé au transfert en cours
[in,out] aLength
Longueur des données lues et stockées dans ce bloc. Lors de l'appel de la fonction, elle contient la longueur du tampon transmis dans le aDataBlock. Au 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 qui utilisent le tampon fourni ne doivent pas présumer un alignement.
[out] aLastBlock
"True" si le bloc doit être envoyé en tant que BlockEOF et que le transfert doit être terminé, "false" dans le cas contraire

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
[in] aXfer
BDXTransfer associé au 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é, "false" dans le cas contraire. Si la valeur est "true", le programmeur devrait probablement finaliser tous les descripteurs de fichiers, en gardant à l'esprit que XferDoneHandler sera appelé après cette

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
[in] aXfer
Pointeur visant le BDXTransfer associé à ce transfert
[in] aReceiveAcceptMsg
Pointeur vers le message ReceiveAccept (RecevoirAccept) que nous traitons

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
[in] aXfer
Pointeur visant le BDXTransfer associé à ce transfert
[in] aReceiveInitMsg
Pointeur indiquant le message ReceiveInit que nous traitons

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 visant le BDXTransfer associé à ce transfert
[in] aReport
Pointeur indiquant le refus du message StatusReport en cours de traitement

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
[in] aXfer
Pointeur visant le BDXTransfer associé à ce transfert
[in] aSendAcceptMsg
Pointeur vers le message SendAccept qui est en cours de traitement

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
[in] aXfer
Pointeur visant 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 visant le BDXTransfer associé à ce transfert

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
[in] aXfer
Pointeur visant le BDXTransfer associé à ce transfert
[in] aXferError
Pointeur vers l'erreur du message StatusReport en cours de traitement

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
[in] anEc
Dans le contexte de la place de marché, l'indicateur doit être obtenu en fonction
Renvoie
0 ou kSendFlag_RequestAck