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)
|
typedefvoid(*
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)
|
typedefvoid(*
Get a block of data to be transmitted. |
PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
|
typedefvoid(*
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)
|
typedefuint16_t(*
Callback richiamato alla ricezione di un messaggio ReceiveInit. |
RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport)
|
typedefvoid(*
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)
|
typedefuint16_t(*
Callback richiamato alla ricezione di un messaggio SendInit. |
XferDoneHandler)(BDXTransfer *aXfer)
|
typedefvoid(*
Gestisci i casi in cui il trasferimento è terminato. |
XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError)
|
typedefvoid(*
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:: |
|
nl:: |
Il messaggio BlockAck viene utilizzato per confermare un blocco di dati. |
nl:: |
Il messaggio BlockAckV1 viene utilizzato per confermare un blocco di dati. |
nl:: |
Il messaggio BlockEOF viene utilizzato per trasferire l'ultimo blocco di dati dal mittente al destinatario. |
nl:: |
Il messaggio BlockEOFAck viene utilizzato per confermare l'ultimo blocco di dati. |
nl:: |
Il messaggio BlockEOFAckV1 viene utilizzato per confermare l'ultimo blocco di dati. |
nl:: |
Il messaggio BlockEOFV1 viene utilizzato per trasferire l'ultimo blocco di dati dal mittente al destinatario. |
nl:: |
Il messaggio BlockQuery viene utilizzato per richiedere il trasferimento di un blocco di dati dal mittente al destinatario. |
nl:: |
Il messaggio BlockQueryV1 viene utilizzato per richiedere il trasferimento di un blocco di dati dal mittente al destinatario. |
nl:: |
Il messaggio BlockSend viene utilizzato per trasferire un blocco di dati dal mittente al destinatario. |
nl:: |
Il messaggio BlockSendV1 viene utilizzato per trasferire un blocco di dati dal mittente al destinatario. |
nl:: |
Il messaggio ReceiveAccept viene utilizzato per accettare uno scambio proposto quando il destinatario è l'iniziatore. |
nl:: |
Il messaggio ReceiveInit viene utilizzato per avviare uno scambio quando il destinatario è l'iniziatore. |
nl:: |
Il messaggio ReceiveReject viene utilizzato per rifiutare uno scambio proposto quando il mittente è l'iniziatore. |
nl:: |
Il messaggio SendAccept viene utilizzato per accettare uno scambio proposto quando il mittente è l'iniziatore. |
nl:: |
Il messaggio SendInit viene utilizzato per avviare uno scambio quando il mittente è l'iniziatore. |
nl:: |
Il messaggio SendReject viene utilizzato per rifiutare uno scambio proposto quando il mittente è l'iniziatore. |
nl:: |
Il messaggio di errore viene utilizzato per segnalare un errore e interrompere una piattaforma di scambio pubblicitario. |
Structs |
|
---|---|
nl:: |
|
nl:: |
Questa struttura contiene membri di dati che rappresentano un trasferimento BDX attivo. |
Spazi dei nomi |
|
---|---|
nl:: |
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
RejectHandler
void(* RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport)
Richiamato se uno dei messaggi Init precedenti è stato rifiutato dalla destinazione.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
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 |
|
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 |
|
XferDoneHandler
void(* XferDoneHandler)(BDXTransfer *aXfer)
Gestisci i casi in cui il trasferimento è terminato.
Dettagli | |||
---|---|---|---|
Parametri |
|
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 |
|
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 |
|
||
Restituisce |
0 o kSendFlag_RequestAck
|