nl::매트::TLV::TLVReader

#include <src/lib/core/WeaveTLV.h>

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

요약

TLVReader는 Weave TLV 데이터의 정방향 전용 '풀 스타일' 파서를 구현합니다. TLVReader 객체는 TLV 요소의 시퀀스를 반복하고 그 콘텐츠를 해석하는 데 사용할 수 있는 커서로 작동합니다. 요소가 배치되면 애플리케이션은 리더의 Get() 메서드를 호출하여 현재 요소의 유형과 태그를 쿼리하고 연결된 값을 추출할 수 있습니다. 리더의 Next() 메서드는 요소에서 요소로 이동합니다.

TLVReader 객체는 항상 TLV 요소 앞, 뒤에 있습니다. 처음 초기화되면 TLVReader가 인코딩의 첫 번째 요소 바로 앞에 배치됩니다. 읽기를 시작하려면 애플리케이션에서 Next() 메서드를 처음으로 호출하여 첫 번째 요소에 리더를 배치해야 합니다. 컨테이너 요소가 구조체, 배열 또는 경로(OpenContainer() 또는 EnterContainer() 메서드)를 사용하면 컨테이너의 내용을 반복할 수 있습니다.

리더가 TLV 인코딩의 끝 또는 컨테이너 내의 마지막 요소에 도달하면 Next() 메서드에서 WEAVE_END_OF_TLV 오류를 반환하여 애플리케이션에 신호를 보냅니다. 리더는 다시 초기화되거나 현재 컨테이너가 종료될 때까지 (CloseContainer() / ExitContainer()를 통해) WEAVE_END_OF_TLV를 계속 반환합니다.

TLVReader 객체는 고정된 입력 버퍼 또는 하나 이상의 PacketBuffer의 체인에서 직접 데이터를 파싱할 수 있습니다. 또한 애플리케이션은 GetNextBuffer 함수를 제공하여 소켓이나 직렬 포트와 같은 임의의 소스에서 리더에 데이터를 피드할 수 있습니다.

상속

직접 알려진 서브클래스:
nl::Weave::Profiles::DataManagement_Current::CircularEventReader
nl::Weave::TLV::CircularTLVReader

공개 유형

GetNextBufferFunct)(TLVReader &reader, uintptr_t &bufHandle, const uint8_t *&bufStart, uint32_t &bufLen) WEAVE_ERROR(*)
파싱할 TLV 데이터를 추가로 검색하는 데 사용할 수 있는 함수입니다.

공개 속성

AppData
void *
애플리케이션별 데이터에 사용할 수 있는 포인터 필드입니다.
GetNextBuffer
TLVReader 객체에 입력 데이터를 생성할 함수에 대한 포인터입니다.
ImplicitProfileId
uint32_t
암시적 형식으로 인코딩된 프로필 태그에 사용할 프로필 ID입니다.

보호된 속성

mBufEnd
const uint8_t *
mBufHandle
uintptr_t
mContainerType
mControlByte
uint16_t
mElemLenOrVal
uint64_t
mElemTag
uint64_t
mLenRead
uint32_t
mMaxLen
uint32_t
mReadPoint
const uint8_t *

공개 함수

CloseContainer(TLVReader & containerReader)
OpenContainer() 호출 후 TLV 컨테이너 읽기를 완료합니다.
DupBytes(uint8_t *& buf, uint32_t & dataLen)
현재 바이트 또는 UTF8 문자열의 값이 포함된 버퍼를 할당하고 반환합니다.
DupString(char *& buf)
현재 바이트 또는 UTF8 문자열의 null 종료 값이 포함된 버퍼를 할당하고 반환합니다.
EnterContainer(TLVType & outerContainerType)
TLV 컨테이너 요소의 구성원을 읽기 위한 TLVReader 객체를 준비합니다.
ExitContainer(TLVType outerContainerType)
TLV 컨테이너 읽기를 완료하고 TLVReader 객체를 준비하여 컨테이너 다음에 있는 요소를 읽습니다.
Get(bool & v)
현재 요소의 값을 부울 유형으로 가져옵니다.
Get(int8_t & v)
현재 요소의 값을 8비트 부호 있는 정수로 가져옵니다.
Get(int16_t & v)
현재 요소의 값을 16비트 부호 있는 정수로 가져옵니다.
Get(int32_t & v)
현재 요소의 값을 32비트 부호 있는 정수로 가져옵니다.
Get(int64_t & v)
현재 요소의 값을 64비트 부호 있는 정수로 가져옵니다.
Get(uint8_t & v)
현재 요소의 값을 부호 없는 8비트 정수로 가져옵니다.
Get(uint16_t & v)
현재 요소의 값을 부호 없는 16비트 정수로 가져옵니다.
Get(uint32_t & v)
현재 요소의 값을 부호 없는 32비트 정수로 가져옵니다.
Get(uint64_t & v)
현재 요소의 값을 부호 없는 64비트 정수로 가져옵니다.
Get(float & v)
Get(double & v)
현재 요소의 값을 배정밀도 부동 소수점 수로 가져옵니다.
GetBufHandle(void) const
uintptr_t
GetBytes(uint8_t *buf, uint32_t bufSize)
현재 바이트 또는 UTF8 문자열 요소의 값을 가져옵니다.
GetContainerType(void) const
TLVReader가 현재 읽고 있는 컨테이너의 유형을 반환합니다.
GetControlByte(void) const
uint16_t
현재 TLV 요소와 연결된 제어 바이트를 반환합니다.
GetDataPtr(const uint8_t *& data)
TLV 바이트 또는 UTF8 문자열 요소의 초기 인코딩 바이트에 대한 포인터를 가져옵니다.
GetLength(void) const
uint32_t
현재 TLV 요소와 연결된 데이터의 길이를 반환합니다.
GetLengthRead(void) const
uint32_t
리더가 초기화된 이후 읽은 총 바이트 수를 반환합니다.
GetReadPoint(void) const
const uint8_t *
기본 입력 버퍼에서 리더의 현재 위치에 해당하는 점을 가져옵니다.
GetRemainingLength(void) const
uint32_t
최대 읽기 길이에 도달할 때까지 읽을 수 있는 총 바이트 수를 반환합니다.
GetString(char *buf, uint32_t bufSize)
현재 바이트 또는 UTF8 문자열 요소의 값을 null 종료 문자열로 가져옵니다.
GetTag(void) const
uint64_t
현재 TLV 요소와 연결된 태그를 반환합니다.
GetType(void) const
현재 TLV 요소의 유형을 반환합니다.
Init(const TLVReader & aReader)
void
다른 TLVReader 객체에서 TLVReader 객체를 초기화합니다.
Init(const uint8_t *data, uint32_t dataLen)
void
단일 입력 버퍼에서 읽을 TLVReader 객체를 초기화합니다.
Init(PacketBuffer *buf, uint32_t maxLen)
void
단일 PacketBuffer에서 읽을 TLVReader 객체를 초기화합니다.
Init(PacketBuffer *buf, uint32_t maxLen, bool allowDiscontiguousBuffers)
void
하나 이상의 PacketBuffer에서 데이터를 읽을 TLVReader 객체를 초기화합니다.
Next(void)
TLVReader 객체를 읽을 다음 TLV 요소로 이동합니다.
Next(TLVType expectedType, uint64_t expectedTag)
새 요소의 유형과 태그를 어설션하는 TLVReader 객체를 읽을 다음 TLV 요소로 이동합니다.
OpenContainer(TLVReader & containerReader)
TLV 컨테이너 요소의 구성원을 읽기 위한 새 TLVReader 객체를 초기화합니다.
Skip(void)
TLVReader 객체를 현재 TLV 요소 바로 뒤로 이동합니다.
VerifyEndOfContainer(void)
TVLReader 객체가 TLV 컨테이너의 끝에 있는지 확인합니다.

