nl::매트::TLV

Weave TLV 형식으로 인코딩된 데이터를 사용하기 위한 정의입니다.

요약

Weave TLV는 간단한 구조화된 데이터를 위한 일반화된 인코딩 방법입니다. 일반적으로 사용되는 JSON 직렬화 형식과 여러 속성을 공유하지만, 유선으로는 훨씬 더 간결합니다.

열거

@71 enum
@73 enum
@74{
  AnonymousTag = kSpecialTagMarker | 0x00000000FFFFFFFFULL
}
enum
@75 enum
TLVCommonProfiles{
  kProfileIdNotSpecified = 0xFFFFFFFF
}
enum
TLVElementType enum
TLVFieldSize enum
TLVTagControl enum
TLVTagFields enum
TLVType enum
TLV 요소의 유형을 식별하는 열거형입니다.

변수

kWeaveTLVCopyChunkSize = 16
const size_t
판독기 객체의 TLV 요소를 작성기로 복사합니다.
sTagSizes = { 0, 1, 2, 4, 2, 4, 6, 8 }[]
const uint8_t

Functions

CommonTag(uint32_t tagNum)
uint64_t
공통 프로필 TLV 태그의 API 표현을 생성합니다.
ContextTag(uint8_t tagNum)
uint64_t
컨텍스트별 TLV 태그의 API 표현을 생성합니다.
GetTLVFieldSize(uint8_t type)
TLVFieldSize
IsContextTag(uint64_t tag)
bool
제공된 태그가 컨텍스트별 태그인 경우 true를 반환합니다.
IsProfileTag(uint64_t tag)
bool
제공된 태그의 true를 반환하면 프로필별 태그입니다.
IsSpecialTag(uint64_t tag)
bool
IsValidTLVType(uint8_t type)
bool
지정된 TLV 유형이 유효하면 true를 반환합니다.
ProfileIdFromTag(uint64_t tag)
uint32_t
TLV 태그에서 프로필 ID를 반환합니다.
ProfileNumFromTag(uint64_t tag)
uint16_t
TLV 태그에서 프로필 번호를 반환합니다.
ProfileTag(uint32_t profileId, uint32_t tagNum)
uint64_t
프로필 ID 및 태그 번호에서 프로필별 TLV 태그의 API 표현을 생성합니다.
ProfileTag(uint16_t vendorId, uint16_t profileNum, uint32_t tagNum)
uint64_t
공급업체 ID, 프로필 번호 및 태그 번호에서 프로필별 TLV 태그의 API 표현을 생성합니다.
TLVFieldSizeToBytes(TLVFieldSize fieldSize)
uint8_t
TLVTypeHasLength(uint8_t type)
bool
지정된 TLV 유형이 연결된 길이 필드의 존재를 암시하는 경우 true를 반환합니다.
TLVTypeHasValue(uint8_t type)
bool
지정된 TLV 유형이 연결된 값 필드의 존재를 암시하는 경우 true를 반환합니다.
TLVTypeIsContainer(uint8_t type)
bool
지정된 TLV 유형이 컨테이너인 경우 true를 반환합니다.
TLVTypeIsString(uint8_t type)
bool
지정된 TLV 유형이 UTF8 또는 바이트 문자열인 경우 True를 반환합니다.
TagNumFromTag(uint64_t tag)
uint32_t
TLV 태그에서 태그 번호를 반환합니다.
VendorIdFromTag(uint64_t tag)
uint16_t
TLV 태그에서 공급업체 ID를 반환합니다.

클래스

nl::Weave::TLV::CircularTLVReader
nl::Weave::TLV::CircularTLVwriter
nl::Weave::TLV::TLVReader

Weave TLV 형식으로 인코딩된 데이터의 메모리 효율적인 파서를 제공합니다.

nl::Weave::TLV::TLVUpdater

TLV 인코딩에서 요소를 수정/추가/삭제하는 통합 리더/작성자 인터페이스를 제공합니다.

nl::Weave::TLV::TLV작성자

Weave TLV 형식으로 데이터를 쓰기 위한 메모리 효율적인 인코더를 제공합니다.

nl::Weave::TLV::WeaveCircularTLVBuffer

WeaveCircularTLVBuffernl::Weave::TLV::TLVViewer와 nl::Weave::TLVTLVReader를 위한 원형 저장소를 제공합니다.

네임스페이스

nl::Weave::TLV::디버그

