콘텐츠로 이동
무료 평가 시작

pdcomm::Gem300CapabilitySnapshot

클래스

한 리비전 시점의 Gem300CapabilityCatalog를 복사한 불변 사본입니다.

class Gem300CapabilitySnapshot

선언 위치: #include <pdcomm_gem300.hpp>

스냅숏은 순서가 있는 전체 내용을 소유합니다. 카탈로그가 교체되거나, 비워지거나, 소멸된 뒤에도 유효하며 바뀌지 않습니다. Gem300CapabilityCatalog::snapshot()으로 얻습니다.

const auto snapshot = catalog.snapshot();
for (std::size_t p = 0; p < snapshot.info().profileCount; ++p) {
    std::cout << snapshot.profileId(p) << '\n';
    for (std::size_t c = 0; c < snapshot.profileInfo(p).capabilityCount; ++c)
        std::cout << "  " << snapshot.capabilityId(p, c) << '\n';
}

참고

  • 이동 전용(move-only) RAII 래퍼입니다. 모든 getter는 읽기 전용이며 한 스냅숏에서 동시에 실행할 수 있습니다. 단, 소멸은 getter와 경합하면 안 됩니다. 기본 생성되었거나 이동된(moved-from) 스냅숏은 비어 있으며, 그 getter는 PDCOMM_INVALID_ARGUMENT로 pdcomm::Error 예외를 던집니다.

멤버

Gem300CapabilitySnapshot

생성자

네이티브 핸들을 소유하지 않는 빈 스냅숏을 만듭니다.

Gem300CapabilitySnapshot() noexcept = default

선언 위치: #include <pdcomm_gem300.hpp>

Gem300CapabilitySnapshot

생성자

other가 소유한 네이티브 핸들의 소유권을 가져옵니다.

Gem300CapabilitySnapshot(Gem300CapabilitySnapshot &&other) noexcept

선언 위치: #include <pdcomm_gem300.hpp>

매개변수

이름설명
other원본 래퍼이며 비어 있게 됩니다.

Gem300CapabilitySnapshot

생성자

복사할 수 없습니다. 래퍼가 네이티브 핸들을 단독으로 소유합니다.

Gem300CapabilitySnapshot(const Gem300CapabilitySnapshot &) = delete

선언 위치: #include <pdcomm_gem300.hpp>

capabilityId

메서드

기능 하나의 식별자를 복사합니다.

std::string capabilityId(std::size_t profileIndex, std::size_t capabilityIndex) const

선언 위치: #include <pdcomm_gem300.hpp>

매개변수

이름설명
profileIndex0부터 시작하는 프로필 위치입니다.
capabilityIndex프로필 안에서 0부터 시작하는 기능 위치입니다.

반환값

기능 식별자입니다.

참고

  • 예외 pdcomm::Error: 인덱스가 잘못되면 PDCOMM_OUT_OF_RANGE, 스냅숏이 비어 있으면 PDCOMM_INVALID_ARGUMENT입니다.

capabilityInfo

메서드

프로필 하나에 속한 기능 하나를 설명합니다.

Gem300CapabilityInfo capabilityInfo(std::size_t profileIndex, std::size_t capabilityIndex) const

선언 위치: #include <pdcomm_gem300.hpp>

매개변수

이름설명
profileIndex0부터 시작하는 프로필 위치입니다.
capabilityIndex프로필 안에서 0부터 시작하는 기능 위치입니다.

반환값

식별자 길이, 축, 상태, 검증 상태입니다.

참고

  • 예외 pdcomm::Error: 인덱스가 잘못되면 PDCOMM_OUT_OF_RANGE, 스냅숏이 비어 있으면 PDCOMM_INVALID_ARGUMENT입니다.

info

메서드

이 스냅숏에 기록된 리비전과 합계를 반환합니다.

Gem300CapabilityCatalogInfo info() const

선언 위치: #include <pdcomm_gem300.hpp>

반환값

스냅숏 요약입니다.

참고

  • 예외 pdcomm::Error: 스냅숏이 비어 있으면 PDCOMM_INVALID_ARGUMENT입니다.

nativeHandle

메서드

읽기 전용 C API 호출에 쓸, 소유 중인 네이티브 핸들을 반환합니다.

const PdcommGem300CapabilitySnapshot *nativeHandle() const noexcept

선언 위치: #include <pdcomm_gem300.hpp>

반환값

핸들입니다. 빈 스냅숏이면 nullptr입니다. 소유권은 이 래퍼에 남습니다.

operator bool

메서드

래퍼가 네이티브 스냅숏을 소유하는지 알려 줍니다.

explicit operator bool() const noexcept

선언 위치: #include <pdcomm_gem300.hpp>

반환값

스냅숏을 소유하면 true입니다.

operator=

메서드

현재 핸들을 해제한 뒤 other가 소유한 핸들의 소유권을 가져옵니다.

Gem300CapabilitySnapshot &operator=(Gem300CapabilitySnapshot &&other) noexcept

선언 위치: #include <pdcomm_gem300.hpp>

매개변수

이름설명
other원본 래퍼이며 비어 있게 됩니다.

반환값

이 래퍼입니다.

operator=

메서드

복사 대입할 수 없습니다. 래퍼가 네이티브 핸들을 단독으로 소유합니다.

Gem300CapabilitySnapshot &operator=(const Gem300CapabilitySnapshot &) = delete

선언 위치: #include <pdcomm_gem300.hpp>

profileId

메서드

프로필 하나의 식별자를 복사합니다.

std::string profileId(std::size_t profileIndex) const

선언 위치: #include <pdcomm_gem300.hpp>

매개변수

이름설명
profileIndex0부터 시작하는 프로필 위치입니다.

반환값

프로필 식별자입니다.

참고

  • 예외 pdcomm::Error: 인덱스가 잘못되면 PDCOMM_OUT_OF_RANGE, 스냅숏이 비어 있으면 PDCOMM_INVALID_ARGUMENT입니다.

profileInfo

메서드

프로필 하나의 크기 정보를 반환합니다.

Gem300CapabilityProfileInfo profileInfo(std::size_t profileIndex) const

선언 위치: #include <pdcomm_gem300.hpp>

매개변수

이름설명
profileIndex카탈로그 순서에서 0부터 시작하는 프로필 위치입니다.

반환값

프로필의 식별자 길이와 기능 수입니다.

참고

  • 예외 pdcomm::Error: profileIndex가 프로필 수보다 작지 않으면 PDCOMM_OUT_OF_RANGE, 스냅숏이 비어 있으면 PDCOMM_INVALID_ARGUMENT입니다.

~Gem300CapabilitySnapshot

메서드

pdcomm_gem300_capability_snapshot_destroy()로 네이티브 핸들을 해제합니다.

~Gem300CapabilitySnapshot()

선언 위치: #include <pdcomm_gem300.hpp>

빈 스냅숏은 아무것도 해제하지 않습니다.