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

Podsumowanie

Funkcje

HandleConnectionClosed(ExchangeContext *anEc, WeaveConnection *aCon, WEAVE_ERROR aConErr)
void
Moduł obsługi zamykania samego połączenia.
HandleKeyError(ExchangeContext *anEc, WEAVE_ERROR aKeyErr)
void
Moduł obsługi, gdy klucz używany do szyfrowania i uwierzytelniania wiadomości Weave nie jest już używany.
HandleResponse(ExchangeContext *anEc, const IPPacketInfo *aPktInfo, const WeaveMessageInfo *aWeaveMsgInfo, uint32_t aProfileId, uint8_t aMessageType, PacketBuffer *aPacketBuffer)
void
Główny moduł obsługi wiadomości przychodzących z giełdy BDX.
HandleResponseNotAccepted(BDXTransfer & aXfer, uint32_t aProfileId, uint8_t aMessageType, PacketBuffer *aPacketBuffer)
HandleResponseReceive(BDXTransfer & aXfer, uint32_t aProfileId, uint8_t aMessageType, PacketBuffer *aPacketBuffer)
HandleResponseTimeout(ExchangeContext *anEc)
void
Moduł obsługi używany, gdy przekroczono limit czasu oczekiwania na odpowiedź.
HandleResponseTransmit(BDXTransfer & aXfer, uint32_t aProfileId, uint8_t aMessageType, PacketBuffer *aPacketBuffer)
HandleSendError(ExchangeContext *anEc, WEAVE_ERROR aSendErr, void *aMsgCtxt)
void
Moduł obsługi używany, gdy wysłana przez nas wiadomość WRMP nie została potwierdzona.
InitBdxReceive(BDXTransfer & aXfer, bool aICanDrive, bool aUCanDrive, bool aAsyncOk, ReferencedTLVData *aMetaData)
InitBdxSend(BDXTransfer & aXfer, bool aICanDrive, bool aUCanDrive, bool aAsyncOk, ReferencedTLVData *aMetaData)
InitBdxSend(BDXTransfer & aXfer, bool aICanDrive, bool aUCanDrive, bool aAsyncOk, SendInit::MetaDataTLVWriteCallback aMetaDataWriteCallback, void *aMetaDataAppState)
SendBadBlockCounterStatusReport(BDXTransfer & aXfer)
SendBlockAckV1(BDXTransfer & aXfer)
Ta funkcja wysyła komunikat BlockAckV1 dla danego obiektu BDXTransfer.
SendBlockEOFAckV1(BDXTransfer & aXfer)
Ta funkcja wysyła komunikat BlockEOFAckV1 dla danego obiektu BDXTransfer.
SendBlockQuery(BDXTransfer & aXfer)
SendBlockQueryV1(BDXTransfer & aXfer)
Ta funkcja wysyła komunikat BlockQueryV1 dla danego obiektu BDXTransfer.
SendNextBlock(BDXTransfer & aXfer)
SendNextBlockV1(BDXTransfer & aXfer)
Ta funkcja wysyła następny pobrany kod BlockSendV1 przez wywołanie metody GetBlockHandler w BDXTransfer.
SendStatusReport(ExchangeContext *anEc, uint32_t aProfileId, uint16_t aStatusCode)
void
Wysyła raport o stanie wraz z identyfikatorem profilu, kodem stanu i kontekstem z giełdy.
SendTransferError(ExchangeContext *anEc, uint32_t aProfileId, uint16_t aStatusCode)
void

Funkcje

HandleConnectionClosed

void HandleConnectionClosed(
  ExchangeContext *anEc,
  WeaveConnection *aCon,
  WEAVE_ERROR aConErr
)

Moduł obsługi zamykania samego połączenia.

Wywołuje moduł obsługi błędów powiązanego transferu i zatrzymuje przesyłanie.

