нл:: Переплетение:: Профили:: BDX_Development:: BDXПередача

#include <src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.h>

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

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

Эти объекты используются BdxProtocol для поддержания состояния протокола. Они управляются BdxServer, который занимается созданием и инициализацией новых передач, включая управление соединениями и ExchangeContexts.

Публичные атрибуты

mAmInitiator
bool
mAmSender
bool
mAppState
void *
mBlockCounter
uint32_t
Следующий номер блока, для которого мы ожидаем получить BlockQuery или BlockACK при отправке (как только передача официально начнется).
mBytesSent
uint64_t
mExchangeContext
mFileDesignator
Члены данных, связанные с файлом/блоком TODO: удалить это? или нам следует просто договориться о том, как эта строка может выглядеть и как она будет использоваться? В частности, поддерживается ли он PacketBuffer? Если да, то, вероятно, не следует сохранять его на протяжении всего xfer, поскольку он занимает pbuf.
mFirstQuery
bool
mHandlers
mIsAccepted
bool
mIsCompletedSuccessfully
bool
mIsInitiated
bool
mIsWideRange
bool
mLength
uint64_t
mMaxBlockSize
uint16_t
mNext )(BDXTransfer &)
mStartOffset
uint64_t
mTransferMode
uint8_t
mVersion
uint8_t

Общественные функции

