nl:: 매트:: 프로필:: 소프트웨어 업데이트:: 이미지 쿼리
#include <src/lib/profiles/software-update/SoftwareUpdateProfile.h>
이미지 쿼리 메시지의 생성 및 디코딩을 지원하는 클래스입니다.
요약
이미지 쿼리 프레임은 네트워크를 통해 다음 형식을 취합니다.
기간 | 필드 이름 |
1바이트 | 프레임 컨트롤 |
6바이트 | 제품 사양 |
가변 | 버전 사양 |
2..4바이트 | 무결성 유형 목록 |
2..5바이트 | 스키마 업데이트 목록 |
가변 | 언어 사양 (선택사항) |
8바이트 | 대상 노드 ID |
가변 | 공급업체별 데이터 (선택사항) |
비트 | 의미 |
0 | 1 - 공급업체별 데이터 존재, 0 - 존재하지 않음 |
1 | 1 - 언어 사양 있음, 0 - 없음 |
2 | 1 - 대상 노드 ID 있음, 0 - 없음 |
3.7 | 예약됨 |
생성자 및 소멸자 |
|
---|---|
ImageQuery()
ImageQuery의 기본 생성자
|
공개 속성 |
|
---|---|
integrityTypes
|
기기에서 지원하는 무결성 유형입니다.
|
localeSpec
|
이미지 쿼리를 실행 중인 기기에 적용되는 POSIX 언어가 포함된 가변 길이 UTF-8 문자열입니다.
|
packageSpec
|
공급업체별 패키지 사양 문자열이 포함된 가변 길이 UTF-8 문자열입니다.
|
productSpec
|
이미지 쿼리를 수행하는 기기를 설명하는 제품 사양입니다.
|
targetNodeId
|
uint64_t
쿼리가 이루어지는 기기의 노드 ID(선택사항)입니다.
|
theMetaData
|
공급업체별 데이터 필드의 길이는 다양하며 위에서 설명한 필드 외에 Weave 메시지 페이로드의 나머지 부분을 차지합니다.
|
updateSchemes
|
기기에서 지원하는 업데이트 스키마 (다운로드 프로토콜)
|
version
|
쿼리가 실행되는 기기의 공급업체 지정 소프트웨어 버전을 포함하는 가변 길이 UTF-8 문자열입니다.
|
공개 함수 |
|
---|---|
init(ProductSpec & aProductSpec, ReferencedString & aVersion, IntegrityTypeList & aTypeList, UpdateSchemeList & aSchemeList, ReferencedString *aPackage, ReferencedString *aLocale, uint64_t aTargetNodeId, ReferencedTLVData *aMetaData)
|
제공된 값을 사용하여 ImageQuery 객체를 명시적으로 초기화합니다.
|
operator==(const ImageQuery &) const
|
bool
등호 연산자입니다.
|
pack(PacketBuffer *)
|
기본 ImageQuery를 제공된 PacketBuffer로 직렬화합니다.
|
print(void)
|
void
|
공개 정적 함수 |
|
---|---|
parse(PacketBuffer *, ImageQuery &)
|
PacketBuffer에 제공된 이미지 쿼리 메시지를 제공된 ImageQuery로 역직렬화합니다.
|
공개 속성
로케일 사양
ReferencedString localeSpec
이미지 쿼리를 실행 중인 기기에 적용되는 POSIX 언어가 포함된 가변 길이 UTF-8 문자열입니다.
문자열의 콘텐츠는 ISO/IEC 15897에 지정된 POSIX 언어 식별자 형식(예: 오스트레일리아 영어의 경우 en_AU.UTF-8)을 따라야 합니다.
packagespec
ReferencedString packageSpec
공급업체별 패키지 사양 문자열이 포함된 가변 길이 UTF-8 문자열입니다.
필드의 콘텐츠는 'rpm', 'deb', 'tgz', 'elf' 등 소프트웨어 이미지에 원하는 컨테이너 유형을 설명합니다. 참고: 이 필드는 프로토콜의 Nest 구현에서 사용되지 않습니다.
대상 노드 ID
uint64_t targetNodeId
쿼리가 이루어지는 기기의 노드 ID(선택사항)입니다.
대상 노드 ID 필드는 선택사항입니다. 이 항목이 없는 경우 쿼리의 대상 노드 ID는 암시적으로 이미지 쿼리 메시지의 소스인 노드입니다.
대상 노드 ID 필드는 일반적으로 이미지 쿼리 메시지의 소스인 노드가 다른 노드의 소프트웨어 업데이트 프록시로 사용되는 경우에 사용됩니다.
메타데이터
ReferencedTLVData theMetaData
공급업체별 데이터 필드의 길이는 다양하며 위에서 설명한 필드 외에 Weave 메시지 페이로드의 나머지 부분을 차지합니다.
이 필드는 쿼리가 실행되는 기기에 대한 공급업체별 정보를 인코딩합니다. 공급업체별 데이터 필드는 선택사항입니다. 필드가 있으면 익명의 TLV 인코딩 구조로 되어 있습니다. 이 구조 내에 표시되는 태그는 정규화된 프로필별 태그입니다.
version
ReferencedString version
쿼리가 실행되는 기기의 공급업체 지정 소프트웨어 버전을 포함하는 가변 길이 UTF-8 문자열입니다.
32자(영문 기준) 이하여야 합니다.
공개 함수
init
WEAVE_ERROR init( ProductSpec & aProductSpec, ReferencedString & aVersion, IntegrityTypeList & aTypeList, UpdateSchemeList & aSchemeList, ReferencedString *aPackage, ReferencedString *aLocale, uint64_t aTargetNodeId, ReferencedTLVData *aMetaData )
제공된 값을 사용하여 ImageQuery 객체를 명시적으로 초기화합니다.
세부정보 | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||||||||||
반환 |
WEAVE_NO_ERROR 무조건입니다.
|
operator==
bool operator==( const ImageQuery & ) const
등호 연산자입니다.
세부정보 | |||
---|---|---|---|
매개변수 |
|
||
반환 |
두 객체의 모든 필드가 동일한 경우 true, 그렇지 않은 경우 false
|
팩
WEAVE_ERROR pack( PacketBuffer * )
기본 ImageQuery를 제공된 PacketBuffer로 직렬화합니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
||||
반환 값 |
|
인쇄
void print( void )
공개 정적 함수
파싱
WEAVE_ERROR parse( PacketBuffer *, ImageQuery & )
PacketBuffer에 제공된 이미지 쿼리 메시지를 제공된 ImageQuery로 역직렬화합니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
||||
반환 |
성공 시 WEAVE_NO_ERROR
|
||||
반환 |
WEAVE_ERROR_BUFFER_TOO_SMALL 메시지가 너무 작으면 ImageQuery의 모든 필드를 포함할 수 없습니다.
|
||||
반환 |
WEAVE_ERROR_INVALID_LIST_LENGTH 메시지에 IntegrityTypeList 또는 UpdateSchemeList가 너무 긴 경우
|