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

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

이 구조에는 활성 BDX 전송을 나타내는 데이터 멤버가 포함됩니다.

요약

이러한 객체는 BdxProtocol에서 프로토콜 상태를 유지하는 데 사용됩니다. 연결 및 ExchangeContext 관리를 포함하여 새 전송 생성 및 초기화를 처리하는 BdxServer가 관리합니다.

공개 속성

mAmInitiator
bool
mAmSender
bool
mAppState
void *
mBlockCounter
uint32_t
전송할 때 (이전이 공식적으로 시작된 후)에 대해 BlockQuery 또는 BlockACK를 수신할 다음 블록 번호가 수신될 것으로 예상됩니다.
mBytesSent
uint64_t
mExchangeContext
mFileDesignator
파일/블록 관련 데이터 멤버 TODO: 이 문자열을 삭제하시겠습니까? 아니면 이 문자열의 모양과 사용 방법에 관한 계약을 수립해야 하나요? 구체적으로, PacketBuffer로 지원되나요? 그렇다면 전체 xfer를 위해 붙어있으면 안 됩니다. 잔상을 차지하기 때문입니다.
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.

공개 속성

mAmInitiator

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

mAmSender

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

mAppState

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

mBlockCounter

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

전송할 때 (이전이 공식적으로 시작된 후)에 대해 BlockQuery 또는 BlockACK를 수신할 다음 블록 번호가 수신될 것으로 예상됩니다.

수신 시에는 Google에서 수신할 다음 BlockSend 또는 가장 최근의 BlockQuery (이전이 공식적으로 시작되고 첫 번째 쿼리를 전송한 후)가 전송됩니다.

mBytesSent

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

mExchangeContext

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

mFileDesignator

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

파일/블록 관련 데이터 멤버 TODO: 이 문자열을 삭제하시겠습니까? 아니면 이 문자열의 모양과 사용 방법에 관한 계약을 수립해야 하나요? 구체적으로, PacketBuffer로 지원되나요? 그렇다면 전체 xfer를 위해 붙어있으면 안 됩니다. 잔상을 차지하기 때문입니다.

mFirstQuery

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

mHandlers

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

mIsAccepted

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

mIsCompletedSuccessfully

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

mIsInitiated

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

mIsWideRange

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

mLength

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

mMaxBlockSize

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

mNext

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

mStartOffset

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

mTransferMode

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

mVersion

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

공개 함수

DispatchErrorHandler

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

DispatchReceiveAccept

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

디스패처는 핸들러가 설정되었는지 확인한 다음 설정된 경우 호출합니다.

수신 수락 핸들러가 설정된 경우 이를 호출합니다.

따라서 콜백 호출을 위한 공개 인터페이스로 사용해야 하며 외부 애플리케이션에서 직접 터치해서는 안 됩니다. BDXTransfer의 향후 버전에서는 각 콜백에 대한 개별 포인터를 저장하는 대신 위임 객체를 사용할 수도 있습니다.

세부정보
매개변수
[in] aReceiveAcceptMsg
처리할 ReceiveAccept 메시지
반환
오류 값

DispatchRejectHandler

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

거부 핸들러가 설정된 경우 호출합니다.

설정하지 않으면 기본 동작으로 전송을 종료합니다.

세부정보
매개변수
[in] aReport
처리할 StatusReport 메시지

DispatchSendAccept

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

전송 수락 핸들러가 설정된 경우 이를 호출합니다.

세부정보
매개변수
[in] aSendAcceptMsg
처리할 SendAccept 메시지
반환
오류 값

DispatchXferDoneHandler

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

전송 완료 핸들러가 설정된 경우 이를 호출합니다.

설정하지 않으면 기본 동작으로 전송을 종료합니다.

DispatchXferErrorHandler

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
이 메시지에 대한 응답이 예상되는 경우
반환
전송할 플래그

IsAsync

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

 Returns true if this transfer is asynchronous, false otherwise.

세부정보
반환
전송이 비동기식이면 true입니다.

IsDriver

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.

이 기회를 사용하여 이 전송 및 애플리케이션 로직과 관련된 리소스를 확보하세요.