nl:: Weave:: 프로필: BDX_Development
이 네임스페이스는 개발 중인 대량 데이터 전송 (BDX) 프로필에 Weave 내의 모든 인터페이스를 포함하며 프로덕션에 사용해서는 안 됩니다.
요약
열거 |
|
---|---|
@80
|
enum |
@81
|
enum |
@82
|
enum |
@83
|
enum |
Typedef |
|
---|---|
BdxClient
|
typedef |
BdxServer
|
typedef |
ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode)
|
typedefvoid(*
이 핸들러는 오류 코드를 통해 사용자 애플리케이션 정의 제어 흐름에 직접 반환할 수 없는 Weave 오류가 발생할 때마다 호출됩니다. |
GetBlockHandler)(BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)
|
typedefvoid(*
Get a block of data to be transmitted. |
PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
|
typedefvoid(*
길이 Alength의 aDataBlock이 가리키는 데이터 블록을 처리합니다. |
ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg)
|
typedef 이전에 전송된 ReceiveInit가 대상에서 수락되면 콜백이 호출됩니다. |
ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg)
|
typedefuint16_t(*
ReceiveInit 메시지를 수신할 때 호출되는 콜백입니다. |
RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport)
|
typedefvoid(*
이전 Init 메시지 중 하나가 대상에서 거부되면 호출됩니다. |
SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg)
|
typedef 이전에 보낸 SendInit가 대상에서 수락되면 콜백이 호출됩니다. |
SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg)
|
typedefuint16_t(*
SendInit 메시지를 수신할 때 호출되는 콜백입니다. |
XferDoneHandler)(BDXTransfer *aXfer)
|
typedefvoid(*
트랜스퍼가 완료된 케이스를 처리합니다. |
XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError)
|
typedefvoid(*
BDX에서 보내거나 받은 TransferError 메시지를 처리합니다. |
Functions |
|
---|---|
GetBDXAckFlag(ExchangeContext *anEc)
|
uint16_t
GetBDXAckFlag는 거래소 컨텍스트 (TCP의 요청 ack 없음)에 따라 WRMP의 컴파일 시간 지원을 기반으로 RequestAck 필드에 적절한 플래그를 반환합니다.
|
구조체 |
|
---|---|
nl:: |
|
nl:: |
이 구조에는 활성 BDX 전송을 나타내는 데이터 멤버가 포함됩니다. |
네임스페이스 |
|
---|---|
nl:: |
열거
@80
@80
@81
@81
@82
@82
@83
@83
Typedef
Bdx 클라이언트
BdxNode BdxClient
Bdx서버
BdxNode BdxServer
ErrorHandler
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.
호출자는 버퍼링 공간 (버퍼의 길이 및 버퍼 길이, 참조를 통해 전달됨)을 제공합니다. 피호출자(사용자 애플리케이션) 제공된 버퍼를 사용해야 하지만(SHOULD) 이전 버전과의 호환성을 위해 자체 버퍼를 반환할 수 있습니다. 피호출자는 aLength
이하의 바이트를 제공해서는 안 됩니다. 반환 시 aLength
에는 버퍼로 읽은 실제 바이트 수가 포함됩니다.
세부정보 | |||||||||
---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
BlockBlockHandler
void(* PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
길이 Alength의 aDataBlock이 가리키는 데이터 블록을 처리합니다.
isLastBlock이 true인 경우 파일에 쓰기 작업을 완료하고 파일을 닫을 수 있습니다.
세부정보 | |||||||||
---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
ReceiveAcceptHandler
WEAVE_ERROR(* ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg)
이전에 전송된 ReceiveInit가 대상에서 수락되면 콜백이 호출됩니다.
이 작업을 시작할 때 파일을 열지 않거나 전송을 위한 리소스를 할당하는 데 사용할 수 있습니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
ReceiveInitHandler
uint16_t(* ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg)
ReceiveInit 메시지를 수신할 때 호출되는 콜백입니다.
수신된 요청을 수락할지 결정하는 경우, 수신인 경우 aXfer->mIsAccepted=true를 설정하여 프로토콜이 시작자에게 수락 메시지를 전송하도록 합니다. BDXTransfer 객체는 기본 설정으로 시작됩니다. 여기에서 애플리케이션별 상태 (열린 파일 핸들 등)를 aXfer->mAppState에 연결할 수 있습니다. 이 시점에서 블록 처리에 필요한 핸들러도 BDXTransfer 객체에 연결해야 합니다. kStatus_Success 이외의 오류 코드가 반환되면 이전이 거부된 것으로 간주되며 프로토콜은 코드와 함께 거부 메시지를 전송합니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
거부 핸들러
void(* RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport)
이전 Init 메시지 중 하나가 대상에서 거부되면 호출됩니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
SendAcceptHandler
WEAVE_ERROR(* SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg)
이전에 보낸 SendInit가 대상에서 수락되면 콜백이 호출됩니다.
이 작업을 시작할 때 파일을 열지 않거나 전송을 위한 리소스를 할당하는 데 사용할 수 있습니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
SendInitHandler
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)
BDX에서 보내거나 받은 TransferError 메시지를 처리합니다.
참고: BDX 전송은 잠재적으로 복구 가능할 것으로 간주되므로 (예: 일시적으로 PacketBuffers에서 벗어나) Shutdown()를 호출하는 옵션은 애플리케이션 프로그래머가 정의하고 정의한 콜백에 남아 있습니다. TODO: BDX 문서의 내용을 확인하고 &20;[ATransferError] 로 표기합니다. 언제든지 양측에 전송되어 일괄 데이터 전송을 조기에 종료할 수 있습니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
Functions
GetBDXAckFlag
uint16_t GetBDXAckFlag( ExchangeContext *anEc )
GetBDXAckFlag는 거래소 컨텍스트 (TCP의 요청 ack 없음)에 따라 WRMP의 컴파일 시간 지원을 기반으로 RequestAck 필드에 적절한 플래그를 반환합니다.
세부정보 | |||
---|---|---|---|
매개변수 |
|
||
반환 |
0 또는 kSendFlag_RequestAck
|