nl:: Weave:: Profiles:: BDX_Development
Questo spazio dei nomi include tutte le interfacce all'interno del profilo Weave per il trasferimento di dati collettivi (BDX) 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 codici di errore al flusso di controllo definito dall'applicazione dall'utente. |
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(*
Consente di gestire il blocco di dati a cui punta un blocco aDataBlock di lunghezza aLength. |
ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg)
|
typedef Callback attivato quando un ReceiveInit inviato in precedenza è accettato dalla destinazione. |
ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg)
|
typedefuint16_t(*
Callback richiamato quando si riceve 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 SendInit inviato in precedenza è accettato dalla destinazione. |
SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg)
|
typedefuint16_t(*
Callback richiamato alla ricezione di un messaggio SendInit. |
XferDoneHandler)(BDXTransfer *aXfer)
|
typedefvoid(*
Gestisci le richieste 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 (nessuna ACK 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'autore dell'azione. |
nl:: |
Il messaggio SendAccept viene utilizzato per accettare uno scambio proposto quando il mittente è l'autore dell'iniziativa. |
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'autore dell'iniziativa. |
nl:: |
Il messaggio di errore viene utilizzato per segnalare un errore e interrompere uno scambio. |
Strutture |
|
---|---|
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 codici di errore al flusso di controllo definito dall'applicazione dall'utente.
In altre parole, se un errore si verifica all'interno di un altro gestore la cui firma ha restituito tipo void (ad esempio in risposta a un messaggio Weave in arrivo o anche inviato dal protocollo), questo gestore verrà chiamato in modo che l'utente possa determinare se il trasferimento può essere recuperato e continuare o se deve chiamare Shutdown(). Tieni presente che è possibile che si verifichi un errore prima che un BDXTransfer venga inizializzato (ad es. troppi oggetti assegnati). In tal caso, l'errore viene registrato da Weave e il protocollo gestisce la pulizia degli stati allocati necessari.
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 buffer (buffer e lunghezza del buffer trasmessi per riferimento). Il chiamante (applicazione utente) DOVREBBE utilizzare il buffer fornito, ma per motivi di compatibilità con le versioni precedenti potrebbe restituire il proprio buffer. Il chiamante 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)
Consente di gestire il blocco di dati a cui punta un blocco aDataBlock di lunghezza aLength.
Probabilmente, dovrai scriverlo in un file e chiuderlo se isLastBlock è true.
Dettagli | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametri |
|
ReceiveAcceptHandler
WEAVE_ERROR(* ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg)
Callback attivato quando un ReceiveInit inviato in precedenza è accettato dalla destinazione.
Ti consigliamo di sfruttare questa opportunità per aprire 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 quando si riceve un messaggio ReceiveInit.
Il suo compito è determinare se si desidera accettare il metodo di ricezione e, in questo caso, impostare aXfer->mIsAccepted=true in modo che il protocollo invii un messaggio di accettazione all'iniziatore. L'oggetto BDXTransfer viene avviato alle impostazioni predefinite. Qui è possibile collegare qualsiasi stato specifico dell'applicazione (handle di file aperti ecc.) a aXfer->mAppState. A questo punto dovresti anche collegare i gestori necessari per la gestione dei blocchi all'oggetto BDXTransfer. Se viene restituito un codice di errore diverso da kStatus_Success, il trasferimento verrà considerato 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 SendInit inviato in precedenza è accettato dalla destinazione.
Ti consigliamo di sfruttare questa opportunità per aprire 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 vuoi accettare SendInit e, in questo caso, impostare aXfer->mIsAccepted=true in modo che il protocollo invii un messaggio di accettazione all'iniziatore. L'oggetto BDXTransfer viene avviato alle impostazioni predefinite. Qui è possibile collegare qualsiasi stato specifico dell'applicazione (handle di file aperti ecc.) a aXfer->mAppState. A questo punto dovresti anche collegare i gestori necessari per la gestione dei blocchi all'oggetto BDXTransfer. Se viene restituito un codice di errore diverso da WEAVE_NO_ERROR, il trasferimento viene considerato rifiutato e il protocollo gestisce l'invio di un messaggio di rifiuto con il codice.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
XferDoneHandler
void(* XferDoneHandler)(BDXTransfer *aXfer)
Gestisci le richieste 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 PacketBuffers al momento), quindi l'opzione di chiamare Shutdown() viene lasciata al programmatore di applicazioni e ai callback da lui definiti. DA FARE: verificalo e riconcilialo con la lingua del documento BDX, che indica: "[Un errore di trasferimento] Può essere inviato in qualsiasi momento da una delle parti per terminare prematuramente il trasferimento di dati collettivo".
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
Funzioni
GetBDXAckFlag
uint16_t GetBDXAckFlag( ExchangeContext *anEc )
GetBDXAckFlag restituisce il flag appropriato per il campo RequestAck in base alla connessione del contesto dello scambio (nessuna ACK della richiesta per TCP) e in base al supporto del tempo di compilazione per WRMP.
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Restituisce |
0 o kSendFlag_RequestAck
|