보호된 함수

ClearElementState(void)
void
TLVReader의 상태를 지웁니다.
ElementType(void) const
TLVElementType
이는 mControlByte에서 TLVElementType을 반환하는 비공개 메서드입니다.
EnsureData(WEAVE_ERROR noDataErr)
GetElementHeadLength(uint8_t & elemHeadBytes) const
이는 TLV 요소 헤드의 길이를 계산하는 데 사용되는 비공개 메서드입니다.
IsContainerOpen(void) const
bool
ReadData(uint8_t *buf, uint32_t len)
ReadElement(void)
ReadTag(TLVTagControl tagControl, const uint8_t *& p)
uint64_t
SetContainerOpen(bool aContainerOpen)
void
SkipData(void)
대상 버퍼 없이 데이터를 읽으면서 현재 TLV에 포함된 모든 데이터를 건너뜁니다.
SkipToEndOfContainer(void)
VerifyElement(void)

보호되는 정적 함수

FailGetNextBuffer(TLVReader & reader, uintptr_t & bufHandle, const uint8_t *& bufStart, uint32_t & bufLen)
GetNextPacketBuffer(TLVReader & reader, uintptr_t & bufHandle, const uint8_t *& bufStart, uint32_t & bufLen)

공개 유형

GetNextBufferFunct

WEAVE_ERROR(* GetNextBufferFunct)(TLVReader &reader, uintptr_t &bufHandle, const uint8_t *&bufStart, uint32_t &bufLen)

파싱할 TLV 데이터를 추가로 검색하는 데 사용할 수 있는 함수입니다.

이 유형의 함수는 입력 데이터를 TLVReader에 피드하는 데 사용됩니다. 함수를 호출하면 함수가 더 이상 사용할 수 있는 데이터가 없음을 독자가 파싱하거나 알리기 위해 추가 데이터를 생성해야 합니다.

세부정보
매개변수
[in] reader
입력 데이터를 요청하는 TLVReader 객체에 대한 참조입니다.
[in,out] bufHandle
함수가 호출 간에 컨텍스트 데이터를 저장하는 데 사용할 수 있는 uintptr_t 값에 대한 참조입니다. 이 값은 첫 번째 호출 전에 0으로 초기화됩니다.
[in,out] bufStart
데이터 포인터에 대한 참조입니다. 함수 입력 시 bufStart는 리더가 사용한 마지막 TLV 데이터 바이트를 가리키고 1바이트를 가리킵니다. 종료 시 bufStart는 파싱할 새 TLV 데이터의 첫 번째 바이트를 가리켜야 합니다. 새 포인터 값은 이전에 소비된 데이터와 동일한 버퍼 내에 있거나 완전히 새로운 버퍼를 가리킬 수 있습니다.
[out] bufLen
함수가 반환될 TLV 데이터 바이트 수로 설정해야 하는 부호 없는 정수에 대한 참조입니다. 입력 TLV 데이터의 끝에 도달한 경우 함수는 이 값을 0으로 설정해야 합니다.
반환 값
WEAVE_NO_ERROR
함수가 더 많은 TLV 데이터를 생성했거나 입력 데이터의 끝에 도달한 경우(이 경우 bufLen를 0으로 설정해야 함)
other
오류가 발생하여 함수가 요청된 데이터를 생성할 수 없음을 나타내는 기타 Weave 또는 플랫폼별 오류 코드.

공개 속성

앱 데이터

void * AppData

애플리케이션별 데이터에 사용할 수 있는 포인터 필드입니다.

GetNextBuffer

GetNextBufferFunct GetNextBuffer

TLVReader 객체에 입력 데이터를 생성할 함수에 대한 포인터입니다.

NULL (기본값)로 설정하면 리더는 추가 입력 데이터를 사용할 수 없다고 가정합니다.

GetNextBuffer는 언제든지 애플리케이션에서 설정할 수 있지만 일반적으로 리더가 초기화될 때 설정됩니다.

GetNextBuffer 함수 구현에 관한 자세한 내용은 GetNextBufferFunct 유형 정의를 참고하세요.

암시적 프로필 ID

uint32_t ImplicitProfileId

암시적 형식으로 인코딩된 프로필 태그에 사용할 프로필 ID입니다.

리더가 암시적 형식으로 인코딩된 프로필별 태그를 만나면 ImplicitProfileId 속성의 값을 태그에 가정된 프로필 ID로 사용합니다.