Szczegóły
Parametry
[in] anEc
Kontekst Exchange, który wykrył zamknięte połączenie. Możemy znaleźć powiązane BDXTransfer z tego
[in] aCon
Połączenie Weave, nieużywane w rzeczywistej funkcji
[in] aConErr
Błąd związany z zamykaniem połączenia

HandleKeyError

void HandleKeyError(
  ExchangeContext *anEc,
  WEAVE_ERROR aKeyErr
)

Moduł obsługi, gdy klucz używany do szyfrowania i uwierzytelniania wiadomości Weave nie jest już używany.

Szczegóły
Parametry
[in] anEc
Kontekst Exchange, w którym wykryto błąd klucza. Możemy znaleźć powiązany plik BDXTransfer z tego
[in] aKeyErr
Błąd powiązany z kluczem, który nie jest już dostępny

HandleResponse

void HandleResponse(
  ExchangeContext *anEc,
  const IPPacketInfo *aPktInfo,
  const WeaveMessageInfo *aWeaveMsgInfo,
  uint32_t aProfileId,
  uint8_t aMessageType,
  PacketBuffer *aPacketBuffer
)

Główny moduł obsługi wiadomości przychodzących z giełdy BDX.

Działa jako router do wyodrębniania odpowiednich informacji z nagłówka BDX i danych, wysyłając odpowiedni moduł obsługi do działania na tym obiekcie.

Szczegóły
Parametry
[in] anEc
Kontekst giełdy – na wypadek, gdyby był potrzebny
[in] aPktInfo
Nieużywana, ale musi pasować do prototypu funkcji
[in] aWeaveMsgInfo
Informacje o komunikacie splotowym wiadomości
[in] aProfileId
Identyfikator profilu, w którym zdefiniowano wiadomość
[in] aMessageType
typ wiadomości w danym profilu,
[in] aPacketBuffer
Sama wiadomość.

HandleResponseNotAccepted

WEAVE_ERROR HandleResponseNotAccepted(
  BDXTransfer & aXfer,
  uint32_t aProfileId,
  uint8_t aMessageType,
  PacketBuffer *aPacketBuffer
)

HandleResponseReceive

WEAVE_ERROR HandleResponseReceive(
  BDXTransfer & aXfer,
  uint32_t aProfileId,
  uint8_t aMessageType,
  PacketBuffer *aPacketBuffer
)

HandleResponseTimeout

void HandleResponseTimeout(
  ExchangeContext *anEc
)

Moduł obsługi używany, gdy przekroczono limit czasu oczekiwania na odpowiedź.

Zatrzymuje przesyłanie, którego limit czasu upłynął, i wywołuje moduł obsługi błędów transferu.

Szczegóły
Parametry
[in] anEc
Kontekst wymiany, w którym możemy znaleźć BDXTransfer z

HandleResponseTransmit

WEAVE_ERROR HandleResponseTransmit(
  BDXTransfer & aXfer,
  uint32_t aProfileId,
  uint8_t aMessageType,
  PacketBuffer *aPacketBuffer
)

HandleSendError

void HandleSendError(
  ExchangeContext *anEc,
  WEAVE_ERROR aSendErr,
  void *aMsgCtxt
)

Moduł obsługi używany, gdy wysłana przez nas wiadomość WRMP nie została potwierdzona.

Szczegóły
Parametry
[in] anEc
Kontekst Exchange zawierający niepotwierdzoną wiadomość. Możemy znaleźć powiązane BDXTransfer z tego
[in] aSendErr
Błąd związany z nieudanym wysłaniem wiadomości
[in] aMsgCtxt
Dowolny kontekst wiadomości powiązany z niepotwierdzoną wiadomością.

InitBdxReceive

WEAVE_ERROR InitBdxReceive(
  BDXTransfer & aXfer,
  bool aICanDrive,
  bool aUCanDrive,
  bool aAsyncOk,
  ReferencedTLVData *aMetaData
)

InitBdxSend

WEAVE_ERROR InitBdxSend(
  BDXTransfer & aXfer,
  bool aICanDrive,
  bool aUCanDrive,
  bool aAsyncOk,
  ReferencedTLVData *aMetaData
)

