нл:: Переплетение:: Профили:: 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) | определение типаWEAVE_ERROR (* Обратный вызов вызывается, когда ранее отправленный элемент ReceiveInit принимается пунктом назначения. |
ReceiveInitHandler )(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg) | определение типаuint16_t(* Обратный вызов, вызываемый при получении сообщения ReceiveInit . |
RejectHandler )(BDXTransfer *aXfer, StatusReport *aReport) | определение типаvoid(* Вызывается, если одно из предыдущих сообщений Init было отклонено пунктом назначения. |
SendAcceptHandler )(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg) | определение типаWEAVE_ERROR (* Обратный вызов вызывается, когда ранее отправленный 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, и протокол выполнит очистку любого необходимого состояния, которое он выделил.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
GetBlockHandler
void(* GetBlockHandler)(BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)
Get a block of data to be transmitted.
Вызывающий объект предоставляет буферное пространство (буфер и длина буфера, передаваемые по ссылке). Вызываемому (пользовательскому приложению) СЛЕДУЕТ использовать предоставленный буфер, но по соображениям обратной совместимости он может возвращать свой собственный буфер. Вызываемый объект не должен предоставлять значение, превышающее aLength
байт. По возвращении aLength
содержит фактическое количество байтов, прочитанных в буфер.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
|
PutBlockHandler
void(* PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
Обработка блока данных, на который указывает aDataBlock длиной aLength.
Вероятно, это потребует записи его в файл и его закрытия, если isLastBlock имеет значение true.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
|
ПолучениеAcceptHandler
WEAVE_ERROR(* ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg)
Обратный вызов вызывается, когда ранее отправленный элемент ReceiveInit принимается пунктом назначения.
Вы можете использовать эту возможность для открытия файлов или выделения ресурсов для передачи, если вы не сделали этого при ее запуске.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
Получениеинитхандлер
uint16_t(* ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg)
Обратный вызов, вызываемый при получении сообщения ReceiveInit .
Его задача — определить, хотите ли вы принять получение, и, если да, установить aXfer->mIsAccepted=true, чтобы протокол отправлял сообщение о принятии инициатору. Объект BDXTransfer инициируется с настройками по умолчанию. Это хорошее место для присоединения любого состояния приложения (дескрипторы открытых файлов и т. д.) к aXfer->mAppState. На этом этапе вам также следует прикрепить необходимые обработчики, например, для обработки блоков, к объекту BDXTransfer . Если возвращается код ошибки, отличный от kStatus_Success, предполагается, что передача отклонена, и протокол обрабатывает отправку сообщения отклонения с кодом.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
Отклонить обработчик
void(* RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport)
Вызывается, если одно из предыдущих сообщений Init было отклонено пунктом назначения.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
ОтправитьAcceptHandler
WEAVE_ERROR(* SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg)
Обратный вызов вызывается, когда ранее отправленный SendInit принимается пунктом назначения.
Вы можете использовать эту возможность для открытия файлов или выделения ресурсов для передачи, если вы не сделали этого при ее запуске.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
Сенденитхандлер
uint16_t(* SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg)
Обратный вызов, вызываемый при получении сообщения SendInit .
Его задача — определить, хотите ли вы принять SendInit, и, если да, установить aXfer->mIsAccepted=true, чтобы протокол отправил инициатору сообщение о принятии. Объект BDXTransfer инициируется с настройками по умолчанию. Это хорошее место для присоединения любого состояния приложения (дескрипторы открытых файлов и т. д.) к aXfer->mAppState. На этом этапе вам также следует прикрепить необходимые обработчики, например, для обработки блоков, к объекту BDXTransfer . Если возвращается код ошибки, отличный от WEAVE_NO_ERROR, предполагается, что передача отклонена, и протокол обрабатывает отправку сообщения отклонения с кодом.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
XferDoneHandler
void(* XferDoneHandler)(BDXTransfer *aXfer)
Обработка случаев, когда передача завершена.
Подробности | |||
---|---|---|---|
Параметры |
|
XferErrorHandler
void(* XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError)
Обработка сообщений TransferError , полученных или отправленных BDX.
Примечание. Предполагается, что передача BDX потенциально может быть восстановлена (возможно, временно, например, из PacketBuffers в данный момент), поэтому возможность вызова Shutdown() остается на усмотрение программиста приложения и обратных вызовов, которые они определяют. TODO: проверьте это и согласуйте с формулировками в документе BDX, в которых говорится: «[Ошибка передачи] может быть отправлена в любое время любой стороной для преждевременного завершения массовой передачи данных».
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
Функции
GetBDXAckFlag
uint16_t GetBDXAckFlag( ExchangeContext *anEc )
GetBDXAckFlag возвращает соответствующий флаг для поля RequestAck в зависимости от соединения контекста обмена (без подтверждения запроса для TCP) и на основе поддержки времени компиляции для WRMP.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | 0 или kSendFlag_RequestAck |