기본적으로 ImplicitProfileId 속성은 kProfileIdNotSpecified로 설정됩니다. 암시적으로 인코딩된 태그가 포함된 TLV를 디코딩하는 경우 애플리케이션은 이러한 태그가 포함된 TLV 요소를 읽기 전에 ImplicitProfileId를 설정해야 합니다. 적절한 프로필 ID는 일반적으로 사용되는 애플리케이션 또는 프로토콜의 컨텍스트에 따라 달라집니다.

ImplicitProfileId이 kProfileIdNotSpecified로 설정된 동안 암시적으로 인코딩된 태그가 있으면 리더는 WEAVE_ERROR_UNKNOWN_IMPLICIT_TLV_TAG 오류를 반환합니다.

보호된 속성

모바일 종료

const uint8_t * mBufEnd

모바일 핸들

uintptr_t mBufHandle

모바일 컨테이너 유형

TLVType mContainerType

mControlByte

uint16_t mControlByte

모바일 라이선스

uint64_t mElemLenOrVal

모바일 태그

uint64_t mElemTag

모바일 읽기

uint32_t mLenRead

mMaxLen

uint32_t mMaxLen

mReadPoint

const uint8_t * mReadPoint

공개 함수

Close컨테이너

WEAVE_ERROR CloseContainer(
  TLVReader & containerReader
)

OpenContainer() 호출 후 TLV 컨테이너 읽기를 완료합니다.

CloseContainer() 메서드는 OpenContainer()를 호출한 후 상위 TLVReader 객체의 상태를 복원합니다. OpenContainer()를 호출할 때마다 해당하는 메서드를 CloseContainer()로 호출하여 동일한 메서드에 대한 참조를 두 메서드에 모두 전달해야 합니다.

CloseContainer()가 반환되면 상위 리더가 컨테이너 다음에 오는 첫 번째 요소 바로 앞에 배치됩니다. 이 시점부터 애플리케이션은 Next() 메서드를 사용하여 남은 요소를 진행할 수 있습니다.

애플리케이션은 기본 컨테이너의 모든 요소를 읽었는지 여부와 관계없이 언제든지 상위 리더에서 닫기 CloseContainer()를 호출할 수 있습니다. CloseContainer()가 호출된 후에는 애플리케이션이 컨테이너 리더를 고려해야 하며 다시 초기화하지 않고는 컨테이너 리더를 더 이상 사용해서는 안 됩니다.

세부정보
매개변수
[in] containerReader
OpenContainer() 메서드에 제공된 TLVReader 객체에 대한 참조입니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_INCORRECT_STATE
리더에서 OpenContainer()가 호출되지 않았거나 컨테이너 리더가 OpenContainer() 메서드에 전달된 것과 일치하지 않는 경우
WEAVE_ERROR_TLV_UNDERRUN
기본 TLV 인코딩이 조기에 종료된 경우
WEAVE_ERROR_INVALID_TLV_ELEMENT
리더에 유효하지 않거나 지원되지 않는 TLV 요소 유형이 발생한 경우
WEAVE_ERROR_INVALID_TLV_TAG
리더에 잘못된 컨텍스트에서 TLV 태그가 발생한 경우
other
구성된 GetNextBuffer() 함수에서 반환하는 기타 Weave 또는 플랫폼 오류 코드. GetNextBuffer가 NULL이 아닌 경우에만 가능합니다.

DupBytes

WEAVE_ERROR DupBytes(
  uint8_t *& buf,
  uint32_t & dataLen
)

현재 바이트 또는 UTF8 문자열의 값이 포함된 버퍼를 할당하고 반환합니다.

이 메서드는 현재 위치에 바이트 또는 UTF-8 문자열 요소와 연결된 데이터의 사본을 만들고 이 사본을 반환합니다. 버퍼의 메모리는 malloc()으로 가져오며 더 이상 필요하지 않은 경우 호출자에 의해 free()로 확보되어야 합니다.

세부정보
매개변수
[out] buf
dataLen 바이트의 힙 할당 버퍼가 할당될 포인터에 대한 참조입니다.
[out] dataLen
성공 시 buf의 크기(바이트)에 대한 저장소 참조입니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_WRONG_TLV_TYPE
현재 요소가 TLV 바이트 또는 UTF8 문자열이 아니거나 리더가 요소에 배치되지 않은 경우입니다.
WEAVE_ERROR_NO_MEMORY
출력 버퍼에 메모리를 할당할 수 없는 경우
WEAVE_ERROR_TLV_UNDERRUN
기본 TLV 인코딩이 조기에 종료된 경우
WEAVE_ERROR_UNSUPPORTED_WEAVE_FEATURE
타겟 플랫폼이 malloc() 및 free()를 지원하지 않는 경우.
other
구성된 GetNextBuffer() 함수에서 반환하는 기타 Weave 또는 플랫폼 오류 코드. GetNextBuffer가 NULL이 아닌 경우에만 가능합니다.

DupString

WEAVE_ERROR DupString(
  char *& buf
)

현재 바이트 또는 UTF8 문자열의 null 종료 값이 포함된 버퍼를 할당하고 반환합니다.

이 메서드는 현재 위치에 있는 바이트 또는 UTF-8 문자열 요소와 연결된 데이터의 null로 끝나는 사본을 만들고 버퍼를 반환합니다. 버퍼의 메모리는 malloc()으로 가져오며 더 이상 필요하지 않은 경우 호출자에 의해 free()로 확보되어야 합니다.

세부정보
매개변수
[out] buf
힙 할당 버퍼가 할당될 포인터에 대한 참조입니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_WRONG_TLV_TYPE
현재 요소가 TLV 바이트 또는 UTF8 문자열이 아니거나 리더가 요소에 배치되지 않은 경우입니다.
WEAVE_ERROR_NO_MEMORY
출력 버퍼에 메모리를 할당할 수 없는 경우
WEAVE_ERROR_TLV_UNDERRUN
기본 TLV 인코딩이 조기에 종료된 경우
WEAVE_ERROR_UNSUPPORTED_WEAVE_FEATURE
타겟 플랫폼이 malloc() 및 free()를 지원하지 않는 경우.
other
구성된 GetNextBuffer() 함수에서 반환하는 기타 Weave 또는 플랫폼 오류 코드. GetNextBuffer가 NULL이 아닌 경우에만 가능합니다.

