nl::Weave::Profiles::BDX_Development

Ta przestrzeń nazw obejmuje wszystkie interfejsy Weave na potrzeby profilu BDX, które są w trakcie opracowywania i nie powinny być używane do celów produkcyjnych.

Podsumowanie

Wyliczenia

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

Definicje typów

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łędu do przepływu sterowania zdefiniowanego przez użytkownika.
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 długości.
ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg) typedef
Wywołanie zwrotne jest wywoływane po zaakceptowaniu wysłanej wcześniej przez serwer wartości ReceiveInit przez miejsce docelowe.
ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg) typedef
uint16_t(*
Wywołanie zwrotne jest wywoływane po otrzymaniu 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 wcześniej wysłana wartość SendInit została zaakceptowana przez miejsce docelowe.
SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg) typedef
uint16_t(*
Wywołanie zwrotne jest wywoływane po otrzymaniu wiadomości SendInit.
XferDoneHandler)(BDXTransfer *aXfer) typedef
void(*
Obsługa przypadków, w których przenoszenie zostało zakończone.
XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError) typedef
void(*
Obsługa komunikatów TransferError otrzymanych lub wysłanych przez BDX.

Funkcje

GetBDXAckFlag(ExchangeContext *anEc)
uint16_t
GetBDXAckFlag zwraca odpowiednią flagę pola RequestAck w zależności od połączenia kontekstu giełdy (bez potwierdzenia żądania dla TCP) i na podstawie obsługi czasu kompilowania 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

Komunikat BlockEOF służy do przenoszenia 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

Komunikat BlockEOFV1 służy do przesyłania ostatniego bloku danych od nadawcy do odbiorcy.

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

Komunikat BlockQuery służy do żądania przesłania bloku danych od nadawcy do odbiorcy.

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

Komunikat BlockQueryV1 służy do żądania przesłania bloku danych 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

Komunikat BlockSendV1 służy do przenoszenia bloku danych od nadawcy do odbiorcy.

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

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

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

Komunikat ReceiveInit służy do rozpoczęcia wymiany, gdy odbiorca jest inicjatorem.

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

Wiadomość ReceiveReject służy do odrzucania proponowanej wymiany, jeśli jej nadawca jest inicjatorem.

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

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

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

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

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

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

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

Komunikat o błędzie służy do zgłaszania błędów i przerwania wymiany.

Konstrukcja

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

Ta struktura zawiera dane reprezentujące aktywny transfer BDX.

Przestrzenie nazw

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

Wyliczenia

@80

 @80

@81

 @81

@82

 @82

@83

 @83

Definicje typów

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łędu do przepływu sterowania zdefiniowanego przez użytkownika.

Oznacza to, że jeśli błąd wystąpi w innym module obsługi, którego podpis jest nieważny (np. w odpowiedzi na przychodzącą wiadomość Weave lub nawet przysłaną przez protokół), ten moduł zostanie wywołany, aby użytkownik mógł określić, czy transfer może zostać przywrócony i kontynuowany, czy też powinien wywołać funkcję Shutdown(). Pamiętaj, że błąd może wystąpić przed zainicjowaniem zbyt wielu przydzielonych obiektów BDXTransfer (np. W takim przypadku wspomniany błąd będzie rejestrowany przez Weave, a protokół zajmie się oczyszczaniem w przypadku przydzielonego przez niego stanu.

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.

Wywołujący zapewnia przestrzeń do buforowania (bufor i długość bufora, przekazane przez odwołanie). Wywoływana (aplikacja użytkownika) POWINNA używać udostępnionego bufora, ale ze względu na zgodność wsteczną może zwracać własny bufor. Wywołujący nie może podać więcej niż aLength bajtów. Po zwróceniu aLength zawiera faktyczną liczbę bajtów odczytanych do bufora.

Szczegóły
Parametry
[in] aXfer
BDXTransfer powiązane z tym trwającym transferem
[in,out] aLength
Długość danych odczytywanych i przechowywanych w tym bloku. Wywołanie tej funkcji zawiera długość bufora przekazanego w metodzie aDataBlock. Zwrócona zmienna zawiera długość odczytywanych danych.
[in,out] aDataBlock
Wskaźnik do bloku danych. W przypadku danych wejściowych zawiera bufor udostępniany przez platformę. Wywołujący może go wykorzystać do wypełnienia bufora lub zapewnić własną przestrzeń do buforowania (na potrzeby aplikacji ze zgodnością wsteczną). Aplikacje korzystające z dostarczonego bufora nie mogą w żaden sposób wyrównywać.
[out] aLastBlock
Wartość to „prawda”, jeśli blokada powinna być wysłana jako BlockEOF, a transfer został zakończony. W przeciwnym razie ma wartość 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 długości.

Prawdopodobnie będzie to wymagać zapisania go w pliku i zamknięcia, jeśli parametr isLastBlock ma wartość prawda.

Szczegóły
Parametry
[in] aXfer
BDXTransfer powiązane z tym trwającym transferem
[in] aLength
Długość danych odczytywanych i przechowywanych w określonym bloku
[in] aDataBlock
Rzeczywisty blok danych
[in] aLastBlock
Wartość true, jeśli blokada została odebrana jako BlockEOF, a transfer został ukończony. W przeciwnym razie ma wartość false (fałsz). Jeśli ma wartość prawda, programista powinien prawdopodobnie sfinalizować wszystkie uchwyty plików, pamiętając, że XferDoneHandler będzie później wywoływane

ReceiveAcceptHandler

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

Wywołanie zwrotne jest wywoływane po zaakceptowaniu wysłanej wcześniej przez serwer wartości ReceiveInit przez miejsce docelowe.

Skorzystaj z tej możliwości, aby otworzyć pliki lub przydzielić zasoby na potrzeby transferu, jeśli nie zostało to zrobione podczas inicjowania transferu.

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

ReceiveInitHandler

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

Wywołanie zwrotne jest wywoływane po otrzymaniu komunikatu ReceiveInit.

Jego zadaniem jest określenie, czy chcesz akceptować odbieranie, a jeśli tak, ustaw aXfer->mIsAccepted=true, tak aby protokół wysyłał wiadomość do inicjatora. Obiekt BDXTransfer zostanie zainicjowany do ustawień domyślnych. W tym miejscu możesz dołączyć dowolny stan specyficzny dla aplikacji (otwarte uchwyty plików itp.) do aXfer->mAppState. W tym momencie musisz też dołączyć potrzebne moduły obsługi, na przykład blok, do obiektu BDXTransfer. W przypadku zwrócenia kodu błędu innego niż kStatus_TRUE przyjmuje się, że transfer został odrzucony, 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 przetwarzanego komunikatu ReceiveInit

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 informujący o odrzuceniu wiadomości StatusReport, którą przetwarzamy

SendAcceptHandler

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

Wywołanie zwrotne jest wywoływane, gdy wcześniej wysłana wartość SendInit została zaakceptowana przez miejsce docelowe.

Skorzystaj z tej możliwości, aby otworzyć pliki lub przydzielić zasoby na potrzeby transferu, jeśli nie zostało to zrobione podczas inicjowania transferu.

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

SendInitHandler

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

Wywołanie zwrotne jest wywoływane po otrzymaniu wiadomości SendInit.

Jego zadaniem jest określenie, czy chcesz zaakceptować parametr SendInit. Jeśli tak, ustaw wartość aXfer->mIsAccepted=true, tak aby protokół wysłał do inicjatora wiadomość o zaakceptowaniu. Obiekt BDXTransfer zostanie zainicjowany do ustawień domyślnych. W tym miejscu możesz dołączyć dowolny stan specyficzny dla aplikacji (otwarte uchwyty plików itp.) do aXfer->mAppState. W tym momencie musisz też dołączyć potrzebne moduły obsługi, na przykład blok, do obiektu BDXTransfer. W przypadku zwrócenia kodu błędu innego niż WEAVE_NO_ERROR przyjmuje się, że transfer został odrzucony, a protokół obsługuje wysyłanie z kodem komunikatu o odrzuceniu.

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

XferDoneHandler

void(* XferDoneHandler)(BDXTransfer *aXfer)

Obsługa przypadków, w których 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ługa komunikatów TransferError otrzymanych lub wysłanych przez BDX.

Uwaga: zakłada się, że transfer BDX można przywrócić (prawdopodobnie tymczasowo, na przykład z Buforów pakietów), więc opcja wywołania funkcji Shutdown() jest pozostawiana programistom aplikacji i zdefiniowanym przez niego wywołaniach zwrotnych. DO ZROBIENIA: sprawdź to i uzgodnij z tekstem w dokumencie BDX, który brzmi: „[A TransferError] Może zostać wysłany w dowolnym momencie przez dowolną ze stron, aby przedwcześnie zakończyć przesyłanie danych”.

Szczegóły
Parametry
[in] aXfer
Wskaźnik do BDXTransfer powiązanego z tym transferem
[in] aXferError
Wskaźnik informujący o błędzie komunikatu StatusReport, który przetwarzamy

Funkcje

GetBDXAckFlag

uint16_t GetBDXAckFlag(
  ExchangeContext *anEc
)

GetBDXAckFlag zwraca odpowiednią flagę pola RequestAck w zależności od połączenia kontekstu giełdy (bez potwierdzenia żądania dla TCP) i na podstawie obsługi czasu kompilowania WRMP.

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