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 protocole BdxProtocol pour maintenir l'état du protocole. Ils sont gérés par BdxServer, qui gère la création et l'initialisation de nouveaux transferts, y compris la gestion des connexions et des ExchangeContexts.

Attributs publics

mAmInitiator
bool
mAmSender
bool
mAppState
void *
mBlockCounter
uint32_t
Le prochain numéro de bloc nous attendons à recevoir un BlockQuery ou un ACK de blocage lors de l'envoi (une fois que le transfert a officiellement commencé).
mBytesSent
uint64_t
mExchangeContext
mFileDesignator
membres de données liées aux fichiers/blocs À FAIRE: supprimer ceci ? Ou devons-nous simplement établir un contrat de ce à quoi cette chaîne pourrait ressembler et de la façon dont elle sera utilisée ? Plus précisément, est-il sauvegardé par un PacketBuffer ? Si c'est le cas, il ne devrait pas rester pendant tout le 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)
Les coordinateurs vérifient simplement si un gestionnaire a été défini et l'appellent le cas échéant.
DispatchRejectHandler(StatusReport *aReport)
void
Si le gestionnaire de rejet a été défini, appelez-le.
DispatchSendAccept(SendAccept *aSendAcceptMsg)
Si le gestionnaire d'acceptation d'envoi 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

Le prochain numéro de bloc nous attendons à recevoir un BlockQuery ou un ACK de blocage lors de l'envoi (une fois que le transfert a officiellement commencé).

Lors de la réception, il s'agit du prochain BlockSend que nous prévoyons de recevoir ou de la dernière requête BlockQuery que nous avons envoyée (après le début officiel du transfert et l'envoi de 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

membres de données liées aux fichiers/blocs À FAIRE: supprimer ceci ? Ou devons-nous simplement établir un contrat de ce à quoi cette chaîne pourrait ressembler et de la façon dont elle sera utilisée ? Plus précisément, est-il sauvegardé par un PacketBuffer ? Si c'est le cas, il ne devrait pas rester pendant tout le 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, le transfert est également arrêté 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 de la correspondance

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 de la correspondance

DispatchReceiveAccept

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

Les coordinateurs vérifient simplement si un gestionnaire a été défini et l'appellent le cas échéant.

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

Ils doivent donc être utilisés en tant qu'interface publique pour l'appel de rappels, qui ne doivent jamais être touchés directement par des applications externes. Il est possible qu'une révision future de BDXTransfer utilise un objet délégué au lieu de stocker des pointeurs individuels vers chacun des rappels.

Détails
Paramètres
[in] aReceiveAcceptMsg
Message ReceiveAccept à 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, le transfert est également arrêté 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'acceptation d'envoi a été défini, appelez-le.

Détails
Paramètres
[in] aSendAcceptMsg
Message SendAccept à 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, le transfert est également arrêté 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, le transfert est également arrêté par défaut.

Détails
Paramètres
[in] aXferError
Rapport d'état d'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
Valeur "true" si cette entité est le conducteur de cette correspondance

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 la 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 des ressources associées à ce transfert et à votre logique d'application.