EnterContainer

WEAVE_ERROR EnterContainer(
  TLVType & outerContainerType
)

TLV 컨테이너 요소의 구성원을 읽기 위한 TLVReader 객체를 준비합니다.

EnterContainer() 메서드는 현재 TLVReader 객체가 TLV 컨테이너의 구성원 요소 (구조, 배열, 경로)를 읽을 수 있도록 준비합니다. EnterContainer()를 호출할 때마다 애플리케이션은 상응하는 ExitContainer()를 호출해야 합니다.

EnterContainer()를 호출하면 읽을 컨테이너 요소에 TLVReader 객체를 배치해야 합니다. 이 메서드는 컨테이너를 읽는 동안 리더의 컨텍스트를 저장하는 데 사용할 TLVType 값에 대한 참조를 인수로 사용합니다.

EnterContainer() 메서드가 반환되면 리더는 컨테이너의 첫 번째 구성원 바로 전에 배치됩니다. Next()를 반복적으로 호출하면 리더가 끝에 도달할 때까지 컬렉션 멤버를 진행합니다. 이때 리더는 WEAVE_END_OF_TLV를 반환합니다.

애플리케이션이 컨테이너 읽기를 완료하면 ExitContainer() 메서드를 호출하여 컨테이너 다음에 있는 요소를 계속 읽을 수 있습니다.

세부정보
매개변수
[out] outerContainerType
리더의 컨텍스트를 수신할 TLVType 값에 대한 참조입니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_INCORRECT_STATE
현재 요소가 컨테이너 요소에 배치되지 않은 경우

이탈 컨테이너

WEAVE_ERROR ExitContainer(
  TLVType outerContainerType
)

TLV 컨테이너 읽기를 완료하고 TLVReader 객체를 준비하여 컨테이너 다음에 있는 요소를 읽습니다.

ExitContainer() 메서드는 EnterContainer()를 호출한 후 TLVReader 객체의 상태를 복원합니다. EnterContainer()를 호출할 때마다 해당하는 애플리케이션은 ExitContainer()를 호출하여 EnterContainer() 메서드에서 반환하는 컨텍스트 값을 전달해야 합니다.

ExitContainer()가 반환되면 리더가 컨테이너 다음의 첫 번째 요소 바로 앞에 배치됩니다. 이 시점부터 애플리케이션은 Next() 메서드를 사용하여 남은 요소를 진행할 수 있습니다.

EnterContainer()가 호출되면 애플리케이션은 기본 컨테이너의 모든 요소를 읽었는지 여부와 관계없이 언제든지 리더에서 ExitContainer()를 호출할 수 있습니다.

세부정보
매개변수
[in] outerContainerType
EnterContainer() 메서드에서 반환된 TLVType 값입니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_INCORRECT_STATE
리더에서 OpenContainer()가 호출되지 않았거나 컨테이너 리더가 OpenContainer() 메서드에 전달된 것과 일치하지 않는 경우
WEAVE_ERROR_TLV_UNDERRUN
기본 TLV 인코딩이 조기에 종료된 경우
WEAVE_ERROR_INVALID_TLV_ELEMENT
리더에 유효하지 않거나 지원되지 않는 TLV 요소 유형이 발생한 경우
WEAVE_ERROR_INVALID_TLV_TAG
리더에 잘못된 컨텍스트에서 TLV 태그가 발생한 경우
other
구성된 GetNextBuffer() 함수에서 반환하는 기타 Weave 또는 플랫폼 오류 코드. GetNextBuffer가 NULL이 아닌 경우에만 가능합니다.

가져오기

WEAVE_ERROR Get(
  bool & v
)

현재 요소의 값을 부울 유형으로 가져옵니다.

세부정보
매개변수
[out] v
현재 TLV 요소와 연결된 값을 수신합니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_WRONG_TLV_TYPE
현재 요소가 TLV 부울 유형이 아니거나 리더가 요소에 배치되지 않은 경우.

가져오기

WEAVE_ERROR Get(
  int8_t & v
)

현재 요소의 값을 8비트 부호 있는 정수로 가져옵니다.

인코딩된 정수 값이 출력 데이터 유형보다 크면 결과 값이 잘립니다.

세부정보
매개변수
[out] v
현재 TLV 요소와 연결된 값을 수신합니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_WRONG_TLV_TYPE
현재 요소가 TLV 정수 유형 (부호 있음 또는 부호 없음)이 아니거나 리더가 요소에 배치되지 않은 경우.

가져오기

WEAVE_ERROR Get(
  int16_t & v
)

현재 요소의 값을 16비트 부호 있는 정수로 가져옵니다.

인코딩된 정수 값이 출력 데이터 유형보다 크면 결과 값이 잘립니다.

세부정보
매개변수
[out] v
현재 TLV 요소와 연결된 값을 수신합니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_WRONG_TLV_TYPE
현재 요소가 TLV 정수 유형 (부호 있음 또는 부호 없음)이 아니거나 리더가 요소에 배치되지 않은 경우.

가져오기

WEAVE_ERROR Get(
  int32_t & v
)

현재 요소의 값을 32비트 부호 있는 정수로 가져옵니다.

인코딩된 정수 값이 출력 데이터 유형보다 크면 결과 값이 잘립니다.

세부정보
매개변수
[out] v
현재 TLV 요소와 연결된 값을 수신합니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_WRONG_TLV_TYPE
현재 요소가 TLV 정수 유형 (부호 있음 또는 부호 없음)이 아니거나 리더가 요소에 배치되지 않은 경우.

가져오기

WEAVE_ERROR Get(
  int64_t & v
)

현재 요소의 값을 64비트 부호 있는 정수로 가져옵니다.

인코딩된 정수 값이 출력 데이터 유형보다 크면 결과 값이 잘립니다.

세부정보
매개변수
[out] v
현재 TLV 요소와 연결된 값을 수신합니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_WRONG_TLV_TYPE
현재 요소가 TLV 정수 유형 (부호 있음 또는 부호 없음)이 아니거나 리더가 요소에 배치되지 않은 경우.

가져오기

WEAVE_ERROR Get(
  uint8_t & v
)

