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

#include <src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.h>

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

Résumé

Ces objets sont utilisés par le BdxProtocol pour maintenir l'état du protocole. Ils sont gérés par BdxServer, qui gère la création et l'initialisation des transferts, y compris les connexions et les contextes ExchangeContexts.

Attributs publics

mAmInitiator
bool
mAmSender
bool
mAppState
void *
mBlockCounter
uint32_t
Numéro de bloc suivant pour lequel nous nous attendons à recevoir une requête BlockQuery ou BlockACK lors de l'envoi (une fois le transfert officiellement lancé).
mBytesSent
uint64_t
mExchangeContext
mFileDesignator
fichier/bloquer les données associées membres À FAIRE: supprimer ceci ? ou devons-nous simplement établir un contrat sur ce à quoi pourrait ressembler cette chaîne et comment elle sera utilisée ? Plus précisément, s'appuie-t-il sur un PacketBuffer ? Si c'est le cas, il ne devrait probablement pas rester pendant l'ensemble du xfer, car cela prend un pbuf
mFirstQuery
bool
mHandlers
mIsAccepted
bool
mIsCompletedSuccessfully
bool
mIsInitiated
bool
mIsWideRange
bool
mLength
uint64_t
mMaxBlockSize
uint16_t
mNext)(BDXTransfer &)
mStartOffset
uint64_t
mTransferMode
uint8_t
mVersion
uint8_t

Fonctions publiques

