нл:: Переплетение:: Профили:: BDX_Девелопмент

Это пространство имен включает в себя все интерфейсы в профиле Weave для массовой передачи данных (BDX), которые активно разрабатываются и не должны использоваться для производственного использования.

Краткое содержание

Перечисления

@80 перечисление
@81 перечисление
@82 перечисление
@83 перечисление

Определения типов

BdxClient определение типа
BdxServer определение типа
ErrorHandler )(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode) определение типа
void(*
Этот обработчик вызывается каждый раз, когда возникает ошибка Weave, которую нельзя напрямую вернуть с помощью кодов ошибок в поток управления, определяемый пользовательским приложением.
GetBlockHandler )(BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock) определение типа
void(*
Get a block of data to be transmitted.
PutBlockHandler )(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock) определение типа
void(*
Обработка блока данных, на который указывает aDataBlock длиной aLength.
ReceiveAcceptHandler )(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg) определение типа
Обратный вызов вызывается, когда ранее отправленный элемент ReceiveInit принимается пунктом назначения.
ReceiveInitHandler )(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg) определение типа
uint16_t(*
Обратный вызов, вызываемый при получении сообщения ReceiveInit .
RejectHandler )(BDXTransfer *aXfer, StatusReport *aReport) определение типа
void(*
Вызывается, если одно из предыдущих сообщений Init было отклонено пунктом назначения.
SendAcceptHandler )(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg) определение типа
Обратный вызов вызывается, когда ранее отправленный SendInit принимается пунктом назначения.
SendInitHandler )(BDXTransfer *aXfer, SendInit *aSendInitMsg) определение типа
uint16_t(*
Обратный вызов, вызываемый при получении сообщения SendInit .
XferDoneHandler )(BDXTransfer *aXfer) определение типа
void(*
Обработка случаев, когда передача завершена.
XferErrorHandler )(BDXTransfer *aXfer, StatusReport *aXferError) определение типа
void(*
Обработка сообщений TransferError , полученных или отправленных BDX.

Функции

GetBDXAckFlag ( ExchangeContext *anEc)
uint16_t
GetBDXAckFlag возвращает соответствующий флаг для поля RequestAck в зависимости от соединения контекста обмена (без подтверждения запроса для TCP) и на основе поддержки времени компиляции для WRMP.

Классы

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

Сообщение BlockAck используется для подтверждения блока данных.

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

Сообщение BlockAckV1 используется для подтверждения блока данных.

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

Сообщение BlockEOF используется для передачи последнего блока данных от отправителя к получателю.

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

Сообщение BlockEOFAck используется для подтверждения последнего блока данных.

nl:: Weave:: Profiles:: BDX_Development:: BlockEOFackV1

Сообщение BlockEOFAckV1 используется для подтверждения последнего блока данных.

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

Сообщение BlockEOFV1 используется для передачи последнего блока данных от отправителя к получателю.

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

Сообщение BlockQuery используется для запроса передачи блока данных от отправителя к получателю.

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

Сообщение BlockQueryV1 используется для запроса передачи блока данных от отправителя к получателю.

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

Сообщение BlockSend используется для передачи блока данных от отправителя к получателю.

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

Сообщение BlockSendV1 используется для передачи блока данных от отправителя к получателю.

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

Сообщение ReceiveAccept используется для принятия предложенного обмена, когда получатель является инициатором.

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

Сообщение ReceiveInit используется для запуска обмена, когда получатель является инициатором.

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

Сообщение ReceiveReject используется для отклонения предложенного обмена, когда отправитель является инициатором.

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

Сообщение SendAccept используется для принятия предложенного обмена, когда отправитель является инициатором.

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

Сообщение SendInit используется для запуска обмена, когда отправитель является инициатором.

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

Сообщение SendReject используется для отклонения предложенного обмена, когда отправитель является инициатором.

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

Сообщение об ошибке используется для сообщения об ошибке и прекращения обмена.

Структуры

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

Эта структура содержит элементы данных, представляющие активную передачу BDX.

Пространства имен

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

Перечисления

@80

 @80

@81

 @81

@82

 @82

@83

 @83

Определения типов

BdxClient

BdxNode BdxClient

Бдкссервер

BdxNode BdxServer

Обработчик ошибок

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

Этот обработчик вызывается каждый раз, когда возникает ошибка Weave, которую нельзя напрямую вернуть с помощью кодов ошибок в поток управления, определяемый пользовательским приложением.

То есть, если ошибка возникает внутри другого обработчика, подпись которого имеет возвращаемый тип void (например, в ответ на входящее сообщение Weave или даже отправленное протоколом), этот обработчик будет вызван, чтобы пользователь мог определить, можно ли восстановить передачу. и продолжить, или им следует вызвать Shutdown(). Обратите внимание, что возможна ошибка до инициализации BDXTransfer (например, уже слишком много выделенных объектов передачи). В таком случае указанная ошибка будет зарегистрирована Weave, и протокол выполнит очистку любого необходимого состояния, которое он выделил.

Подробности
Параметры
[in] aXfer
Указатель на BDXTransfer , связанный с этой передачей
[in] anErrorCode
Код ошибки, который нам нужно обработать

GetBlockHandler

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

Get a block of data to be transmitted.

Вызывающий объект предоставляет буферное пространство (буфер и длина буфера, передаваемые по ссылке). Вызываемому (пользовательскому приложению) СЛЕДУЕТ использовать предоставленный буфер, но по соображениям обратной совместимости он может возвращать свой собственный буфер. Вызываемый объект не должен предоставлять значение, превышающее aLength байт. По возвращении aLength содержит фактическое количество байтов, прочитанных в буфер.

Подробности
Параметры
[in] aXfer
BDXTransfer , связанный с этой текущей передачей
[in,out] aLength
Длина данных, считанных и сохраненных в этом блоке. При вызове функция содержит длину буфера, переданного в aDataBlock . При возврате переменная содержит длину фактически прочитанных данных.
[in,out] aDataBlock
Указатель на блок данных. На входе он содержит буфер, предоставленный платформой; вызываемый абонент может использовать это пространство для заполнения буфера или предоставить собственное буферное пространство (для приложений обратной совместимости). Приложения, использующие предоставленный буфер, не должны предполагать никакого выравнивания.
[out] aLastBlock
True, если блок должен быть отправлен как BlockEOF и передача завершена, в противном случае — false.

PutBlockHandler

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

Обработка блока данных, на который указывает aDataBlock длиной aLength.

Вероятно, это потребует записи его в файл и его закрытия, если isLastBlock имеет значение true.

Подробности
Параметры
[in] aXfer
BDXTransfer , связанный с этой текущей передачей
[in] aLength
Длина данных, считанных и сохраненных в указанном блоке
[in] aDataBlock
Фактический блок данных
[in] aLastBlock
True, если блок был получен как BlockEOF и передача завершена, в противном случае — false. Если это правда, программисту, вероятно, следует завершить обработку любых дескрипторов файлов, учитывая, что после этого будет вызван XferDoneHandler.

ПолучениеAcceptHandler

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

Обратный вызов вызывается, когда ранее отправленный элемент ReceiveInit принимается пунктом назначения.

Вы можете использовать эту возможность для открытия файлов или выделения ресурсов для передачи, если вы не сделали этого при ее запуске.

Подробности
Параметры
[in] aXfer
Указатель на BDXTransfer , связанный с этой передачей
[in] aReceiveAcceptMsg
Указатель на сообщение ReceiveAccept , которое мы обрабатываем

Получениеинитхандлер

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

Обратный вызов, вызываемый при получении сообщения ReceiveInit .

Его задача — определить, хотите ли вы принять получение, и, если да, установить aXfer->mIsAccepted=true, чтобы протокол отправлял сообщение о принятии инициатору. Объект BDXTransfer инициируется с настройками по умолчанию. Это хорошее место для присоединения любого состояния приложения (дескрипторы открытых файлов и т. д.) к aXfer->mAppState. На этом этапе вам также следует прикрепить необходимые обработчики, например, для обработки блоков, к объекту BDXTransfer . Если возвращается код ошибки, отличный от kStatus_Success, предполагается, что передача отклонена, и протокол обрабатывает отправку сообщения отклонения с кодом.

Подробности
Параметры
[in] aXfer
Указатель на BDXTransfer , связанный с этой передачей
[in] aReceiveInitMsg
Указатель на сообщение ReceiveInit , которое мы обрабатываем

Отклонить обработчик

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

Вызывается, если одно из предыдущих сообщений Init было отклонено пунктом назначения.

Подробности
Параметры
[in] aXfer
Указатель на BDXTransfer , связанный с этой передачей
[in] aReport
Указатель на отклонение сообщения StatusReport, которое мы обрабатываем

ОтправитьAcceptHandler

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

Обратный вызов вызывается, когда ранее отправленный SendInit принимается пунктом назначения.

Вы можете использовать эту возможность для открытия файлов или выделения ресурсов для передачи, если вы не сделали этого при ее запуске.

Подробности
Параметры
[in] aXfer
Указатель на BDXTransfer , связанный с этой передачей
[in] aSendAcceptMsg
Указатель на сообщение SendAccept , которое мы обрабатываем

Сенденитхандлер

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

Обратный вызов, вызываемый при получении сообщения SendInit .

Его задача — определить, хотите ли вы принять SendInit, и, если да, установить aXfer->mIsAccepted=true, чтобы протокол отправил инициатору сообщение о принятии. Объект BDXTransfer инициируется с настройками по умолчанию. Это хорошее место для присоединения любого состояния приложения (дескрипторы открытых файлов и т. д.) к aXfer->mAppState. На этом этапе вам также следует прикрепить необходимые обработчики, например, для обработки блоков, к объекту BDXTransfer . Если возвращается код ошибки, отличный от WEAVE_NO_ERROR, предполагается, что передача отклонена, и протокол обрабатывает отправку сообщения отклонения с кодом.

Подробности
Параметры
[in] aXfer
Указатель на BDXTransfer , связанный с этой передачей
[in] aSendInitMsg
Указатель на сообщение SendInit , которое мы обрабатываем

XferDoneHandler

void(* XferDoneHandler)(BDXTransfer *aXfer)

Обработка случаев, когда передача завершена.

Подробности
Параметры
[in] aXfer
Указатель на BDXTransfer , связанный с этой передачей

XferErrorHandler

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

Обработка сообщений TransferError , полученных или отправленных BDX.

Примечание. Предполагается, что передача BDX потенциально может быть восстановлена ​​(возможно, временно, например, из PacketBuffers в данный момент), поэтому возможность вызова Shutdown() остается на усмотрение программиста приложения и обратных вызовов, которые они определяют. TODO: проверьте это и согласуйте с формулировками в документе BDX, в которых говорится: «[Ошибка передачи] может быть отправлена ​​в любое время любой стороной для преждевременного завершения массовой передачи данных».

Подробности
Параметры
[in] aXfer
Указатель на BDXTransfer , связанный с этой передачей
[in] aXferError
Указатель на ошибку сообщения StatusReport, которую мы обрабатываем

Функции

GetBDXAckFlag

uint16_t GetBDXAckFlag(
  ExchangeContext *anEc
)

GetBDXAckFlag возвращает соответствующий флаг для поля RequestAck в зависимости от соединения контекста обмена (без подтверждения запроса для TCP) и на основе поддержки времени компиляции для WRMP.

Подробности
Параметры
[in] anEc
Контекст обмена, на основе которого мы должны получить флаг
Возврат
0 или kSendFlag_RequestAck