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

Podsumowanie

Funkcje

HandleConnectionClosed(ExchangeContext *anEc, WeaveConnection *aCon, WEAVE_ERROR aConErr)
void
Moduł obsługi, gdy samo połączenie zostanie zamknięte.
HandleKeyError(ExchangeContext *anEc, WEAVE_ERROR aKeyErr)
void
Moduł obsługi używany, 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 na wymianę 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 określający przekroczenie limitu 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, gdy wysłana przez nas wiadomość WRMP nie została potwierdzony.
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 wiadomość BlockAckV1 dla danego BDXTransfer.
SendBlockEOFAckV1(BDXTransfer & aXfer)
Ta funkcja wysyła komunikat BlockEOFAckV1 dla danego BDXTransfer.
SendBlockQuery(BDXTransfer & aXfer)
SendBlockQueryV1(BDXTransfer & aXfer)
Ta funkcja wysyła komunikat BlockQueryV1 dla danego BDXTransfer.
SendNextBlock(BDXTransfer & aXfer)
SendNextBlockV1(BDXTransfer & aXfer)
Ta funkcja wysyła następne pobrane polecenie BlockSendV1 pobrane przez wywołanie metody GetBlockHandler BDXTransfer.
SendStatusReport(ExchangeContext *anEc, uint32_t aProfileId, uint16_t aStatusCode)
void
Wysyła komunikat z raportem o stanie z powiązanym identyfikatorem profilu, kodem stanu i kontekstem 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, gdy samo połączenie zostanie zamknięte.

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

Szczegóły
Parametry
[in] anEc
Kontekst Exchange wykrył zamknięte połączenie Można znaleźć powiązany BDXTransfer
[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 używany, 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 kluczowy błąd, możemy znaleźć powiązany plik BDXTransfer
[in] aKeyErr
Błąd związany z tym, że klucz nie jest już używany

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 na wymianę BDX.

Zasadniczo działa jak router, który wyodrębnia odpowiednie informacje i dane nagłówka BDX, wysyłając odpowiedni moduł obsługi do reagowania na ten obiekt.

Szczegóły
Parametry
[in] anEc
Kontekst wymiany w razie potrzeby
[in] aPktInfo
Nieużywany, ale musi pasować do prototypu funkcji
[in] aWeaveMsgInfo
Weave – informacje o wiadomości
[in] aProfileId
Identyfikator profilu, w którym definiowana jest wiadomość
[in] aMessageType
typ wiadomości w danym profilu,
[in] aPacketBuffer
Sama spakowana 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 określający przekroczenie limitu czasu oczekiwania na odpowiedź.

Wyłącza przekroczenie limitu czasu przesyłania i wywołania modułu obsługi błędów przesyłania.

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

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, gdy wysłana przez nas wiadomość WRMP nie została potwierdzony.

Szczegóły
Parametry
[in] anEc
Kontekst Exchange zawierający niepotwierdzoną wiadomość Można znaleźć powiązany BDXTransfer
[in] aSendErr
Błąd związany z nieudanym wysłaniem wiadomości
[in] aMsgCtxt
Dowolny kontekst wiadomości, który był 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 wiadomość BlockAckV1 dla danego BDXTransfer.

Numer potwierdzonego bloku jest równa aXfer.mBlockCounter – 1, ponieważ ta funkcja może być wywoływana dopiero po przejściu stanu transferu do następnego licznika.

Szczegóły
Parametry
[in] aXfer
BDXTransfer, w związku z którym wysyłamy funkcję BlockAck.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli udało się wysłać wiadomość.
WEAVE_ERROR_NO_MEMORY
Jeśli nie ma dostępnych pakietów PacketBuffer.

SendBlockEOFAckV1

WEAVE_ERROR SendBlockEOFAckV1(
  BDXTransfer & aXfer
)

Ta funkcja wysyła komunikat BlockEOFAckV1 dla danego BDXTransfer.

Numer potwierdzonego bloku jest równy aXfer.mBlockCounter.

Szczegóły
Parametry
[in] aXfer
BDXTransfer, w przypadku którego wysyłamy BlockEOFAck.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli udało się wysłać wiadomość.
WEAVE_ERROR_NO_MEMORY
Jeśli nie ma dostępnych pakietów PacketBuffer.

SendBlockQuery

WEAVE_ERROR SendBlockQuery(
  BDXTransfer & aXfer
)

SendBlockQueryV1

WEAVE_ERROR SendBlockQueryV1(
  BDXTransfer & aXfer
)

Ta funkcja wysyła komunikat BlockQueryV1 dla danego BDXTransfer.

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

Szczegóły
Parametry
[in] aXfer
BDXTransfer, do którego wysyłamy funkcję BlockQuery.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli udało się wysłać wiadomość.
WEAVE_ERROR_NO_MEMORY
Jeśli nie ma dostępnych pakietów PacketBuffer.

SendNextBlock

WEAVE_ERROR SendNextBlock(
  BDXTransfer & aXfer
)

SendNextBlockV1

WEAVE_ERROR SendNextBlockV1(
  BDXTransfer & aXfer
)

Ta funkcja wysyła następne pobrane polecenie BlockSendV1 pobrane przez wywołanie metody GetBlockHandler BDXTransfer.

Szczegóły
Parametry
[in] aXfer
BDXTransfer, którego metoda GetBlockHandler jest wywoływana w celu pobrania następnego bloku przed wysłaniem przy użyciu powiązanego kontekstu 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 komunikat z raportem o stanie z powiązanym identyfikatorem profilu, kodem stanu i kontekstem giełdy.

Szczegóły
Parametry
[in] anEc
kontekst giełdy, w którym powinna zostać wysłana wiadomość z raportem o stanie.
[in] aProfileId
Identyfikator profilu
[in] aStatusCode
Kod powiązany z błędem transferu

SendTransferError

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