InitBdxSend

WEAVE_ERROR InitBdxSend(
  BDXTransfer & aXfer,
  bool aICanDrive,
  bool aUCanDrive,
  bool aAsyncOk,
  SendInit::MetaDataTLVWriteCallback aMetaDataWriteCallback,
  void *aMetaDataAppState
)

SendBadBlockCounterStatusReport

WEAVE_ERROR SendBadBlockCounterStatusReport(
  BDXTransfer & aXfer
)

SendBlockAckV1

WEAVE_ERROR SendBlockAckV1(
  BDXTransfer & aXfer
)

Ta funkcja wysyła komunikat BlockAckV1 dla danego obiektu BDXTransfer.

Potwierdzony numer bloku jest równy aXfer.mBlockCounter – 1, ponieważ tę funkcję można wywołać dopiero po przejściu stanu transferu do następnego licznika.

Szczegóły
Parametry
[in] aXfer
BDXTransfer, w przypadku którego wysyłamy żądanie BlockAck.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli wiadomość została wysłana pomyślnie,
WEAVE_ERROR_NO_MEMORY
Jeśli nie ma dostępnych buforów pakietów.

SendBlockEOFAckV1

WEAVE_ERROR SendBlockEOFAckV1(
  BDXTransfer & aXfer
)

Ta funkcja wysyła komunikat BlockEOFAckV1 dla danego obiektu BDXTransfer.

Potwierdzony numer bloku jest równy aXfer.mBlockCounter.

Szczegóły
Parametry
[in] aXfer
W przypadku BDXTransfer wysyłamy element BlockEOFAck.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli wiadomość została wysłana pomyślnie,
WEAVE_ERROR_NO_MEMORY
Jeśli nie ma dostępnych buforów pakietów.

SendBlockQuery

WEAVE_ERROR SendBlockQuery(
  BDXTransfer & aXfer
)

SendBlockQueryV1

WEAVE_ERROR SendBlockQueryV1(
  BDXTransfer & aXfer
)

Ta funkcja wysyła komunikat BlockQueryV1 dla danego obiektu BDXTransfer.

Żądany numer bloku jest równy aXfer.mBlockCounter.

Szczegóły
Parametry
[in] aXfer
W przypadku BDXTransfer wyślemy żądanie BlockQuery.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli wiadomość została wysłana pomyślnie,
WEAVE_ERROR_NO_MEMORY
Jeśli nie ma dostępnych buforów pakietów.

SendNextBlock

WEAVE_ERROR SendNextBlock(
  BDXTransfer & aXfer
)

SendNextBlockV1

WEAVE_ERROR SendNextBlockV1(
  BDXTransfer & aXfer
)

Ta funkcja wysyła następny pobrany kod BlockSendV1 przez wywołanie metody GetBlockHandler w BDXTransfer.

Szczegóły
Parametry
[in] aXfer
Element BDXTransfer, którego metoda GetBlockHandler jest wywoływana w celu pobrania następnego bloku przed wysłaniem go przy użyciu powiązanego elementu ExchangeContext
Zwracane wartości
WEAVE_ERROR_INCORRECT_STATE
Jeśli GetBlockHandler ma wartość NULL

SendStatusReport

void SendStatusReport(
  ExchangeContext *anEc,
  uint32_t aProfileId,
  uint16_t aStatusCode
)

Wysyła raport o stanie wraz z identyfikatorem profilu, kodem stanu i kontekstem z giełdy.

Szczegóły
Parametry
[in] anEc
Kontekst giełdy, w której mamy wysyłać wiadomość z raportem o stanie.
[in] aProfileId
Identyfikator profilu
[in] aStatusCode
Kod powiązany z błędem przenoszenia

SendTransferError

void SendTransferError(
  ExchangeContext *anEc,
  uint32_t aProfileId,
  uint16_t aStatusCode
)