nl::Weave::Profiles::BDX_Development

Ta przestrzeń nazw obejmuje wszystkie interfejsy Weave w profilu BDX, które są obecnie w fazie rozwoju i nie powinny być używane w środowisku produkcyjnym.

Podsumowanie

Wyliczenia

@80 enum | typ wyliczeniowy
@81 enum | typ wyliczeniowy
@82 enum | typ wyliczeniowy
@83 enum | typ wyliczeniowy

Definiuje typ

BdxClient typedef
BdxServer typedef
ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode) typedef
void(*
Ten moduł obsługi jest wywoływany za każdym razem, gdy wystąpi błąd Weave, którego nie można zwrócić bezpośrednio za pomocą kodów błędów do zdefiniowanego przez użytkownika procesu sterowania.
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(*
Obsługa bloku danych wskazywanego przez element aDataBlock o długości aLength.
ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg) typedef
Wywołanie zwrotne jest wywoływane, gdy wysłane wcześniej dane ReceiveInit zostaną zaakceptowane przez miejsce docelowe.
ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg) typedef
uint16_t(*
Wywołanie zwrotne jest wywoływane w przypadku otrzymania komunikatu ReceiveInit.
RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport) typedef
void(*
Wywoływana, jeśli jedna z poprzednich wiadomości Init została odrzucona przez miejsce docelowe.
SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg) typedef
Wywołanie zwrotne jest wywoływane, gdy poprzednio wysłany sygnał SendInit został zaakceptowany przez miejsce docelowe.
SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg) typedef
uint16_t(*
Wywołanie zwrotne jest wywoływane w przypadku otrzymania wiadomości SendInit.
XferDoneHandler)(BDXTransfer *aXfer) typedef
void(*
Zajmij się zgłoszeniami, w których przypadku przenoszenie zostało zakończone.
XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError) typedef
void(*
Obsługuj wiadomości z komunikatem TransferError odebrane lub wysłane przez BDX.

Funkcje

GetBDXAckFlag(ExchangeContext *anEc)
uint16_t
GetBDXAckFlag zwraca odpowiednią flagę dla pola RequestAck w zależności od połączenia w ramach giełdy (brak potwierdzenia żądania w przypadku TCP) oraz na podstawie obsługi czasu kompilacji przez WRMP.

Zajęcia

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

Komunikat BlockAck służy do potwierdzenia bloku danych.

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

Komunikat BlockAckV1 służy do potwierdzenia bloku danych.

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

Wiadomość BlockEOF służy do przesłania ostatniego bloku danych od nadawcy do odbiorcy.

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

Komunikat BlockEOFAck służy do potwierdzenia ostatniego bloku danych.

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

Komunikat BlockEOFAckV1 służy do potwierdzenia ostatniego bloku danych.

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

Wiadomość BlockEOFV1 służy do przesłania ostatniego bloku danych od nadawcy do odbiorcy.

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

Komunikat BlockQuery służy do żądania, by wysłać blok danych od nadawcy do odbiorcy.

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

Komunikat BlockQueryV1 służy do żądania, aby blok danych został przesłany od nadawcy do odbiorcy.

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

Wiadomość BlockSend służy do przenoszenia bloku danych od nadawcy do odbiorcy.

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

Wiadomość BlockSendV1 służy do przenoszenia bloku danych od nadawcy do odbiorcy.

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

Komunikat ReceiveAccept służy do zaakceptowania proponowanej wymiany, gdy inicjatorem jest odbiorca.

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

Komunikat ReceiveInit służy do rozpoczynania wymiany, gdy inicjatorem jest odbiorca.

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

Wiadomość ReceiveReject służy do odrzucenia proponowanej wymiany, gdy inicjator jest inicjatorem.

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

Wiadomość SendAccept służy do zaakceptowania proponowanej wymiany, gdy nadawca jest inicjatorem.

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

Wiadomość SendInit służy do rozpoczynania wymiany, gdy nadawca jest inicjatorem.

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

Wiadomość SendReject służy do odrzucenia proponowanej wymiany, gdy inicjator jest inicjatorem.

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

Komunikat o błędzie służy do zgłoszenia błędu i przerwania wymiany.

Struktura

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

Ta struktura zawiera użytkowników danych reprezentujących aktywny transfer BDX.

Przestrzenie nazw

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

Wyliczenia

@80

 @80

@81

 @81

@82

 @82

@83

 @83

Definiuje typ

BdxClient

BdxNode BdxClient

BdxServer

BdxNode BdxServer

ErrorHandler

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

Ten moduł obsługi jest wywoływany za każdym razem, gdy wystąpi błąd Weave, którego nie można zwrócić bezpośrednio za pomocą kodów błędów do zdefiniowanego przez użytkownika procesu sterowania.

Oznacza to, że jeśli wystąpi błąd w innym module obsługi, którego podpis ma zwrot typu „void” (np. w odpowiedzi na przychodzącą wiadomość Weave, czy nawet wysłany przez protokół), ten moduł obsługi zostanie wywołany, aby użytkownik mógł określić, czy transfer można przywrócić i kontynuować, czy powinien wywołać funkcję Disabledown(). Przed zainicjowaniem funkcji BDXTransfer może wystąpić błąd (np. zbyt wiele przydzielonych obiektów transferu). W takim przypadku taki błąd zostanie zarejestrowany przez Weave, a protokół będzie usuwał przydzielony niezbędny stan.

Szczegóły
Parametry
[in] aXfer
Wskaźnik do BDXTransfer powiązanego z tym transferem
[in] anErrorCode
kod błędu, który musi zostać przetworzony;

GetBlockHandler

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

Get a block of data to be transmitted.

Element wywołujący podaje miejsce buforowania (bufor i długość bufora przekazywane przez odwołanie). Wywołana (aplikacja użytkownika) POWINNA używać podanego bufora, ale ze względu na zgodność wsteczną może zwrócić własny bufor. Odbiorca nie może podać więcej niż aLength bajtów. Zwrócony ciąg aLength zawiera rzeczywistą liczbę bajtów odczytanych do bufora.

Szczegóły
Parametry
[in] aXfer
BDXTransfer powiązany z tym trwającym przenoszeniem
[in,out] aLength
Długość danych odczytywanych i przechowywanych w tym bloku. Przy wywołaniu funkcji podana jest długość bufora przekazanego w funkcji aDataBlock. Z kolei zmienna zawiera długość faktycznie odczytywanych danych.
[in,out] aDataBlock
Wskaźnik do bloku danych. Dane wejściowe zawierają bufor udostępniany przez platformę. wywoływana może wykorzystać tę przestrzeń do zapełnienia bufora lub zapewnienia własnego obszaru do buforowania (w przypadku aplikacji zgodnych ze zgodnością wsteczną). Aplikacje korzystające z udostępnianego bufora nie mogą zakładać żadnego dopasowania.
[out] aLastBlock
Wartość true, jeśli blokada powinna zostać wysłana jako BlockEOF, a przenoszenie zostało zakończone. W przeciwnym razie ma wartość false (fałsz).

PutBlockHandler

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

Obsługa bloku danych wskazywanego przez element aDataBlock o długości aLength.

Prawdopodobnie spowoduje to zapisanie go w pliku i zamknięcie tego pliku, jeśli zasada isLastBlock ma wartość true (prawda).

Szczegóły
Parametry
[in] aXfer
BDXTransfer powiązany z tym trwającym przenoszeniem
[in] aLength
Długość danych odczytanych i przechowywanych w określonym bloku
[in] aDataBlock
Rzeczywisty blok danych
[in] aLastBlock
Wartość true, jeśli blokada została odebrana w ramach funkcji BlockEOF i transfer został ukończony. W przeciwnym razie ma wartość false (fałsz). Jeśli ma wartość prawda, programista powinien prawdopodobnie zakończyć wszystkie uchwyty plików, pamiętając, że po tym wywołaniu XferDoneHandler

ReceiveAcceptHandler

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

Wywołanie zwrotne jest wywoływane, gdy wysłane wcześniej dane ReceiveInit zostaną zaakceptowane przez miejsce docelowe.

Możesz skorzystać z tej możliwości, aby otworzyć pliki lub przydzielić zasoby do przeniesienia, jeśli nie zostało to zrobione podczas jego inicjowania.

Szczegóły
Parametry
[in] aXfer
Wskaźnik do BDXTransfer powiązanego z tym transferem
[in] aReceiveAcceptMsg
Wskaźnik do wiadomości ReceiveAccept, która jest w trakcie przetwarzania.

ReceiveInitHandler

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

Wywołanie zwrotne jest wywoływane w przypadku otrzymania komunikatu ReceiveInit.

Jego zadaniem jest określenie, czy chcesz zaakceptować odbieranie, a jeśli tak, ustaw parametr aXfer->mIsAccepted=true, tak aby protokół wysyłał wiadomość o zaakceptowaniu do inicjatora. Obiekt BDXTransfer inicjuje działanie z użyciem ustawień domyślnych. W tym miejscu możesz dołączyć dowolny stan aplikacji (otwarte uchwyty plików itp.) do aXfer->mAppState. Dołącz też niezbędne moduły obsługi, np. do obiektu BDXTransfer. Jeśli zostanie zwrócony kod błędu inny niż kStatus_Success, przyjmuje się, że przesyłanie zostało odrzucone, a protokół obsługuje wysyłanie wiadomości o odrzuceniu z kodem.

Szczegóły
Parametry
[in] aXfer
Wskaźnik do BDXTransfer powiązanego z tym transferem
[in] aReceiveInitMsg
Wskaźnik do wiadomości ReceiveInit, która jest w trakcie przetwarzania

RejectHandler

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

Wywoływana, jeśli jedna z poprzednich wiadomości Init została odrzucona przez miejsce docelowe.

Szczegóły
Parametry
[in] aXfer
Wskaźnik do BDXTransfer powiązanego z tym transferem
[in] aReport
Wskaźnik odrzucenia wiadomości z raportu Stanu, którą przetwarzamy

SendAcceptHandler

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

Wywołanie zwrotne jest wywoływane, gdy poprzednio wysłany sygnał SendInit został zaakceptowany przez miejsce docelowe.

Możesz skorzystać z tej możliwości, aby otworzyć pliki lub przydzielić zasoby do przeniesienia, jeśli nie zostało to zrobione podczas jego inicjowania.

Szczegóły
Parametry
[in] aXfer
Wskaźnik do BDXTransfer powiązanego z tym transferem
[in] aSendAcceptMsg
Wskaźnik do wiadomości SendAccept, która jest przetwarzana

SendInitHandler

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

Wywołanie zwrotne jest wywoływane w przypadku otrzymania wiadomości SendInit.

Jego zadaniem jest określenie, czy chcesz zaakceptować SendInit, a jeśli tak, ustaw parametr aXfer->mIsAccepted=true, tak aby protokół wysyłał komunikat o zaakceptowaniu do inicjatora. Obiekt BDXTransfer inicjuje działanie z użyciem ustawień domyślnych. W tym miejscu możesz dołączyć dowolny stan aplikacji (otwarte uchwyty plików itp.) do aXfer->mAppState. Dołącz też niezbędne moduły obsługi, np. do obiektu BDXTransfer. Jeśli zostanie zwrócony kod błędu inny niż WEAVE_NO_ERROR, przyjmuje się, że przesyłanie zostało odrzucone, a protokół obsługuje wysyłanie wiadomości o odrzuceniu z tym kodem.

Szczegóły
Parametry
[in] aXfer
Wskaźnik do BDXTransfer powiązanego z tym transferem
[in] aSendInitMsg
Najedź kursorem na wiadomość SendInit, którą przetwarzamy.

XferDoneHandler

void(* XferDoneHandler)(BDXTransfer *aXfer)

Zajmij się zgłoszeniami, w których przypadku przenoszenie zostało zakończone.

Szczegóły
Parametry
[in] aXfer
Wskaźnik do BDXTransfer powiązanego z tym transferem

XferErrorHandler

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

Obsługuj wiadomości z komunikatem TransferError odebrane lub wysłane przez BDX.

Uwaga: zakłada się, że transfer BDX da się odzyskać (prawdopodobnie tymczasowo, np. z bufora PacketBuffers), więc możliwość wywołania funkcji Disabledown() pozostawia programiście aplikacji i zdefiniowanym przez niego wywołaniem zwrotnym. DO ZROBIENIA: zweryfikuj to i uzgodnij je z sformułowaniem w dokumencie BDX, w którym stwierdza się: „[Błąd transferu] Może zostać wysłany w dowolnym momencie przez dowolną ze stron, aby przedwcześnie zakończenia zbiorczego przesyłania danych.

Szczegóły
Parametry
[in] aXfer
Wskaźnik do BDXTransfer powiązanego z tym transferem
[in] aXferError
Wskaźnik błędu komunikatu StatusReport, który jest w trakcie przetwarzania

Funkcje

GetBDXAckFlag

uint16_t GetBDXAckFlag(
  ExchangeContext *anEc
)

GetBDXAckFlag zwraca odpowiednią flagę dla pola RequestAck w zależności od połączenia w ramach giełdy (brak potwierdzenia żądania w przypadku TCP) oraz na podstawie obsługi czasu kompilacji przez WRMP.

Szczegóły
Parametry
[in] anEc
Kontekst giełdy, na podstawie którego powinniśmy otrzymać flagę.
Zwroty
0 lub kSendFlag_RequestAck