pdcomm::Gem300CapabilitySnapshot
클래스
한 리비전 시점의 Gem300CapabilityCatalog를 복사한 불변 사본입니다.
class Gem300CapabilitySnapshot스냅숏은 순서가 있는 전체 내용을 소유합니다. 카탈로그가 교체되거나, 비워지거나, 소멸된 뒤에도 유효하며 바뀌지 않습니다. 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 = defaultGem300CapabilitySnapshot
생성자
other가 소유한 네이티브 핸들의 소유권을 가져옵니다.
Gem300CapabilitySnapshot(Gem300CapabilitySnapshot &&other) noexcept매개변수
| 이름 | 설명 |
|---|---|
other | 원본 래퍼이며 비어 있게 됩니다. |
Gem300CapabilitySnapshot
생성자
복사할 수 없습니다. 래퍼가 네이티브 핸들을 단독으로 소유합니다.
Gem300CapabilitySnapshot(const Gem300CapabilitySnapshot &) = deletecapabilityId
메서드
기능 하나의 식별자를 복사합니다.
std::string capabilityId(std::size_t profileIndex, std::size_t capabilityIndex) const매개변수
| 이름 | 설명 |
|---|---|
profileIndex | 0부터 시작하는 프로필 위치입니다. |
capabilityIndex | 프로필 안에서 0부터 시작하는 기능 위치입니다. |
반환값
기능 식별자입니다.
참고
- 예외
pdcomm::Error: 인덱스가 잘못되면PDCOMM_OUT_OF_RANGE, 스냅숏이 비어 있으면PDCOMM_INVALID_ARGUMENT입니다.
capabilityInfo
메서드
프로필 하나에 속한 기능 하나를 설명합니다.
Gem300CapabilityInfo capabilityInfo(std::size_t profileIndex, std::size_t capabilityIndex) const매개변수
| 이름 | 설명 |
|---|---|
profileIndex | 0부터 시작하는 프로필 위치입니다. |
capabilityIndex | 프로필 안에서 0부터 시작하는 기능 위치입니다. |
반환값
식별자 길이, 축, 상태, 검증 상태입니다.
참고
- 예외
pdcomm::Error: 인덱스가 잘못되면PDCOMM_OUT_OF_RANGE, 스냅숏이 비어 있으면PDCOMM_INVALID_ARGUMENT입니다.
info
메서드
이 스냅숏에 기록된 리비전과 합계를 반환합니다.
Gem300CapabilityCatalogInfo info() const반환값
스냅숏 요약입니다.
참고
- 예외
pdcomm::Error: 스냅숏이 비어 있으면PDCOMM_INVALID_ARGUMENT입니다.
nativeHandle
메서드
읽기 전용 C API 호출에 쓸, 소유 중인 네이티브 핸들을 반환합니다.
const PdcommGem300CapabilitySnapshot *nativeHandle() const noexcept반환값
핸들입니다. 빈 스냅숏이면 nullptr입니다. 소유권은 이 래퍼에 남습니다.
operator bool
메서드
래퍼가 네이티브 스냅숏을 소유하는지 알려 줍니다.
explicit operator bool() const noexcept반환값
스냅숏을 소유하면 true입니다.
operator=
메서드
현재 핸들을 해제한 뒤 other가 소유한 핸들의 소유권을 가져옵니다.
Gem300CapabilitySnapshot &operator=(Gem300CapabilitySnapshot &&other) noexcept매개변수
| 이름 | 설명 |
|---|---|
other | 원본 래퍼이며 비어 있게 됩니다. |
반환값
이 래퍼입니다.
operator=
메서드
복사 대입할 수 없습니다. 래퍼가 네이티브 핸들을 단독으로 소유합니다.
Gem300CapabilitySnapshot &operator=(const Gem300CapabilitySnapshot &) = deleteprofileId
메서드
프로필 하나의 식별자를 복사합니다.
std::string profileId(std::size_t profileIndex) const매개변수
| 이름 | 설명 |
|---|---|
profileIndex | 0부터 시작하는 프로필 위치입니다. |
반환값
프로필 식별자입니다.
참고
- 예외
pdcomm::Error: 인덱스가 잘못되면PDCOMM_OUT_OF_RANGE, 스냅숏이 비어 있으면PDCOMM_INVALID_ARGUMENT입니다.
profileInfo
메서드
프로필 하나의 크기 정보를 반환합니다.
Gem300CapabilityProfileInfo profileInfo(std::size_t profileIndex) const매개변수
| 이름 | 설명 |
|---|---|
profileIndex | 카탈로그 순서에서 0부터 시작하는 프로필 위치입니다. |
반환값
프로필의 식별자 길이와 기능 수입니다.
참고
- 예외
pdcomm::Error:profileIndex가 프로필 수보다 작지 않으면PDCOMM_OUT_OF_RANGE, 스냅숏이 비어 있으면PDCOMM_INVALID_ARGUMENT입니다.
~Gem300CapabilitySnapshot
메서드
pdcomm_gem300_capability_snapshot_destroy()로 네이티브 핸들을 해제합니다.
~Gem300CapabilitySnapshot()빈 스냅숏은 아무것도 해제하지 않습니다.