nl::Weave::Profiles::BDX_Development

Questo spazio dei nomi include tutte le interfacce all'interno di Weave per il profilo BDX (Bulk Data Transfer) che sono attivamente in fase di sviluppo e non devono essere utilizzate per l'uso in produzione.

Riepilogo

Enumerazioni

@80 enum
@81 enum
@82 enum
@83 enum

Typedef

BdxClient typedef
BdxServer typedef
ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode) typedef
void(*
Questo gestore viene chiamato ogni volta che si verifica un errore Weave che non può essere restituito direttamente tramite i codici di errore al flusso di controllo definito dall'applicazione.
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(*
Gestisci il blocco di dati a cui punta unDataBlock di lunghezza aLength.
ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg) typedef
Callback richiamato quando un elemento ReceiveInit inviato in precedenza viene accettato dalla destinazione.
ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg) typedef
uint16_t(*
Callback richiamato alla ricezione di un messaggio ReceiveInit.
RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport) typedef
void(*
Richiamato se uno dei messaggi Init precedenti è stato rifiutato dalla destinazione.
SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg) typedef
Callback richiamato quando un elemento SendInit inviato in precedenza viene accettato dalla destinazione.
SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg) typedef
uint16_t(*
Callback richiamato alla ricezione di un messaggio SendInit.
XferDoneHandler)(BDXTransfer *aXfer) typedef
void(*
Gestisci i casi in cui il trasferimento è terminato.
XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError) typedef
void(*
Gestire i messaggi TransferError ricevuti o inviati da BDX.

Funzioni

GetBDXAckFlag(ExchangeContext *anEc)
uint16_t
GetBDXAckFlag restituisce il flag appropriato per il campo RequestAck in base alla connessione del contesto dello scambio (nessun messaggio di conferma della richiesta per TCP) e in base al supporto del tempo di compilazione per WRMP.

Corsi

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

Il messaggio BlockAck viene utilizzato per confermare un blocco di dati.

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

Il messaggio BlockAckV1 viene utilizzato per confermare un blocco di dati.

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

Il messaggio BlockEOF viene utilizzato per trasferire l'ultimo blocco di dati dal mittente al destinatario.

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

Il messaggio BlockEOFAck viene utilizzato per confermare l'ultimo blocco di dati.

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

Il messaggio BlockEOFAckV1 viene utilizzato per confermare l'ultimo blocco di dati.

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

Il messaggio BlockEOFV1 viene utilizzato per trasferire l'ultimo blocco di dati dal mittente al destinatario.

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

Il messaggio BlockQuery viene utilizzato per richiedere il trasferimento di un blocco di dati dal mittente al destinatario.

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

Il messaggio BlockQueryV1 viene utilizzato per richiedere il trasferimento di un blocco di dati dal mittente al destinatario.

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

Il messaggio BlockSend viene utilizzato per trasferire un blocco di dati dal mittente al destinatario.

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

Il messaggio BlockSendV1 viene utilizzato per trasferire un blocco di dati dal mittente al destinatario.

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

Il messaggio ReceiveAccept viene utilizzato per accettare uno scambio proposto quando il destinatario è l'iniziatore.

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

Il messaggio ReceiveInit viene utilizzato per avviare uno scambio quando il destinatario è l'iniziatore.

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

Il messaggio ReceiveReject viene utilizzato per rifiutare uno scambio proposto quando il mittente è l'iniziatore.

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

Il messaggio SendAccept viene utilizzato per accettare uno scambio proposto quando il mittente è l'iniziatore.

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

Il messaggio SendInit viene utilizzato per avviare uno scambio quando il mittente è l'iniziatore.

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

Il messaggio SendReject viene utilizzato per rifiutare uno scambio proposto quando il mittente è l'iniziatore.

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

Il messaggio di errore viene utilizzato per segnalare un errore e interrompere una piattaforma di scambio pubblicitario.

Structs

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

Questa struttura contiene membri di dati che rappresentano un trasferimento BDX attivo.

Spazi dei nomi

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

Enumerazioni

@80

 @80

@81

 @81

@82

 @82

@83

 @83

Typedef

BdxClient

BdxNode BdxClient

BdxServer

BdxNode BdxServer

ErrorHandler

void(* ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode)

Questo gestore viene chiamato ogni volta che si verifica un errore Weave che non può essere restituito direttamente tramite i codici di errore al flusso di controllo definito dall'applicazione.

In altre parole, se si verifica un errore all'interno di un altro gestore la cui firma ha il tipo restituito void (ad es. in risposta a un messaggio Weave in arrivo o anche inviato dal protocollo), questo gestore viene chiamato in modo che l'utente possa determinare se il trasferimento può essere recuperato e continuato o se deve chiamare Shutdown(). Tieni presente che è possibile che si verifichi un errore prima che venga inizializzato un BDXTransfer (ad es. troppi oggetti di trasferimento allocati). In tal caso, l'errore verrà registrato da Weave e il protocollo gestirà la pulizia di eventuali stati necessari assegnati.

Dettagli
Parametri
[in] aXfer
Puntatore al BDXTransfer associato a questo trasferimento
[in] anErrorCode
Il codice di errore che dobbiamo elaborare

GetBlockHandler

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

Get a block of data to be transmitted.

Il chiamante fornisce lo spazio di buffering (buffer e lunghezza del buffer, passato per riferimento). Il chiamante (applicazione utente) DEVE usare il buffer fornito, ma per motivi di compatibilità con le versioni precedenti potrebbe restituire il proprio buffer. Il destinatario non deve fornire più di aLength di byte. Al ritorno, aLength contiene il numero effettivo di byte letti nel buffer.

Dettagli
Parametri
[in] aXfer
Il trasferimento BDXTransfer associato a questo trasferimento in corso
[in,out] aLength
La durata dei dati letti e memorizzati in questo blocco. Durante la chiamata alla funzione, viene indicata la lunghezza del buffer passato in aDataBlock. Al ritorno, la variabile contiene la lunghezza dei dati effettivamente letti.
[in,out] aDataBlock
Il puntatore al blocco di dati. All'input, contiene il buffer fornito dal framework; il chiamante può utilizzare quello spazio per riempire il buffer oppure fornire un proprio spazio di buffering (per applicazioni con compatibilità con le versioni precedenti). Le applicazioni che utilizzano il buffer fornito non devono presupporre alcun allineamento.
[out] aLastBlock
True se il blocco deve essere inviato come BlockEOF e il trasferimento è stato completato, false in caso contrario

PutBlockHandler

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

Gestisci il blocco di dati a cui punta unDataBlock di lunghezza aLength.

Probabilmente questo comporterà la scrittura in un file e la chiusura del file stesso se isLastBlock è true.

Dettagli
Parametri
[in] aXfer
Il trasferimento BDXTransfer associato a questo trasferimento in corso
[in] aLength
La lunghezza dei dati letti e memorizzati nel blocco specificato
[in] aDataBlock
L'effettivo blocco di dati
[in] aLastBlock
True se il blocco è stato ricevuto come BlockEOF e il trasferimento è stato completato, false negli altri casi. Se true, il programmatore dovrebbe probabilmente finalizzare tutti gli handle di file, tenendo presente che XferDone {/7} verrà chiamato dopo

ReceiveAcceptHandler

WEAVE_ERROR(* ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg)

Callback richiamato quando un elemento ReceiveInit inviato in precedenza viene accettato dalla destinazione.

Potresti voler sfruttare questa opportunità per aprire i file o allocare risorse per il trasferimento se non l'hai fatto quando lo hai avviato.

Dettagli
Parametri
[in] aXfer
Puntatore al BDXTransfer associato a questo trasferimento
[in] aReceiveAcceptMsg
Puntare al messaggio ReceiveAccept che stiamo elaborando

ReceiveInitHandler

uint16_t(* ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg)

Callback richiamato alla ricezione di un messaggio ReceiveInit.

Il suo compito è stabilire se desideri accettare la ricezione e, in tal caso, impostare aXfer->mIsAccepted=true in modo che il protocollo invii un messaggio di accettazione all'iniziatore. L'oggetto BDXTransfer viene avviato con le impostazioni predefinite. È un buon posto per collegare qualsiasi stato specifico dell'applicazione (handle di file aperti e così via) ad aXfer->mAppState. Devi anche collegare i gestori necessari, ad esempio la gestione dei blocchi all'oggetto BDXTransfer a questo punto. Se viene restituito un codice di errore diverso da kStatus_Success, si presume che il trasferimento sia stato rifiutato e il protocollo gestirà l'invio di un messaggio di rifiuto con il codice.

Dettagli
Parametri
[in] aXfer
Puntatore al BDXTransfer associato a questo trasferimento
[in] aReceiveInitMsg
Puntatore al messaggio ReceiveInit che stiamo elaborando

RejectHandler

void(* RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport)

Richiamato se uno dei messaggi Init precedenti è stato rifiutato dalla destinazione.

Dettagli
Parametri
[in] aXfer
Puntatore al BDXTransfer associato a questo trasferimento
[in] aReport
Suggerimento al rifiuto del messaggio StatusReport che stiamo elaborando

SendAcceptHandler

WEAVE_ERROR(* SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg)

Callback richiamato quando un elemento SendInit inviato in precedenza viene accettato dalla destinazione.

Potresti voler sfruttare questa opportunità per aprire i file o allocare risorse per il trasferimento se non l'hai fatto quando lo hai avviato.

Dettagli
Parametri
[in] aXfer
Puntatore al BDXTransfer associato a questo trasferimento
[in] aSendAcceptMsg
Punta al messaggio SendAccept che stiamo elaborando

SendInitHandler

uint16_t(* SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg)

Callback richiamato alla ricezione di un messaggio SendInit.

Il suo compito è determinare se desideri accettare SendInit e, in tal caso, impostare aXfer->mIsAccepted=true in modo che il protocollo invii un messaggio di accettazione all'iniziatore. L'oggetto BDXTransfer viene avviato con le impostazioni predefinite. È un buon posto per collegare qualsiasi stato specifico dell'applicazione (handle di file aperti e così via) ad aXfer->mAppState. Devi anche collegare i gestori necessari, ad esempio la gestione dei blocchi all'oggetto BDXTransfer a questo punto. Se viene restituito un codice di errore diverso da WEAVE_NO_ERROR, si presume che il trasferimento sia stato rifiutato e il protocollo gestirà l'invio di un messaggio di rifiuto con il codice.

Dettagli
Parametri
[in] aXfer
Puntatore al BDXTransfer associato a questo trasferimento
[in] aSendInitMsg
Punta al messaggio SendInit che stiamo elaborando

XferDoneHandler

void(* XferDoneHandler)(BDXTransfer *aXfer)

Gestisci i casi in cui il trasferimento è terminato.

Dettagli
Parametri
[in] aXfer
Puntatore al BDXTransfer associato a questo trasferimento

XferErrorHandler

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

Gestire i messaggi TransferError ricevuti o inviati da BDX.

Nota: si presume che il trasferimento BDX sia potenzialmente recuperabile (possibilmente temporaneo, ad esempio fuori da PacketBuffers al momento), quindi l'opzione di chiamare Shutdown() viene lasciata al programmatore dell'applicazione e ai callback che definiscono. DA FARE: verificalo e riconcilialo con la lingua del documento BDX, che afferma: "[Errore di trasferimento] Può essere inviato in qualsiasi momento da entrambe le parti per prematuramente terminare il trasferimento collettivo dei dati".

Dettagli
Parametri
[in] aXfer
Puntatore al BDXTransfer associato a questo trasferimento
[in] aXferError
Suggerimento all'errore del messaggio StatusReport che stiamo elaborando

Funzioni

GetBDXAckFlag

uint16_t GetBDXAckFlag(
  ExchangeContext *anEc
)

GetBDXAckFlag restituisce il flag appropriato per il campo RequestAck in base alla connessione del contesto di scambio (nessun messaggio di conferma della richiesta per TCP) e in base al supporto del tempo di compilazione per WRMP.

Dettagli
Parametri
[in] anEc
Il contesto dello scambio su cui dovremmo ottenere il flag
Restituisce
0 o kSendFlag_RequestAck