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) typedef
void(*
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) typedef
void(*
Get a block of data to be transmitted.
PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock) typedef
void(*
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) typedef
uint16_t(*
Callback richiamato quando si riceve 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 SendInit inviato in precedenza è 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 le richieste 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 (nessuna ACK 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'autore dell'azione.

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

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

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'autore dell'iniziativa.

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

Il messaggio di errore viene utilizzato per segnalare un errore e interrompere uno scambio.

Strutture

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 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
[in] aXfer
Suggerimento 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 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
[in] aXfer
Il trasferimento BDXTransfer associato a questo trasferimento in corso.
[in,out] aLength
La lunghezza dei dati letti e memorizzati in questo blocco. Alla chiamata della funzione contiene la lunghezza del buffer passato nell'elemento aDataBlock. Al ritorno, la variabile contiene la lunghezza dei dati effettivamente letti.
[in,out] aDataBlock
Il puntatore al blocco di dati. Al momento dell'input, contiene il buffer fornito dal framework; la persona invitata può utilizzare quello spazio per riempire il buffer o fornire il proprio spazio di buffer (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, altrimenti false

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
[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, altrimenti false. Se il valore è vero, il programmatore probabilmente dovrebbe finalizzare qualsiasi handle di file, tenendo presente che dopo questo processo verrà chiamato XferDoneHandler

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
[in] aXfer
Suggerimento al BDXTransfer associato a questo trasferimento
[in] aReceiveAcceptMsg
Posiziona il puntatore sul messaggio ReceiveAccept che sia in fase di elaborazione.

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
[in] aXfer
Suggerimento al BDXTransfer associato a questo trasferimento
[in] aReceiveInitMsg
Posiziona il cursore sul 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
Suggerimento al BDXTransfer associato a questo trasferimento
[in] aReport
Punta al rifiuto del messaggio StatusReport che stiamo elaborando

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
[in] aXfer
Suggerimento al BDXTransfer associato a questo trasferimento
[in] aSendAcceptMsg
Posiziona il puntatore del mouse sul 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 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
[in] aXfer
Suggerimento al BDXTransfer associato a questo trasferimento
[in] aSendInitMsg
Punta al messaggio SendInit che indica che stiamo elaborando

XferDoneHandler

void(* XferDoneHandler)(BDXTransfer *aXfer)

Gestisci le richieste in cui il trasferimento è terminato.

Dettagli
Parametri
[in] aXfer
Suggerimento 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 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
[in] aXfer
Suggerimento al BDXTransfer associato a questo trasferimento
[in] aXferError
Suggerimento del messaggio StatusReport che è in fase di elaborazione

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
[in] anEc
Il contesto di scambio da cui ottenere il flag in base
Restituisce
0 o kSendFlag_RequestAck