현재 요소의 값을 부호 없는 8비트 정수로 가져옵니다.

인코딩된 정수 값이 출력 데이터 유형보다 크면 결과 값이 잘립니다. 마찬가지로 인코딩된 정수 값이 음수이면 값이 부호 없는 상태로 변환됩니다.

세부정보
매개변수
[out] v
현재 TLV 요소와 연결된 값을 수신합니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_WRONG_TLV_TYPE
현재 요소가 TLV 정수 유형 (부호 있음 또는 부호 없음)이 아니거나 리더가 요소에 배치되지 않은 경우.

가져오기

WEAVE_ERROR Get(
  uint16_t & v
)

현재 요소의 값을 부호 없는 16비트 정수로 가져옵니다.

인코딩된 정수 값이 출력 데이터 유형보다 크면 결과 값이 잘립니다. 마찬가지로 인코딩된 정수 값이 음수이면 값이 부호 없는 상태로 변환됩니다.

세부정보
매개변수
[out] v
현재 TLV 요소와 연결된 값을 수신합니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_WRONG_TLV_TYPE
현재 요소가 TLV 정수 유형 (부호 있음 또는 부호 없음)이 아니거나 리더가 요소에 배치되지 않은 경우.

가져오기

WEAVE_ERROR Get(
  uint32_t & v
)

현재 요소의 값을 부호 없는 32비트 정수로 가져옵니다.

인코딩된 정수 값이 출력 데이터 유형보다 크면 결과 값이 잘립니다. 마찬가지로 인코딩된 정수 값이 음수이면 값이 부호 없는 상태로 변환됩니다.

세부정보
매개변수
[out] v
현재 TLV 요소와 연결된 값을 수신합니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_WRONG_TLV_TYPE
현재 요소가 TLV 정수 유형 (부호 있음 또는 부호 없음)이 아니거나 리더가 요소에 배치되지 않은 경우.

가져오기

WEAVE_ERROR Get(
  uint64_t & v
)

현재 요소의 값을 부호 없는 64비트 정수로 가져옵니다.

인코딩된 정수 값이 음수이면 값이 부호 없는 상태로 변환됩니다.

세부정보
매개변수
[out] v
현재 TLV 요소와 연결된 값을 수신합니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_WRONG_TLV_TYPE
현재 요소가 TLV 정수 유형 (부호 있음 또는 부호 없음)이 아니거나 리더가 요소에 배치되지 않은 경우.

가져오기

WEAVE_ERROR Get(
  float & v
)

가져오기

WEAVE_ERROR Get(
  double & v
)

현재 요소의 값을 배정밀도 부동 소수점 수로 가져옵니다.

세부정보
매개변수
[out] v
현재 TLV 요소와 연결된 값을 수신합니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_WRONG_TLV_TYPE
현재 요소가 TLV 부동 소수점 유형이 아니거나 리더가 요소에 배치되지 않은 경우.

GetBufHandle

uintptr_t GetBufHandle(
  void
) const 

GetBytes

WEAVE_ERROR GetBytes(
  uint8_t *buf,
  uint32_t bufSize
)

현재 바이트 또는 UTF8 문자열 요소의 값을 가져옵니다.

필요한 입력 버퍼 크기를 확인하려면 GetBytes()를 호출하기 전에 GetLength() 메서드를 호출합니다.

세부정보
매개변수
[in] buf
문자열 데이터를 수신하는 버퍼에 대한 포인터입니다.
[in] bufSize
buf에서 가리키는 버퍼의 크기(바이트)입니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_WRONG_TLV_TYPE
현재 요소가 TLV 바이트 또는 UTF8 문자열이 아니거나 리더가 요소에 배치되지 않은 경우입니다.
WEAVE_ERROR_BUFFER_TOO_SMALL
제공된 버퍼가 너무 작아서 현재 요소와 연결된 데이터를 보관할 수 없는 경우
WEAVE_ERROR_TLV_UNDERRUN
기본 TLV 인코딩이 조기에 종료된 경우
other
구성된 GetNextBuffer() 함수에서 반환하는 기타 Weave 또는 플랫폼 오류 코드. GetNextBuffer가 NULL이 아닌 경우에만 가능합니다.

GetContainerType

TLVType GetContainerType(
  void
) const 

TLVReader가 현재 읽고 있는 컨테이너의 유형을 반환합니다.

GetContainerType() 메서드는 TLV 컨테이너 내부에서 TLVReader가 읽고 있는 유형을 반환합니다. TLVReaderTLV 인코딩의 가장 바깥쪽 레벨에 배치된 경우 (즉, 가장 외부 TLV 요소 앞이나 뒤에 있는 경우) 이 메서드는 kTLVType_NotSpecified를 반환합니다.

세부정보
반환
현재 컨테이너의 TLVType 또는 TLVReader가 컨테이너 내에 배치되지 않은 경우 kTLVType_NotSpecified입니다.

GetControlByte

uint16_t GetControlByte(
  void
) const 

현재 TLV 요소와 연결된 제어 바이트를 반환합니다.

아무도 제어 바이트에 대해 알 필요가 없고 이상적으로는 TLV의 내부 구현만 액세스 바이트에 액세스할 수 있어야 합니다. 하지만 그렇더라도 제어 바이트에 대한 액세스 권한은 TLVDebug유틸리티의 디버깅 목적에 유용합니다(TLV 버퍼 콘텐츠를 예쁘게 인쇄할 때 태그 컨트롤 바이트를 디코딩하려고 함).

세부정보
반환
현재 TLV 요소와 연결된 제어 바이트를 포함하는 부호 없는 정수입니다. kTLVControlByte_NotSpecified는 리더가 요소 위에 배치되지 않은 경우 반환됩니다.

GetDataPtr

WEAVE_ERROR GetDataPtr(
  const uint8_t *& data
)

TLV 바이트 또는 UTF8 문자열 요소의 초기 인코딩 바이트에 대한 포인터를 가져옵니다.

이 메서드는 기본 입력 버퍼 내에 인코딩된 문자열 값을 직접 가리키는 포인터를 반환합니다. 성공하려면 메서드에서 단일 버퍼에 문자열 값 전체를 입력해야 합니다. 그렇지 않은 경우 메서드는 WEAVE_ERROR_TLV_UNDERRUN을 반환합니다. 따라서 여러 개의 비연속 버퍼에서 데이터를 읽을 때 사용 방법이 제한됩니다.