이 네임스페이스에는 디버깅 및 Weave TLV 로깅을 위한 유형과 인터페이스가 포함되어 있습니다.

nl::Weave::TLV::유틸리티

이 네임스페이스에는 Weave TLV를 관리하고 사용하기 위한 유형과 유틸리티 인터페이스가 포함되어 있습니다.

열거

@71

 @71

@73

 @73

@74

 @74
속성
AnonymousTag

태그가 없는 TLV 요소를 나타내는 값 (예:

익명의 요소

@75

 @75

TLVCommonProfiles

 TLVCommonProfiles
속성
kProfileIdNotSpecified

변수 또는 멤버에 프로필 ID가 없음을 나타내는 데 사용됩니다.

이는 기본적으로 WeaveProfiles.h에 정의된 kWeaveProfile_NotSpecified와 동일합니다.

TLVElementType

 TLVElementType

TLVFieldSize

 TLVFieldSize

TV 태그 컨트롤

 TLVTagControl

TLVTagFields

 TLVTagFields

TLVType

 TLVType

TLV 요소의 유형을 식별하는 열거형입니다.

변수

kWeaveTLVCopyChunkSize

const size_t kWeaveTLVCopyChunkSize = 16

판독기 객체의 TLV 요소를 작성기로 복사합니다.

CopyElement() 메서드는 유형 및 값을 TLVReader 객체에서 가져오는 TLV 요소를 새로 인코딩합니다. 메서드가 호출되면 제공된 리더 객체가 소스 TLV 요소에 위치해야 합니다. 새로 인코딩된 요소는 입력 컨테이너와 동일한 유형 및 콘텐츠를 포함하지만 태그는 지정된 인수로 설정됩니다. 제공된 요소가 TLV 컨테이너 (구조, 배열 또는 경로)인 경우 컨테이너의 전체 콘텐츠가 복사됩니다.

세부정보
매개변수
[in] tag
TLV 태그는 컨테이너로 인코딩되거나, 컨테이너가 태그 없이 인코딩되어야 하는 경우에는 AnonymousTag입니다. 태그 값은 태그 정의 함수 ProfileTag(), ContextTag() 또는 CommonTag() 중 하나로 구성해야 합니다.
[in] reader
유형과 값을 복사해야 하는 사전 인코딩된 TLV 요소를 식별하는 TLVReader 객체에 대한 참조입니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우.
WEAVE_ERROR_INCORRECT_STATE
제공된 리더가 요소에 배치되지 않은 경우
WEAVE_ERROR_TLV_CONTAINER_OPEN
컨테이너 작성기가 현재 작성자에서 열려 있지만 아직 닫지 않은 경우
WEAVE_ERROR_TLV_UNDERRUN
제공된 판독기와 연결된 기본 TLV 인코딩이 조기에 종료된 경우
WEAVE_ERROR_INVALID_TLV_ELEMENT
제공된 리더에 유효하지 않거나 지원되지 않는 TLV 요소 유형이 있는 경우
WEAVE_ERROR_INVALID_TLV_TAG
제공된 판독기가 잘못된 컨텍스트에서 TLV 태그를 경험하거나 제공된 태그가 새 컨테이너가 작성되는 컨텍스트에서 잘못되었거나 부적절합니다.
WEAVE_ERROR_BUFFER_TOO_SMALL
값을 쓰는 경우 작성기가 초기화될 때 지정된 최대 바이트 수 제한을 초과합니다.
WEAVE_ERROR_NO_MEMORY
메모리 부족으로 인해 출력 버퍼 할당을 시도할 수 없습니다.
other
구성된 GetNewBuffer() 또는 LastizeBuffer() 함수 또는 Reader 객체와 연결된 GetNextBuffer() 함수가 반환하는 기타 Weave 또는 플랫폼별 오류

sTagSizes

const uint8_t sTagSizes[] = { 0, 1, 2, 4, 2, 4, 6, 8 }

Functions

CommonTag

uint64_t CommonTag(
  uint32_t tagNum
)

공통 프로필 TLV 태그의 API 표현을 생성합니다.

세부정보
매개변수
[in] tagNum
태그에 할당된 공통 프로필 태그 번호입니다.
반환
태그를 나타내는 64비트 정수입니다.

컨텍스트 태그

uint64_t ContextTag(
  uint8_t tagNum
)

컨텍스트별 TLV 태그의 API 표현을 생성합니다.

세부정보
매개변수
[in] tagNum
태그에 할당된 컨텍스트별 태그 번호입니다.
반환
태그를 나타내는 64비트 정수입니다.

GetTLVFieldSize

TLVFieldSize GetTLVFieldSize(
  uint8_t type
)

IsContextTag

bool IsContextTag(
  uint64_t tag
)

제공된 태그가 컨텍스트별 태그인 경우 true를 반환합니다.

IsProfileTag

bool IsProfileTag(
  uint64_t tag
)

제공된 태그의 true를 반환하면 프로필별 태그입니다.

IsSpecialTag

bool IsSpecialTag(
  uint64_t tag
)

IsValidTLVType

bool IsValidTLVType(
  uint8_t type
)

지정된 TLV 유형이 유효하면 true를 반환합니다.

세부정보
반환
지정된 TLV 유형이 유효한 경우 true, 그렇지 않으면 false

ProfileIdFromTag

uint32_t ProfileIdFromTag(
  uint64_t tag
)

TLV 태그에서 프로필 ID를 반환합니다.

세부정보
매개변수
[in] tag
프로필별 TLV 태그의 API 표현입니다.
반환
프로필 ID입니다.

ProfileNumFromTag

uint16_t ProfileNumFromTag(
  uint64_t tag
)

TLV 태그에서 프로필 번호를 반환합니다.

세부정보
매개변수
[in] tag
프로필별 TLV 태그의 API 표현입니다.
반환
연결된 프로필 번호입니다.

프로필 태그

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

프로필 ID 및 태그 번호에서 프로필별 TLV 태그의 API 표현을 생성합니다.

세부정보
매개변수
[in] profileId
태그가 정의된 프로필의 ID입니다.
[in] tagNum
태그에 할당된 프로필별 태그 번호입니다.
반환
태그를 나타내는 64비트 정수입니다.

프로필 태그

uint64_t ProfileTag(
  uint16_t vendorId,
  uint16_t profileNum,
  uint32_t tagNum
)

공급업체 ID, 프로필 번호 및 태그 번호에서 프로필별 TLV 태그의 API 표현을 생성합니다.

세부정보
매개변수
[in] vendorId
태그를 정의한 공급업체의 ID입니다.
[in] profileNum
태그가 정의된 프로필에 대해 공급업체에서 할당한 번호입니다.
[in] tagNum
태그에 할당된 프로필별 태그 번호입니다.
반환
태그를 나타내는 64비트 정수입니다.

TLVFieldSizeToBytes

uint8_t TLVFieldSizeToBytes(
  TLVFieldSize fieldSize
)

TLVTypeHasLength

bool TLVTypeHasLength(
  uint8_t type
)

지정된 TLV 유형이 연결된 길이 필드의 존재를 암시하는 경우 true를 반환합니다.

세부정보
반환
true 지정된 TLV 유형이 연결된 길이 필드의 존재를 암시하는 경우, 그렇지 않은 경우 false

기본 타겟 값

bool TLVTypeHasValue(
  uint8_t type
)

지정된 TLV 유형이 연결된 값 필드의 존재를 암시하는 경우 true를 반환합니다.

세부정보
반환
true 지정된 TLV 유형이 연결된 값 필드의 존재를 암시하는 경우, 그렇지 않은 경우 false

TLVTypeIsContainer

bool TLVTypeIsContainer(
  uint8_t type
)

지정된 TLV 유형이 컨테이너인 경우 true를 반환합니다.

세부정보
반환
지정된 TLV 유형이 컨테이너이면 true, 그렇지 않으면 false입니다.

TLVTypeIsString

bool TLVTypeIsString(
  uint8_t type
)

지정된 TLV 유형이 UTF8 또는 바이트 문자열인 경우 True를 반환합니다.

세부정보
반환
지정된 TLV 유형이 UTF8 또는 바이트 문자열이면 true이고, 그렇지 않으면 false입니다.

TagNumFromTag

uint32_t TagNumFromTag(
  uint64_t tag
)

TLV 태그에서 태그 번호를 반환합니다.

세부정보
매개변수
[in] tag
프로필별 또는 컨텍스트별 TLV 태그의 API 표현입니다.
반환
연결된 태그 번호입니다.
참고 항목:
IsProfileTag()IsContextTag()

공급업체 IDFromTag

uint16_t VendorIdFromTag(
  uint64_t tag
)

TLV 태그에서 공급업체 ID를 반환합니다.

세부정보
매개변수
[in] tag
프로필별 TLV 태그의 API 표현입니다.
반환
연결된 공급업체 ID입니다.