Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

nl :: 짜다:: 프로필 :: 소프트웨어 업데이트:: 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 , 구조가 약간 다르게 기내 표현에서 읽습니다. 특히, 버전과 로케일은 (길이, 문자) 튜플이 아닌 널로 끝나는 c- 문자열이며 두 옵션 항목 모두 널 입력 가능 포인터로 표시되므로 확인할 별도의 부울이 없습니다.

생성자와 소멸자

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를 .

공용 속성

무결성 유형

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 필드는 일반적으로 IMAGE QUERY 메시지의 소스 인 노드가 다른 노드에 대한 소프트웨어 업데이트 프록시 역할을하는 인스턴스에서 사용됩니다.

theMetaData

ReferencedTLVData theMetaData

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

이 필드는 쿼리가 수행되는 장치에 대한 공급 업체별 정보를 인코딩합니다. 공급 업체별 데이터 필드는 선택 사항입니다. 있는 경우 필드는 익명 TLV 인코딩 구조의 양식을 갖습니다. 이 구조 내에 제시된 태그는 완전한 프로필 별 태그 여야합니다.

updateSchemes

UpdateSchemeList updateSchemes

장치에서 지원하는 업데이트 체계 (다운로드 프로토콜).

버전

ReferencedString version

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

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

공공 기능

ImageQuery

 ImageQuery()

에 대한 기본 생성자 ImageQuery .

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
)

공개 정적 함수

구문 분석

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 너무 깁니다