세부정보
매개변수
[out] data
기본 문자열 데이터에 대한 포인터를 수신할 상수 포인터에 대한 참조입니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_WRONG_TLV_TYPE
현재 요소가 TLV 바이트 또는 UTF8 문자열이 아니거나 리더가 요소에 배치되지 않은 경우입니다.
WEAVE_ERROR_TLV_UNDERRUN
기본 TLV 인코딩이 조기에 종료되었거나 현재 문자열 요소의 값이 단일 연속 버퍼 내에 포함되어 있지 않은 경우.
other
구성된 GetNextBuffer() 함수에서 반환하는 기타 Weave 또는 플랫폼 오류 코드. GetNextBuffer가 NULL이 아닌 경우에만 가능합니다.

GetLength

uint32_t GetLength(
  void
) const 

현재 TLV 요소와 연결된 데이터의 길이를 반환합니다.

데이터 길이는 UTF8 문자열 또는 바이트 문자열 유형의 요소에만 적용됩니다. UTF8 문자열의 경우 반환되는 값은 문자 수가 아닌 문자열의 바이트 수입니다.

세부정보
반환
현재 TLV 요소와 연결된 데이터의 길이 (바이트), 현재 요소가 UTF8 문자열 또는 바이트 문자열이 아니거나 리더가 위치에 없는 경우 0입니다.

GetLengthRead

uint32_t GetLengthRead(
  void
) const 

리더가 초기화된 이후 읽은 총 바이트 수를 반환합니다.

세부정보
반환
리더가 초기화된 이후 읽은 총 바이트 수입니다.

GetReadPoint

const uint8_t * GetReadPoint(
  void
) const 

기본 입력 버퍼에서 리더의 현재 위치에 해당하는 점을 가져옵니다.

세부정보
반환
리더의 현재 위치에 해당하는 기본 입력 버퍼에 대한 포인터입니다.

GetRemainingLength

uint32_t GetRemainingLength(
  void
) const 

최대 읽기 길이에 도달할 때까지 읽을 수 있는 총 바이트 수를 반환합니다.

세부정보
반환
최대 읽기 길이에 도달할 때까지 읽을 수 있는 총 바이트 수입니다.

GetString

WEAVE_ERROR GetString(
  char *buf,
  uint32_t bufSize
)

현재 바이트 또는 UTF8 문자열 요소의 값을 null 종료 문자열로 가져옵니다.

필요한 입력 버퍼 크기를 확인하려면 GetBytes()를 호출하기 전에 GetLength() 메서드를 호출합니다. null 문자를 수용하려면 입력 버퍼가 문자열 길이보다 최소 1바이트 더 커야 합니다.

세부정보
매개변수
[in] buf
바이트 문자열 데이터를 수신하는 버퍼에 대한 포인터입니다.
[in] bufSize
buf에서 가리키는 버퍼의 크기(바이트)입니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_WRONG_TLV_TYPE
현재 요소가 TLV 바이트 또는 UTF8 문자열이 아니거나 리더가 요소에 배치되지 않은 경우입니다.
WEAVE_ERROR_BUFFER_TOO_SMALL
제공된 버퍼가 너무 작아서 현재 요소와 연결된 데이터를 보관할 수 없는 경우
WEAVE_ERROR_TLV_UNDERRUN
기본 TLV 인코딩이 조기에 종료된 경우
other
구성된 GetNextBuffer() 함수에서 반환하는 기타 Weave 또는 플랫폼 오류 코드. GetNextBuffer가 NULL이 아닌 경우에만 가능합니다.

GetTag

uint64_t GetTag(
  void
) const 

현재 TLV 요소와 연결된 태그를 반환합니다.

GetTag()에서 반환된 값은 태그 유틸리티 함수 (IsProfileTag(), IsContextTag(), ProfileIdFromTag() 등)와 함께 사용하여 태그 유형을 결정하고 다양한 태그 필드 값을 추출할 수 있습니다.

세부정보
반환
현재 TLV 요소와 연결된 태그에 대한 정보를 포함하는 부호 없는 정수입니다.

GetType

TLVType GetType(
  void
) const 

현재 TLV 요소의 유형을 반환합니다.

세부정보
반환
현재 TLV 요소의 데이터 유형을 설명하는 TLVType 값입니다. 리더가 TLV 요소에 배치되지 않은 경우 반환 값은 kTLVType_NotSpecified가 됩니다.

Init

void Init(
  const TLVReader & aReader
)

다른 TLVReader 객체에서 TLVReader 객체를 초기화합니다.

세부정보
매개변수
[in] aReader
이 값을 초기화할 TLVReader에 대한 읽기 전용 참조입니다.

Init

void Init(
  const uint8_t *data,
  uint32_t dataLen
)

단일 입력 버퍼에서 읽을 TLVReader 객체를 초기화합니다.

세부정보
매개변수
[in] data
파싱할 TLV 데이터가 포함된 버퍼에 대한 포인터입니다.
[in] dataLen
파싱할 TLV 데이터의 길이입니다.

Init

void Init(
  PacketBuffer *buf,
  uint32_t maxLen
)

단일 PacketBuffer에서 읽을 TLVReader 객체를 초기화합니다.

파싱은 버퍼의 시작 위치 (buf->DataStart())에서 시작되며 버퍼의 데이터 (buf->Datalen()으로 표시됨)의 끝 또는 maxLen 바이트가 파싱될 때까지 계속됩니다.

세부정보
매개변수
[in] buf
파싱할 TLV 데이터가 포함된 PacketBuffer에 대한 포인터입니다.
[in] maxLen
파싱할 최대 바이트입니다. 기본값은 입력 버퍼의 데이터 양입니다.

Init

void Init(
  PacketBuffer *buf,
  uint32_t maxLen,
  bool allowDiscontiguousBuffers
)

하나 이상의 PacketBuffer에서 데이터를 읽을 TLVReader 객체를 초기화합니다.