DispatchErrorHandler(WEAVE_ERROR anErrorCode)
void
Si le gestionnaire d'erreurs a été défini, appelez-le.
DispatchGetBlockHandler(uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)
void
Si le gestionnaire de blocs get a été défini, appelez-le.
DispatchPutBlockHandler(uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
void
Si le gestionnaire de blocs "put" a été défini, appelez-le.
DispatchReceiveAccept(ReceiveAccept *aReceiveAcceptMsg)
Il suffit aux coordinateurs de vérifier si un gestionnaire a été défini et de l'appeler si tel est le cas.
DispatchRejectHandler(StatusReport *aReport)
void
Si le gestionnaire de rejet a été défini, appelez-le.
DispatchSendAccept(SendAccept *aSendAcceptMsg)
Si le gestionnaire d'envoi d'acceptation a été défini, appelez-le.
DispatchXferDoneHandler(void)
void
Si le gestionnaire de transfert terminé a été défini, appelez-le.
DispatchXferErrorHandler(StatusReport *aXferError)
void
Si le gestionnaire d'erreurs de transfert a été défini, appelez-le.
GetDefaultFlags(bool aExpectResponse)
uint16_t
Cette fonction renvoie les indicateurs par défaut à envoyer avec un message.
IsAsync(void)
bool
 Returns true if this transfer is asynchronous, false otherwise.
IsDriver(void)
bool
 Returns true if this entity (node) is the driver for this transfer, false otherwise.
Reset(void)
void
 Sets all pointers to NULL, resets counters, etc.
SetHandlers(BDXHandlers aHandlers)
void
Cette fonction définit les gestionnaires sur cet objet BDXTransfer.
Shutdown(void)
void
 Shuts down the current transfer, including closing any open ExchangeContext.

Attributs publics

mAmInitiator

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mAmInitiator

mAmSender

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mAmSender

mAppState

void * nl::Weave::Profiles::BDX_Development::BDXTransfer::mAppState

mBlockCounter

uint32_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mBlockCounter

Numéro de bloc suivant pour lequel nous nous attendons à recevoir une requête BlockQuery ou BlockACK lors de l'envoi (une fois le transfert officiellement lancé).

Lors de la réception, il s'agit du prochain BlockSend que nous nous attendons à recevoir ou de la dernière BlockQuery que nous avons envoyée (après le démarrage officiel du transfert et la première requête envoyée).

mBytesSent

uint64_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mBytesSent

mExchangeContext

ExchangeContext * nl::Weave::Profiles::BDX_Development::BDXTransfer::mExchangeContext

mFileDesignator

ReferencedString nl::Weave::Profiles::BDX_Development::BDXTransfer::mFileDesignator

fichier/bloquer les données associées membres À FAIRE: supprimer ceci ? ou devons-nous simplement établir un contrat sur ce à quoi pourrait ressembler cette chaîne et comment elle sera utilisée ? Plus précisément, s'appuie-t-il sur un PacketBuffer ? Si c'est le cas, il ne devrait probablement pas rester pendant l'ensemble du xfer, car cela prend un pbuf

mFirstQuery

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mFirstQuery

mHandlers

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

mIsAccepted

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsAccepted

mIsCompletedSuccessfully

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsCompletedSuccessfully

mIsInitiated

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsInitiated

mIsWideRange

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsWideRange

mLength

uint64_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mLength

mMaxBlockSize

uint16_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mMaxBlockSize

mNext

WEAVE_ERROR(* nl::Weave::Profiles::BDX_Development::BDXTransfer::mNext)(BDXTransfer &)

mStartOffset

uint64_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mStartOffset

mTransferMode

uint8_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mTransferMode

mVersion

uint8_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mVersion

Fonctions publiques

DispatchErrorHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchErrorHandler(
  WEAVE_ERROR anErrorCode
)

Si le gestionnaire d'erreurs a été défini, appelez-le.

Si cette règle n'est pas configurée, arrêtez également le transfert par défaut.

Détails
Paramètres
[in] anErrorCode
Code d'erreur à traiter

DispatchGetBlockHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchGetBlockHandler(
  uint64_t *aLength,
  uint8_t **aDataBlock,
  bool *aLastBlock
)

Si le gestionnaire de blocs get a été défini, appelez-le.

Détails
Paramètres
[in] aLength
Longueur du bloc
[in] aDataBlock
Pointeur vers le bloc de données
[in] aLastBlock
"True" s'il s'agit du dernier bloc du transfert

DispatchPutBlockHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchPutBlockHandler(
  uint64_t aLength,
  uint8_t *aDataBlock,
  bool aLastBlock
)

Si le gestionnaire de blocs "put" a été défini, appelez-le.

Détails
Paramètres
[in] aLength
Longueur du bloc
[in] aDataBlock
Pointeur vers le bloc de données
[in] aLastBlock
"True" s'il s'agit du dernier bloc du transfert

DispatchReceiveAccept

WEAVE_ERROR nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchReceiveAccept(
  ReceiveAccept *aReceiveAcceptMsg
)

Il suffit aux coordinateurs de vérifier si un gestionnaire a été défini et de l'appeler si tel est le cas.

Si le gestionnaire d'acceptation de réception a été défini, appelez-le.

Par conséquent, ils doivent servir d'interface publique permettant d'appeler des rappels auxquels des applications externes ne doivent jamais accéder directement. Il est possible qu'une révision ultérieure de BDXTransfer utilise un objet délégué au lieu de stocker des pointeurs individuels pour chacun des rappels.

Détails
Paramètres
[in] aReceiveAcceptMsg
ReceiveAccept : message à traiter.
Renvoie
une valeur d'erreur

DispatchRejectHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchRejectHandler(
  StatusReport *aReport
)

Si le gestionnaire de rejet a été défini, appelez-le.

Si cette règle n'est pas configurée, arrêtez également le transfert par défaut.

Détails
Paramètres
[in] aReport
Message StatusReport à traiter

DispatchSendAccept

WEAVE_ERROR nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchSendAccept(
  SendAccept *aSendAcceptMsg
)

Si le gestionnaire d'envoi d'acceptation a été défini, appelez-le.

Détails
Paramètres
[in] aSendAcceptMsg
SendAccept du message à traiter.
Renvoie
une valeur d'erreur

DispatchXferDoneHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchXferDoneHandler(
  void
)

Si le gestionnaire de transfert terminé a été défini, appelez-le.

Si cette règle n'est pas configurée, arrêtez également le transfert par défaut.

DispatchXferErrorHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchXferErrorHandler(
  StatusReport *aXferError
)

Si le gestionnaire d'erreurs de transfert a été défini, appelez-le.

Si cette règle n'est pas configurée, arrêtez également le transfert par défaut.

Détails
Paramètres
[in] aXferError
Rapport d'état sur une erreur à traiter

GetDefaultFlags

uint16_t nl::Weave::Profiles::BDX_Development::BDXTransfer::GetDefaultFlags(
  bool aExpectResponse
)

Cette fonction renvoie les indicateurs par défaut à envoyer avec un message.

Détails
Paramètres
[in] aExpectResponse
Si nous attendons une réponse à ce message
Renvoie
Les indicateurs à envoyer

IsAsync

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::IsAsync(
  void
)

 Returns true if this transfer is asynchronous, false otherwise.

Détails
Renvoie
Valeur "true" si le transfert est asynchrone.

IsDriver

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::IsDriver(
  void
)

 Returns true if this entity (node) is the driver for this transfer, false otherwise.

Détails
Renvoie
"true" si cette entité est le conducteur du transfert

Réinitialiser

void nl::Weave::Profiles::BDX_Development::BDXTransfer::Reset(
  void
)

 Sets all pointers to NULL, resets counters, etc.

Appelée à l'arrêt.

SetHandlers

void nl::Weave::Profiles::BDX_Development::BDXTransfer::SetHandlers(
  BDXHandlers aHandlers
)

Cette fonction définit les gestionnaires sur cet objet BDXTransfer.

Vous devez toujours utiliser cette méthode plutôt que d'essayer de les définir manuellement, car l'implémentation sous-jacente du stockage des pointeurs de fonction de gestionnaire ne fait pas partie de l'API publique.

Détails
Paramètres
[in] aHandlers
Structure des gestionnaires de rappel à appeler

Arrêt

void nl::Weave::Profiles::BDX_Development::BDXTransfer::Shutdown(
  void
)

 Shuts down the current transfer, including closing any open ExchangeContext.

Profitez-en pour libérer les ressources associées à ce transfert et à votre logique d'application.

La version actuelle du profil BDX du profil BDX n'appelle cette méthode que dans les cas suivants : 1) Le serveur entier est arrêté