nl::Weave::Profiles::SoftwareUpdate::ImageQuery

#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: 구조는 진행 중인 표현과 약간 다르게 읽습니다. 특히, 버전과 언어는 (길이, 문자) 튜플이 아닌 null로 끝나는 c-문자열이고 두 선택적 항목은 모두 null을 허용하는 포인터로 표시되므로 별도로 확인할 부울이 없습니다.

생성자 및 소멸자

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로 역직렬화합니다.

공개 속성

integrityTypes

IntegrityTypeList integrityTypes

기기에서 지원하는 무결성 유형

localeSpec

ReferencedString localeSpec

이미지 쿼리를 실행하는 기기에 적용되는 POSIX 언어를 포함하는 가변 길이의 UTF-8 문자열입니다.

문자열의 내용은 ISO/IEC 15897에 지정된 POSIX 언어 식별자 형식(예: 오스트레일리아 영어의 경우 en_AU.UTF-8)을 준수해야 합니다.

packageSpec

ReferencedString packageSpec

공급업체별 패키지 사양 문자열을 포함하는 가변 길이 UTF-8 문자열입니다.

이 필드의 콘텐츠는 'rpm', 'deb', 'tgz', 'elf'와 같은 소프트웨어 이미지에 대해 원하는 컨테이너 유형을 설명합니다. (참고: 이 필드는 프로토콜의 Nest 구현에서는 사용되지 않습니다.)

productSpec

ProductSpec productSpec

이미지 검색을 실행하는 기기를 설명하는 제품 사양입니다.

targetNodeId

uint64_t targetNodeId

쿼리가 수행 중인 기기의 노드 ID(선택사항)입니다.

타겟 노드 ID 필드는 선택사항입니다. 이 필드가 없으면 쿼리의 타겟 노드 ID는 암시적으로 이미지 쿼리 메시지의 소스인 노드입니다.

타겟 노드 ID 필드는 일반적으로 이미지 쿼리 메시지의 소스인 노드가 다른 노드의 소프트웨어 업데이트 프록시 역할을 하는 인스턴스에 사용됩니다.

theMetaData

ReferencedTLVData theMetaData

공급업체별 데이터 필드는 길이가 가변적이며 위에서 설명한 필드 이외에 Weave 메시지 페이로드의 나머지 부분을 차지합니다.

이 필드는 쿼리가 실행되는 기기에 대한 공급업체별 정보를 인코딩합니다. 공급업체별 데이터 필드는 선택사항입니다. 필드가 있는 경우 이 필드는 익명의 TLV 인코딩 구조입니다. 이 구조 내에 표시되는 태그는 정규화된 프로필별 태그여야 합니다.

updateSchemes

UpdateSchemeList updateSchemes

기기에서 지원하는 업데이트 스키마 (다운로드 프로토콜)

버전

ReferencedString version

쿼리가 실행되는 기기의 공급업체 지정 소프트웨어 버전을 포함하는 가변 길이 UTF-8 문자열입니다.

길이는 32 이하여야 합니다.

공개 함수

ImageQuery

 ImageQuery()

ImageQuery의 기본 생성자입니다.

init()를 호출하거나 메시지에서 객체를 역직렬화하여 ImageQuery를 채울 수 있습니다.

init

WEAVE_ERROR init(
  ProductSpec & aProductSpec,
  ReferencedString & aVersion,
  IntegrityTypeList & aTypeList,
  UpdateSchemeList & aSchemeList,
  ReferencedString *aPackage,
  ReferencedString *aLocale,
  uint64_t aTargetNodeId,
  ReferencedTLVData *aMetaData
)

제공된 값으로 ImageQuery 객체를 명시적으로 초기화합니다.

세부정보
매개변수
[in] aProductSpec
제품 사양입니다.
[in] aVersion
현재 설치된 소프트웨어 버전입니다.
[in] aTypeList
클라이언트에서 지원하는 무결성 유형입니다.
[in] aSchemeList
클라이언트에서 지원하는 업데이트 스키마입니다.
[in] aPackage
클라이언트에서 지원하는 선택적 패키지 사양입니다.
[in] aLocale
클라이언트가 요청한 선택적 언어 사양입니다.
[in] aTargetNodeId
타겟 노드 ID입니다(선택사항).
[in] aMetaData
TLV로 인코딩된 공급업체 데이터 blob(선택사항)입니다.
반환
WEAVE_NO_ERROR 무조건

연산자==

bool operator==(
  const ImageQuery &
) const 

등호 연산자.

세부정보
매개변수
another
ImageQuery에 대해 확인할 ImageQuery
반환
두 객체의 모든 필드가 같으면 true, 그렇지 않으면 false입니다.

WEAVE_ERROR pack(
  PacketBuffer *
)

기본 ImageQuery를 제공된 PacketBuffer에 직렬화합니다.

세부정보
매개변수
[in] aBuffer
쿼리를 패킹할 패킷 버퍼
반환 값
WEAVE_NO_ERROR
성공 시
WEAVE_ERROR_BUFFER_TOO_SMALL
ImageQuery가 너무 커서 제공된 버퍼에 맞지 않는 경우

출력하다

void print(
  void
)

공개 정적 함수

parse

WEAVE_ERROR parse(
  PacketBuffer *,
  ImageQuery &
)

PacketBuffer에 제공된 이미지 쿼리 메시지를 제공된 ImageQuery로 역직렬화합니다.

세부정보
매개변수
[in] aBuffer
이미지 쿼리를 파싱할 패킷을 가리키는 포인터
[in] aQuery
결과를 넣을 객체
반환
성공 시 WEAVE_NO_ERROR
반환
WEAVE_ERROR_BUFFER_TOO_Small 메시지가 너무 작아서 ImageQuery
반환
WEAVE_ERROR_INVALID_LIST_LENGTH 메시지에 너무 긴 IntegrityTypeList 또는 UpdateSchemeList가 포함된 경우