초기 버퍼의 시작 위치 (buf->DataStart())에서 파싱이 시작됩니다. allowDiscontiguousBuffers가 true인 경우 리더는 Next() 포인터에 연결된 버퍼 체인을 진행합니다. 버퍼 체인의 모든 데이터가 소진되거나 (buf->Datalen()으로 표시됨) maxLen 바이트가 파싱될 때까지 파싱이 계속됩니다.

세부정보
매개변수
[in] buf
파싱할 TLV 데이터가 포함된 PacketBuffer에 대한 포인터입니다.
[in] maxLen
파싱할 최대 바이트입니다. 기본값은 입력 버퍼 체인의 총 데이터 양입니다.
[in] allowDiscontiguousBuffers
true인 경우 현재 버퍼의 모든 데이터가 소비되면 체인의 다음 버퍼로 이동합니다. false인 경우 초기 버퍼의 끝에서 파싱을 중지합니다.

다음

WEAVE_ERROR Next(
  void
)

TLVReader 객체를 읽을 다음 TLV 요소로 이동합니다.

Next() 메서드는 동일한 포함 컨텍스트에 있는 TLV 인코딩의 다음 요소에 리더 객체를 배치합니다. 특히 리더가 TLV 인코딩의 가장 바깥쪽에 배치된 경우 Next()를 호출하면 리더가 맨 위에 있는 다음 요소로 이동됩니다. 리더가 TLV 컨테이너 요소 (구조, 배열 또는 경로) 내에 있는 경우 Next()를 호출하면 리더가 컨테이너의 다음 구성원 요소로 이동합니다.

Next()는 리더 동작을 현재 포함 컨텍스트로 제한하므로, 리더 요소가 컨테이너 요소에 배치될 때 Next()를 호출하면 컨테이너 다음에서 컨테이너 이후 첫 번째 요소에 도달할 때까지 멤버 요소 (및 중첩된 컨테이너의 멤버)를 건너뜁니다.

특정 포함 컨텍스트 내에 더 이상 요소가 없으면 Next() 메서드가 WEAVE_END_OF_TLV 오류를 반환하고 리더의 위치는 변경되지 않습니다.

세부정보
반환 값
WEAVE_NO_ERROR
리더가 새 요소에 성공적으로 배치되었는지 여부
WEAVE_END_OF_TLV
추가 요소가 없는 경우
WEAVE_ERROR_TLV_UNDERRUN
기본 TLV 인코딩이 조기에 종료된 경우
WEAVE_ERROR_INVALID_TLV_ELEMENT
리더에 유효하지 않거나 지원되지 않는 TLV 요소 유형이 발생한 경우
WEAVE_ERROR_INVALID_TLV_TAG
리더에 잘못된 컨텍스트에서 TLV 태그가 발생한 경우
WEAVE_ERROR_UNKNOWN_IMPLICIT_TLV_TAG
리더가 상응하는 프로필 ID를 알 수 없는 암시적으로 인코딩된 TLV 태그를 발견한 경우.
other
구성된 GetNextBuffer() 함수에서 반환하는 기타 Weave 또는 플랫폼 오류 코드. GetNextBuffer가 NULL이 아닌 경우에만 가능합니다.

다음

WEAVE_ERROR Next(
  TLVType expectedType,
  uint64_t expectedTag
)

새 요소의 유형과 태그를 어설션하는 TLVReader 객체를 읽을 다음 TLV 요소로 이동합니다.

Next(TLVType predictedType, uint64_t predictedTag) 메서드는 Next()와 동작이 동일한 새로운 메서드이지만, 새 TLV 요소의 유형 및 태그가 제공된 인수와 일치하는지도 확인합니다.

세부정보
매개변수
[in] expectedType
다음 요소의 예상 데이터 유형입니다.
[in] expectedTag
다음 요소의 예상 태그입니다.
반환 값
WEAVE_NO_ERROR
리더가 새 요소에 성공적으로 배치되었는지 여부
WEAVE_END_OF_TLV
추가 요소가 없는 경우
WEAVE_ERROR_WRONG_TLV_TYPE
새 요소의 유형이 expectedType 인수의 값과 일치하지 않는 경우
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
새 요소와 연결된 태그가 expectedTag 인수의 값과 일치하지 않는 경우
WEAVE_ERROR_TLV_UNDERRUN
기본 TLV 인코딩이 조기에 종료된 경우
WEAVE_ERROR_INVALID_TLV_ELEMENT
리더에 유효하지 않거나 지원되지 않는 TLV 요소 유형이 발생한 경우
WEAVE_ERROR_INVALID_TLV_TAG
리더에 잘못된 컨텍스트에서 TLV 태그가 발생한 경우
other
구성된 GetNextBuffer() 함수에서 반환하는 기타 Weave 또는 플랫폼 오류 코드. GetNextBuffer가 NULL이 아닌 경우에만 가능합니다.

OpenContainer

WEAVE_ERROR OpenContainer(
  TLVReader & containerReader
)

TLV 컨테이너 요소의 구성원을 읽기 위한 새 TLVReader 객체를 초기화합니다.

OpenContainer() 메서드는 TLV 컨테이너의 구성원 요소 (구조, 배열 또는 경로)를 읽기 위한 새로운 TLVReader 객체를 초기화합니다. OpenContainer()가 호출된 경우 읽으려는 컨테이너 요소에 현재 TLVReader 객체가 있어야 합니다. 이 메서드는 컨테이너를 읽기 위해 초기화될 새 리더에 대한 참조로 단독 인수를 사용합니다. 이 리더를 컨테이너 리더라고 하고, OpenContainer()가 호출되는 리더를 상위 리더라고 합니다.

OpenContainer() 메서드가 반환되면 컨테이너 리더가 컨테이너의 첫 번째 구성원 바로 앞에 배치됩니다. 컨테이너 리더에서 Next()를 호출하면 컬렉션 멤버에 도달할 때까지 계속됩니다. 이때 끝에 리더가 WEAVE_END_OF_TLV를 반환합니다.