DispatchErrorHandler ( WEAVE_ERROR anErrorCode)
void
Если установлен обработчик ошибок, вызовите его.
DispatchGetBlockHandler (uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)
void
Если установлен обработчик блока get, вызовите его.
DispatchPutBlockHandler (uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
void
Если установлен обработчик блока put, вызовите его.
DispatchReceiveAccept ( ReceiveAccept *aReceiveAcceptMsg)
Диспетчеры просто проверяют, установлен ли обработчик, а затем вызывают его, если да.
DispatchRejectHandler ( StatusReport *aReport)
void
Если установлен обработчик отклонения, вызовите его.
DispatchSendAccept ( SendAccept *aSendAcceptMsg)
Если установлен обработчик приема отправки, вызовите его.
DispatchXferDoneHandler (void)
void
Если установлен обработчик завершения передачи, вызовите его.
DispatchXferErrorHandler ( StatusReport *aXferError)
void
Если установлен обработчик ошибок передачи, вызовите его.
GetDefaultFlags (bool aExpectResponse)
uint16_t
Эта функция возвращает флаги по умолчанию, которые будут отправлены вместе с сообщением.
IsAsync (void)
bool
 Returns true if this transfer is asynchronous, false otherwise.
IsDriver (void)
bool
 Returns true if this entity (node) is the driver for this transfer, false otherwise.
Reset (void)
void
 Sets all pointers to NULL, resets counters, etc.
SetHandlers ( BDXHandlers aHandlers)
void
Эта функция устанавливает обработчики для этого объекта BDXTransfer .
Shutdown (void)
void
 Shuts down the current transfer, including closing any open ExchangeContext.

Публичные атрибуты

мАминициатор

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mAmInitiator

mAmSender

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mAmSender

маппстате

void * nl::Weave::Profiles::BDX_Development::BDXTransfer::mAppState

mBlockCounter

uint32_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mBlockCounter

Следующий номер блока, для которого мы ожидаем получить BlockQuery или BlockACK при отправке (как только передача официально начнется).

При получении это следующий BlockSend, который мы ожидаем получить, или последний отправленный нами BlockQuery (после официального начала передачи и первого отправленного запроса).

мбайтотправлено

uint64_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mBytesSent

мExchangeContext

ExchangeContext * nl::Weave::Profiles::BDX_Development::BDXTransfer::mExchangeContext

мфиледесигнатор

ReferencedString nl::Weave::Profiles::BDX_Development::BDXTransfer::mFileDesignator

Члены данных, связанные с файлом/блоком TODO: удалить это? или нам следует просто договориться о том, как эта строка может выглядеть и как она будет использоваться? В частности, поддерживается ли он PacketBuffer? Если да, то, вероятно, не следует сохранять его на протяжении всего xfer, поскольку он занимает pbuf.

мфирсткуери

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mFirstQuery

mHandlers

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

неправильно принято

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsAccepted

mIsCompletedУспешно

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsCompletedSuccessfully

неправильно инициировано

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsInitiated

mIsWideRange

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsWideRange

мдлина

uint64_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mLength

ммакксблоксизе

uint16_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mMaxBlockSize

mСледующий

WEAVE_ERROR(* nl::Weave::Profiles::BDX_Development::BDXTransfer::mNext)(BDXTransfer &)

мстартоффсет

uint64_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mStartOffset

mTransferMode

uint8_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mTransferMode

мВерсия

uint8_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mVersion

Общественные функции

Диспетчереррорхандлер

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchErrorHandler(
  WEAVE_ERROR anErrorCode
)

Если установлен обработчик ошибок, вызовите его.

Если не установлено, также отключите передачу в качестве поведения по умолчанию.

Подробности
Параметры
[in] anErrorCode
Код ошибки, подлежащий обработке

DispatchGetBlockHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchGetBlockHandler(
  uint64_t *aLength,
  uint8_t **aDataBlock,
  bool *aLastBlock
)

Если установлен обработчик блока get, вызовите его.

Подробности
Параметры
[in] aLength
Длина блока
[in] aDataBlock
Указатель на блок данных
[in] aLastBlock
True, если это последний блок в передаче

DispatchPutBlockHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchPutBlockHandler(
  uint64_t aLength,
  uint8_t *aDataBlock,
  bool aLastBlock
)

Если установлен обработчик блока put, вызовите его.

Подробности
Параметры
[in] aLength
Длина блока
[in] aDataBlock
Указатель на блок данных
[in] aLastBlock
True, если это последний блок в передаче

ОтправкаПолучитьПринять

WEAVE_ERROR nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchReceiveAccept(
  ReceiveAccept *aReceiveAcceptMsg
)

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

Если установлен обработчик приема, вызовите его.

Следовательно, их следует использовать в качестве общедоступного интерфейса для вызова обратных вызовов, к которым внешние приложения никогда не должны обращаться напрямую. Вполне возможно, что в будущей версии BDXTransfer будет использоваться объект делегата, а не хранить отдельные указатели на каждый из обратных вызовов.

Подробности
Параметры
[in] aReceiveAcceptMsg
Сообщение ReceiveAccept для обработки
Возврат
значение ошибки

Обработчик диспетчеризацииRejectHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchRejectHandler(
  StatusReport *aReport
)

Если установлен обработчик отклонения, вызовите его.

Если не установлено, также отключите передачу в качестве поведения по умолчанию.

Подробности
Параметры
[in] aReport
Сообщение StatusReport для обработки

ОтправкаОтправитьПринять

WEAVE_ERROR nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchSendAccept(
  SendAccept *aSendAcceptMsg
)

Если установлен обработчик приема отправки, вызовите его.

Подробности
Параметры
[in] aSendAcceptMsg
Сообщение SendAccept для обработки
Возврат
значение ошибки

DispatchXferDoneHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchXferDoneHandler(
  void
)

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

Если не установлено, также отключите передачу в качестве поведения по умолчанию.

Диспетчфереррорхандлер

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchXferErrorHandler(
  StatusReport *aXferError
)

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

Если не установлено, также отключите передачу в качестве поведения по умолчанию.

Подробности
Параметры
[in] aXferError
Отчет о состоянии ошибки, которую необходимо обработать

GetDefaultFlags

uint16_t nl::Weave::Profiles::BDX_Development::BDXTransfer::GetDefaultFlags(
  bool aExpectResponse
)

Эта функция возвращает флаги по умолчанию, которые будут отправлены вместе с сообщением.

Подробности
Параметры
[in] aExpectResponse
Если мы ожидаем ответа на это сообщение
Возврат
Флаги для отправки

Исасинк

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::IsAsync(
  void
)

 Returns true if this transfer is asynchronous, false otherwise.

Подробности
Возврат
true, если передача является асинхронной.

ИсДрайвер

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::IsDriver(
  void
)

 Returns true if this entity (node) is the driver for this transfer, false otherwise.

Подробности
Возврат
true, если этот объект является драйвером этой передачи

Перезагрузить

void nl::Weave::Profiles::BDX_Development::BDXTransfer::Reset(
  void
)

 Sets all pointers to NULL, resets counters, etc.

Вызывается при выключении.

SetHandlers

void nl::Weave::Profiles::BDX_Development::BDXTransfer::SetHandlers(
  BDXHandlers aHandlers
)

Эта функция устанавливает обработчики для этого объекта BDXTransfer .

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

Подробности
Параметры
[in] aHandlers
Структура обработчиков обратного вызова, которые будут вызываться

Неисправность

void nl::Weave::Profiles::BDX_Development::BDXTransfer::Shutdown(
  void
)

 Shuts down the current transfer, including closing any open ExchangeContext.

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