컨테이너 리더가 열려 있는 동안에는 애플리케이션에서 상위 리더를 호출하거나 상위 리더의 상태를 변경해서는 안 됩니다. 애플리케이션이 컨테이너 리더 사용을 완료하면 상위 리더에서 CloseContainer()를 호출하고 컨테이너 리더를 인수로 전달하여 애플리케이션을 닫아야 합니다. 애플리케이션은 기본 컨테이너에 포함된 모든 요소를 읽거나 포함하지 않고도 언제든지 컨테이너 리더를 닫을 수 있습니다. 컨테이너 리더가 닫힌 후에도 애플리케이션은 상위 리더를 계속 사용할 수 있습니다.

컨테이너 리더는 상위 리더로부터 다양한 구성 속성을 상속합니다. 다음과 같습니다.

  • 암시적 프로필 ID (ImplicitProfileId)
  • 애플리케이션 데이터 포인터 (AppData)
  • GetNextBuffer 함수 포인터

세부정보
매개변수
[out] containerReader
현재 컨테이너 요소의 구성원을 읽기 위해 초기화될 TLVReader 객체에 대한 참조입니다. 제공된 객체와 연결된 모든 데이터를 덮어씁니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_INCORRECT_STATE
현재 요소가 컨테이너 요소에 배치되지 않은 경우

건너뛰기

WEAVE_ERROR Skip(
  void
)

TLVReader 객체를 현재 TLV 요소 바로 뒤로 이동합니다.

Skip() 메서드는 현재 TLV 요소 뒤에 리더 객체를 배치하므로 이후 Next()를 호출하면 다음 요소로 리더가 진행됩니다. Next()와 마찬가지로 호출 시점에 컨테이너 요소에 리더가 배치되면 컨테이너의 멤버를 건너뜁니다. 리더가 아무 위치에도 배치되지 않으면 리더의 위치는 변경되지 않습니다.

세부정보
반환 값
WEAVE_NO_ERROR
리더가 새 요소에 성공적으로 배치되었는지 여부
WEAVE_END_OF_TLV
추가 요소가 없는 경우
WEAVE_ERROR_TLV_UNDERRUN
기본 TLV 인코딩이 조기에 종료된 경우
WEAVE_ERROR_INVALID_TLV_ELEMENT
리더에 유효하지 않거나 지원되지 않는 TLV 요소 유형이 발생한 경우
WEAVE_ERROR_INVALID_TLV_TAG
리더에 잘못된 컨텍스트에서 TLV 태그가 발생한 경우
other
구성된 GetNextBuffer() 함수에서 반환하는 기타 Weave 또는 플랫폼 오류 코드. GetNextBuffer가 NULL이 아닌 경우에만 가능합니다.

확인 종료 컨테이너

WEAVE_ERROR VerifyEndOfContainer(
  void
)

TVLReader 객체가 TLV 컨테이너의 끝에 있는지 확인합니다.

VerifyEndOfContainer() 메서드는 현재 TLV 컨테이너 내에서 읽을 추가 TLV 요소가 없는지 확인합니다. 이는 Next()를 호출하고 WEAVE_END_OF_TLV의 반환 값을 확인하는 것과 동일한 편의 메서드입니다.

세부정보
반환 값
WEAVE_NO_ERROR
더 이상 읽을 TLV 요소가 없는 경우
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
컬렉션에서 다른 TLV 요소가 발견되었는지 여부
WEAVE_ERROR_TLV_UNDERRUN
기본 TLV 인코딩이 조기에 종료된 경우
WEAVE_ERROR_INVALID_TLV_ELEMENT
리더에 유효하지 않거나 지원되지 않는 TLV 요소 유형이 발생한 경우
WEAVE_ERROR_INVALID_TLV_TAG
리더에 잘못된 컨텍스트에서 TLV 태그가 발생한 경우
other
구성된 GetNextBuffer() 함수에서 반환하는 기타 Weave 또는 플랫폼 오류 코드. GetNextBuffer가 NULL이 아닌 경우에만 가능합니다.

보호된 함수

ClearElementState

void ClearElementState(
  void
)

TLVReader의 상태를 지웁니다.

이 메서드는 첫 번째 TLV 앞, TLV 사이 또는 마지막 TLV 뒤에 리더를 배치하는 데 사용됩니다.

ElementType

TLVElementType ElementType(
  void
) const 

이는 mControlByte에서 TLVElementType을 반환하는 비공개 메서드입니다.

데이터 보장

WEAVE_ERROR EnsureData(
  WEAVE_ERROR noDataErr
)

GetElementHeadLength

WEAVE_ERROR GetElementHeadLength(
  uint8_t & elemHeadBytes
) const 

이는 TLV 요소 헤드의 길이를 계산하는 데 사용되는 비공개 메서드입니다.

컨테이너 컨테이너

bool IsContainerOpen(
  void
) const 

데이터 읽기

WEAVE_ERROR ReadData(
  uint8_t *buf,
  uint32_t len
)

ReadElement

WEAVE_ERROR ReadElement(
  void
)

읽기 태그

uint64_t ReadTag(
  TLVTagControl tagControl,
  const uint8_t *& p
)

컨테이너 컨테이너 열기

void SetContainerOpen(
  bool aContainerOpen
)

데이터 건너뛰기

WEAVE_ERROR SkipData(
  void
)

대상 버퍼 없이 데이터를 읽으면서 현재 TLV에 포함된 모든 데이터를 건너뜁니다.

세부정보
반환 값
WEAVE_NO_ERROR
리더가 데이터의 끝에 배치되었는지 여부
other
구성된 GetNextBuffer() 함수에서 반환하는 기타 Weave 또는 플랫폼 오류 코드. GetNextBuffer가 NULL이 아닌 경우에만 가능합니다.

컨테이너 건너뛰기

WEAVE_ERROR SkipToEndOfContainer(
  void
)

인증 요소

WEAVE_ERROR VerifyElement(
  void
)

보호되는 정적 함수

FailGetNextBuffer

WEAVE_ERROR FailGetNextBuffer(
  TLVReader & reader,
  uintptr_t & bufHandle,
  const uint8_t *& bufStart,
  uint32_t & bufLen
)

GetNextPacketBuffer

WEAVE_ERROR GetNextPacketBuffer(
  TLVReader & reader,
  uintptr_t & bufHandle,
  const uint8_t *& bufStart,
  uint32_t & bufLen
)