gpg::SnapshotManager

#include <snapshot_manager.h>

다양한 스냅샷 관련 데이터를 가져오고 설정합니다.

요약

앱이 인증 시 스냅샷을 사용 설정하지 않으면 (GameServices::Builder::EnableSnapshots 참고) SnapshotManager에 있는 대부분의 메서드가 실패합니다.

공개 유형

CommitCallback typedef
std::function< void(const CommitResponse &)>
CommitResponse를 수신하는 콜백 유형을 정의합니다.
FetchAllCallback typedef
std::function< void(const FetchAllResponse &)>
FetchAllResponse를 수신하는 콜백 유형을 정의합니다.
MaxSizeCallback typedef
std::function< void(const MaxSizeResponse &)>
MaxSizeResponse를 수신하는 콜백 유형을 정의합니다.
OpenCallback typedef
std::function< void(const OpenResponse &)>
OpenResponse를 수신하는 콜백 유형을 정의합니다.
ReadCallback typedef
std::function< void(const ReadResponse &)>
ReadResponse를 수신하는 콜백 유형을 정의합니다.
SnapshotSelectUICallback typedef
std::function< void(const SnapshotSelectUIResponse &)>
ShowSelectUIOperation에서 SnapshotSelectUIResponse을 수신할 수 있는 콜백을 정의합니다.

공개 함수

Commit(const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > data, CommitCallback callback)
void
스냅샷에 제공된 데이터를 비동기식으로 커밋하고 제공된 메타데이터 객체를 사용하여 스냅샷의 메타데이터를 업데이트합니다.
CommitBlocking(const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents)
스냅샷에 제공된 데이터를 동기식으로 커밋하고 제공된 메타데이터 객체를 사용하여 스냅샷의 메타데이터를 업데이트합니다.
CommitBlocking(Timeout timeout, const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents)
스냅샷에 제공된 데이터를 동기식으로 커밋하고 제공된 메타데이터 객체를 사용하여 스냅샷의 메타데이터를 업데이트합니다.
Delete(const SnapshotMetadata & snapshot_metadata)
void
지정된 스냅샷을 삭제합니다.
FetchAll(FetchAllCallback callback)
void
현재 로그인한 플레이어의 모든 스냅샷 데이터를 비동기식으로 로드합니다.
FetchAll(DataSource data_source, FetchAllCallback callback)
void
현재 로그인한 플레이어의 모든 스냅샷 데이터를 비동기식으로 로드합니다.
FetchAllBlocking()
현재 로그인한 플레이어의 모든 스냅샷 데이터를 동기식으로 로드하여 FetchAllResponse를 직접 반환합니다.
FetchAllBlocking(DataSource data_source)
현재 로그인한 플레이어의 모든 스냅샷 데이터를 동기식으로 로드하여 FetchAllResponse를 직접 반환합니다.
FetchAllBlocking(Timeout timeout)
현재 로그인한 플레이어의 모든 스냅샷 데이터를 동기식으로 로드하여 FetchAllResponse를 직접 반환합니다.
FetchAllBlocking(DataSource data_source, Timeout timeout)
현재 로그인한 플레이어의 모든 스냅샷 데이터를 동기식으로 로드하여 FetchAllResponse를 직접 반환합니다.
GetMaxSize(MaxSizeCallback callback) const
void
스냅샷당 최대 데이터 크기와 최대 커버 이미지 크기(바이트)를 비동기식으로 가져옵니다.
GetMaxSizeBlocking() const
동기식으로 스냅샷당 최대 데이터 크기와 최대 커버 이미지 크기(바이트)를 가져오고 MaxSizeResponse을 직접 반환합니다.
GetMaxSizeBlocking(Timeout timeout) const
동기식으로 스냅샷당 최대 데이터 크기와 최대 커버 이미지 크기(바이트)를 가져오고 MaxSizeResponse을 직접 반환합니다.
Open(const std::string & file_name, SnapshotConflictPolicy conflict_policy, OpenCallback callback)
void
지정된 이름의 스냅샷을 비동기식으로 엽니다.
Open(DataSource data_source, const std::string & file_name, SnapshotConflictPolicy conflict_policy, OpenCallback callback)
void
지원 중단되었습니다. data_source는 무시됩니다. 대신 Open(file_name, conflict_policy, callback)를 사용하세요.
지정된 이름의 스냅샷을 비동기식으로 엽니다.
OpenBlocking(const std::string & file_name, SnapshotConflictPolicy conflict_policy)
지정된 이름의 스냅샷을 동기식으로 엽니다.
OpenBlocking(Timeout timeout, const std::string & file_name, SnapshotConflictPolicy conflict_policy)
지정된 이름의 스냅샷을 동기식으로 엽니다.
OpenBlocking(DataSource data_source, const std::string & file_name, SnapshotConflictPolicy conflict_policy) 지원 중단되었습니다. data_source는 무시됩니다. 대신 OpenBlocking(file_name, conflict_policy)를 사용하세요.
지정된 이름의 스냅샷을 동기식으로 엽니다.
OpenBlocking(DataSource data_source, Timeout timeout, const std::string & file_name, SnapshotConflictPolicy conflict_policy) 지원 중단되었습니다. data_source는 무시됩니다. 대신 OpenBlocking(timeout, file_name, conflict_policy)를 사용하세요.
지정된 이름의 스냅샷을 동기식으로 엽니다.
Read(const SnapshotMetadata & snapshot_metadata, ReadCallback callback)
void
비동기식으로 디스크에서 스냅샷을 읽고 메모리에 복사합니다.
ReadBlocking(const SnapshotMetadata & snapshot_metadata)
동기식으로 디스크에서 스냅샷을 읽고 메모리에 복사합니다.
ReadBlocking(Timeout timeout, const SnapshotMetadata & snapshot_metadata)
동기식으로 디스크에서 스냅샷을 읽고 메모리에 복사합니다.
ResolveConflict(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata, OpenCallback callback)
void
제공된 스냅샷의 데이터를 사용하여 충돌을 비동기식으로 해결합니다.
ResolveConflict(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents, OpenCallback callback)
void
제공된 데이터를 사용하여 충돌을 비동기적으로 해결합니다.
ResolveConflictBlocking(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata)
제공된 스냅샷의 데이터를 사용하여 동기식으로 충돌을 해결합니다.
ResolveConflictBlocking(const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents)
제공된 데이터를 사용하여 동기식으로 충돌을 해결합니다.
ResolveConflictBlocking(Timeout timeout, const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata)
제공된 스냅샷의 데이터를 사용하여 동기식으로 충돌을 해결합니다.
ResolveConflictBlocking(Timeout timeout, const std::string & conflict_id, const SnapshotMetadata & snapshot_metadata, const SnapshotMetadataChange & metadata_change, std::vector< uint8_t > contents)
제공된 데이터를 사용하여 동기식으로 충돌을 해결합니다.
ShowSelectUIOperation(bool allow_create, bool allow_delete, uint32_t max_snapshots, const std::string & title, SnapshotSelectUICallback callback)
void
스냅샷 UI를 비동기식으로 표시하여 플레이어가 스냅샷을 선택하거나 새 스냅샷을 요청할 수 있습니다.
ShowSelectUIOperationBlocking(Timeout timeout, bool allow_create, bool allow_delete, uint32_t max_snapshots, const std::string & title)
ShowSelectUIOperation의 차단 버전을 사용합니다.
ShowSelectUIOperationBlocking(bool allow_create, bool allow_delete, uint32_t max_snapshots, const std::string & title)
ShowSelectUIOperationBlocking의 오버로드로 기본 시간 제한 10년을 사용합니다.

구조체

gpg::SnapshotManager::CommitResponse

업데이트된 스냅샷의 데이터와 응답 상태를 보관합니다.

gpg::SnapshotManager::FetchAllResponse

응답 상태와 함께 모든 스냅샷의 모든 데이터를 보관합니다.

gpg::SnapshotManager::MaxSizeResponse

스냅샷 데이터 및 스냅샷 표지 이미지의 최대 크기를 보유합니다.

gpg::SnapshotManager::OpenResponse

응답 상태와 함께 요청된 특정 스냅샷의 데이터를 보관합니다.

gpg::SnapshotManager::ReadResponse

스냅샷 읽기 작업에서 반환된 응답 상태와 스냅샷 데이터를 읽습니다.

gpg::SnapshotManager::SnapshotSelectUIResponse

ShowSelectUIOperation 작업의 DataResponseStatus

공개 유형

CommitCallback

std::function< void(const CommitResponse &)> CommitCallback

CommitResponse를 수신하는 콜백 유형을 정의합니다.

이 콜백 유형은 아래의 Commit(*)ResolveConflict(*) 함수에 제공됩니다.

FetchAllCallback

std::function< void(const FetchAllResponse &)> FetchAllCallback

FetchAllResponse를 수신하는 콜백 유형을 정의합니다.

이 콜백 유형은 아래 FetchAll(*) 함수에 제공됩니다.

MaxSizeCallback

std::function< void(const MaxSizeResponse &)> MaxSizeCallback

MaxSizeResponse를 수신하는 콜백 유형을 정의합니다.

이 콜백 유형은 GetMaxSize에 제공됩니다.

OpenCallback

std::function< void(const OpenResponse &)> OpenCallback

OpenResponse를 수신하는 콜백 유형을 정의합니다.

이 콜백 유형은 아래 Open(*) 함수에 제공됩니다.

ReadCallback

std::function< void(const ReadResponse &)> ReadCallback

ReadResponse를 수신하는 콜백 유형을 정의합니다.

이 콜백 유형은 아래 Read(*) 함수에 제공됩니다.

SnapshotSelectUICallback

std::function< void(const SnapshotSelectUIResponse &)> SnapshotSelectUICallback

ShowSelectUIOperation에서 SnapshotSelectUIResponse을 수신할 수 있는 콜백을 정의합니다.

공개 함수

커밋

void Commit(
  const SnapshotMetadata & snapshot_metadata,
  const SnapshotMetadataChange & metadata_change,
  std::vector< uint8_t > data,
  CommitCallback callback
)

스냅샷에 제공된 데이터를 비동기식으로 커밋하고 제공된 메타데이터 객체를 사용하여 스냅샷의 메타데이터를 업데이트합니다.

작업 완료 시 제공된 CommitCallback를 호출합니다.

CommitBlocking

CommitResponse CommitBlocking(
  const SnapshotMetadata & snapshot_metadata,
  const SnapshotMetadataChange & metadata_change,
  std::vector< uint8_t > contents
)

스냅샷에 제공된 데이터를 동기식으로 커밋하고 제공된 메타데이터 객체를 사용하여 스냅샷의 메타데이터를 업데이트합니다.

CommitBlocking

CommitResponse CommitBlocking(
  Timeout timeout,
  const SnapshotMetadata & snapshot_metadata,
  const SnapshotMetadataChange & metadata_change,
  std::vector< uint8_t > contents
)

스냅샷에 제공된 데이터를 동기식으로 커밋하고 제공된 메타데이터 객체를 사용하여 스냅샷의 메타데이터를 업데이트합니다.

timeout을 밀리초 단위로 지정합니다.

삭제

void Delete(
  const SnapshotMetadata & snapshot_metadata
)

지정된 스냅샷을 삭제합니다.

로컬 및 서버에서 스냅샷 데이터가 삭제됩니다.

FetchAll

void FetchAll(
  FetchAllCallback callback
)

현재 로그인한 플레이어의 모든 스냅샷 데이터를 비동기식으로 로드합니다.

작업 완료 시 제공된 FetchAllCallback를 호출합니다. data_source을 지정하지 않으면 이 함수 호출은 data_sourceCACHE_OR_NETWORK.로 지정한 FetchAll(DataSource data_source, FetchAllCallback callback)을 호출하는 것과 동일합니다.

FetchAll

void FetchAll(
  DataSource data_source,
  FetchAllCallback callback
)

현재 로그인한 플레이어의 모든 스냅샷 데이터를 비동기식으로 로드합니다.

작업 완료 시 제공된 FetchAllCallback를 호출합니다. data_sourceCACHE_OR_NETWORK 또는 NETWORK_ONLY로 지정합니다.

FetchAllBlocking

FetchAllResponse FetchAllBlocking()

현재 로그인한 플레이어의 모든 스냅샷 데이터를 동기식으로 로드하여 FetchAllResponse를 직접 반환합니다.

data_sourcetimeout을 모두 지정하지 않으면 이 함수 호출은 data_sourceCACHE_OR_NETWORK로, timeout를 10년으로 지정하는 FetchAllResponse FetchAllBlocking(DataSource data_source, Timeout timeout)을 호출하는 것과 동일합니다.

FetchAllBlocking

FetchAllResponse FetchAllBlocking(
  DataSource data_source
)

현재 로그인한 플레이어의 모든 스냅샷 데이터를 동기식으로 로드하여 FetchAllResponse를 직접 반환합니다.

data_sourceCACHE_OR_NETWORK 또는 NETWORK_ONLY로 지정합니다. timeout을 지정하지 않으면 이 함수 호출은 지정된 data_source 값을 사용하고 timeout을 10년으로 지정하는 FetchAllBlocking FetchAllResponse(DataSource data_source, Timeout timeout) 호출과 동일합니다.

FetchAllBlocking

FetchAllResponse FetchAllBlocking(
  Timeout timeout
)

현재 로그인한 플레이어의 모든 스냅샷 데이터를 동기식으로 로드하여 FetchAllResponse를 직접 반환합니다.

timeout을 밀리초 단위로 지정합니다. data_source를 지정하지 않으면 이 함수 호출은 data_sourceCACHE_OR_NETWORK로 지정하고 지정된 값을 포함하는 timeout를 호출하는 FetchAllResponse FetchAllBlocking(DataSource data_source, Timeout timeout)을 호출하는 것과 동일합니다.

FetchAllBlocking

FetchAllResponse FetchAllBlocking(
  DataSource data_source,
  Timeout timeout
)

현재 로그인한 플레이어의 모든 스냅샷 데이터를 동기식으로 로드하여 FetchAllResponse를 직접 반환합니다.

data_sourceCACHE_OR_NETWORK 또는 NETWORK_ONLY로 지정합니다. timeout을 밀리초 단위로 지정합니다.

GetMaxSize

void GetMaxSize(
  MaxSizeCallback callback
) const 

스냅샷당 최대 데이터 크기와 최대 커버 이미지 크기(바이트)를 비동기식으로 가져옵니다.

작업 완료 시 제공된 MaxSizeCallback를 호출합니다.

스냅샷당 최대 데이터 크기는 3MB 이상으로 보장됩니다. 향후 증가할 수 있습니다.

스냅샷 표지 이미지당 최대 데이터 크기는 800KB 이상이어야 합니다. 향후 증가할 수 있습니다.

GetMaxSizeBlocking

MaxSizeResponse GetMaxSizeBlocking() const 

동기식으로 스냅샷당 최대 데이터 크기와 최대 커버 이미지 크기(바이트)를 가져오고 MaxSizeResponse을 직접 반환합니다.

스냅샷당 최대 데이터 크기는 3MB 이상으로 보장됩니다. 향후 증가할 수 있습니다.

스냅샷 표지 이미지당 최대 데이터 크기는 800KB 이상이어야 합니다. 향후 증가할 수 있습니다.

GetMaxSizeBlocking

MaxSizeResponse GetMaxSizeBlocking(
  Timeout timeout
) const 

동기식으로 스냅샷당 최대 데이터 크기와 최대 커버 이미지 크기(바이트)를 가져오고 MaxSizeResponse을 직접 반환합니다.

스냅샷당 최대 데이터 크기는 3MB 이상으로 보장됩니다. 향후 증가할 수 있습니다.

스냅샷 표지 이미지당 최대 데이터 크기는 800KB 이상이어야 합니다. 향후 증가할 수 있습니다.

timeout을 밀리초 단위로 지정합니다.

개방형

void Open(
  const std::string & file_name,
  SnapshotConflictPolicy conflict_policy,
  OpenCallback callback
)

지정된 이름의 스냅샷을 비동기식으로 엽니다.

지정된 스냅샷이 아직 없으면 새로 생성됩니다. 작업 완료 시 제공된 OpenCallback를 호출합니다.

스냅샷 이름은 1~100개의 URL 예약되지 않은 문자 (a~z, A~Z, 0~9 또는 '-', '.', '_', '~')로만 구성되어야 합니다.

현재 기기에서 스냅샷 로드와 커밋 사이에 다른 기기에서 스냅샷을 커밋하면 충돌이 발생할 수 있습니다. 이러한 충돌을 해결해야 합니다. 충돌에 대한 자세한 내용은 위의 OpenResponse를 참조하세요.

conflict_policy는 다음 값 중 하나일 수 있습니다.

SnapshotConflictPolicy::MANUAL - 충돌이 발생하면 응답의 상태가 OpenResponse::VALID_WITH_CONFLICT입니다. SnapshotManager::ResolveConflict를 사용하여 충돌을 해결해야 합니다. 여러 충돌이 연속으로 표시될 수 있으므로 Open를 호출할 때마다 확인하세요. 이 정책에서만 충돌이 표시됩니다. 나머지는 해결 방법을 알아서 처리합니다. 이 정책을 사용하면 저장된 게임 상태의 사용자 변경사항이 삭제되지 않습니다.

SnapshotConflictPolicy::LONGEST_PLAYTIME - 충돌이 발생하면 재생 시간 값이 가장 큰 스냅샷이 사용됩니다. 이 정책은 플레이 시간이 '최고'의 저장 게임에 적합하다고 볼 수 있는 경우에 적합합니다. 게임을 저장할 때 SnapshotMetadataChange::Builder::SetPlayedTime() 정책을 사용해야 이 정책이 의미가 있다는 점에 유의하세요.

SnapshotConflictPolicy::LAST_KNOWN_GOOD - 충돌이 발생하면 기본 스냅샷이 사용됩니다. 이 정책은 게임에 스냅샷 데이터의 안정성이 필요한 경우에 적합합니다. 이 정책은 플레이어가 경합하지 않는 쓰기만 볼 수 있도록 하여 모든 클라이언트가 수렴되도록 합니다. 참고: 이전 SnapshotManager::BASE_WINS

SnapshotConflictPolicy::MOST_RECENTLY_MODIFIED - 충돌이 발생할 경우 리모컨이 사용됩니다. 이 정책은 게임에서 여러 기기를 사용하는 플레이어가 자신의 변경사항을 클로버하는 것을 허용할 수 있는 경우에 적합합니다. 이 정책은 맹목적으로 최신 데이터를 선택하기 때문에 플레이어의 변경사항이 손실될 수 있습니다. 참고: 이전 SnapshotManager::REMOTE_WINS

SnapshotConflictPolicy::HIGHEST_PROGRESS충돌이 발생하면 진행률 값이 가장 높은 스냅샷이 사용됩니다. 동점인 경우 정상으로 알려진 마지막 스냅샷이 대신 선택됩니다. 이 정책은 게임에서 스냅샷의 진행률 값을 사용해 가장 잘 저장된 게임을 결정하는 경우에 적합합니다. 게임을 저장할 때 SnapshotMetadataChange::Builder::SetPlayedTime() 정책을 사용해야 이 정책이 의미가 있다는 점에 유의하세요.

개방형

void Open(
  DataSource data_source,
  const std::string & file_name,
  SnapshotConflictPolicy conflict_policy,
  OpenCallback callback
)

지정된 이름의 스냅샷을 비동기식으로 엽니다.

지원 중단되었습니다. data_source는 무시됩니다. 대신 Open(file_name, conflict_policy, callback)를 사용하세요.

OpenBlocking

OpenResponse OpenBlocking(
  const std::string & file_name,
  SnapshotConflictPolicy conflict_policy
)

지정된 이름의 스냅샷을 동기식으로 엽니다.

지정된 스냅샷이 아직 없으면 새로 생성됩니다.

자세한 내용은 열기를 참고하세요.

OpenBlocking

OpenResponse OpenBlocking(
  Timeout timeout,
  const std::string & file_name,
  SnapshotConflictPolicy conflict_policy
)

지정된 이름의 스냅샷을 동기식으로 엽니다.

지정된 스냅샷이 아직 없으면 새로 생성됩니다.

timeout을 밀리초 단위로 지정합니다.

자세한 내용은 열기를 참고하세요.

OpenBlocking

OpenResponse OpenBlocking(
  DataSource data_source,
  const std::string & file_name,
  SnapshotConflictPolicy conflict_policy
)

지정된 이름의 스냅샷을 동기식으로 엽니다.

지원 중단되었습니다. data_source는 무시됩니다. 대신 OpenBlocking(file_name, conflict_policy)를 사용하세요.

OpenBlocking

OpenResponse OpenBlocking(
  DataSource data_source,
  Timeout timeout,
  const std::string & file_name,
  SnapshotConflictPolicy conflict_policy
)

지정된 이름의 스냅샷을 동기식으로 엽니다.

지원 중단되었습니다. data_source는 무시됩니다. 대신 OpenBlocking(timeout, file_name, conflict_policy)를 사용하세요.

읽기

void Read(
  const SnapshotMetadata & snapshot_metadata,
  ReadCallback callback
)

비동기식으로 디스크에서 스냅샷을 읽고 메모리에 복사합니다.

데이터는 쉽게 수정할 수 있도록 값에 의해 다시 전달됩니다. 이 함수를 호출할 때마다 전체 읽기가 수행됩니다. 즉, 일반적으로 스냅샷을 한 번만 읽는 것이 가장 좋습니다. 작업 완료 시 제공된 ReadCallback를 호출합니다.

ReadBlocking

ReadResponse ReadBlocking(
  const SnapshotMetadata & snapshot_metadata
)

동기식으로 디스크에서 스냅샷을 읽고 메모리에 복사합니다.

데이터는 쉽게 수정할 수 있도록 값에 의해 다시 전달됩니다. 이 함수를 호출할 때마다 전체 읽기가 수행됩니다. 즉, 일반적으로 스냅샷을 한 번만 읽는 것이 가장 좋습니다. timeout을 지정하지 않으면 이 함수 호출은 timeout를 10년으로 지정한 ReadBlocking ReadBlocking(Timeout timeout, const SnapshotMetadata& snapshot_metadata)을 호출하는 것과 동일합니다.

ReadBlocking

ReadResponse ReadBlocking(
  Timeout timeout,
  const SnapshotMetadata & snapshot_metadata
)

동기식으로 디스크에서 스냅샷을 읽고 메모리에 복사합니다.

데이터는 쉽게 수정할 수 있도록 값에 의해 다시 전달됩니다. 이를 호출할 때마다 전체 읽기가 수행되므로 일반적으로 스냅샷을 한 번만 읽습니다. timeout을 밀리초 단위로 지정합니다.

ResolveConflict

void ResolveConflict(
  const std::string & conflict_id,
  const SnapshotMetadata & snapshot_metadata,
  OpenCallback callback
)

제공된 스냅샷의 데이터를 사용하여 충돌을 비동기식으로 해결합니다.

서버의 데이터가 지정된 스냅샷으로 대체됩니다. 이 작업 자체로 충돌이 발생할 수 있으며, 이 경우 해결을 반복해야 합니다.

이미 커밋되었거나 Open을 통해 열지 않은 스냅샷으로 이 메서드를 호출하면 BaseStatus::ERROR_INTERNAL 상태와 함께 실패합니다.

작업 완료 시 제공된 OpenCallback를 호출합니다.

ResolveConflict

void ResolveConflict(
  const std::string & conflict_id,
  const SnapshotMetadata & snapshot_metadata,
  const SnapshotMetadataChange & metadata_change,
  std::vector< uint8_t > contents,
  OpenCallback callback
)

제공된 데이터를 사용하여 충돌을 비동기적으로 해결합니다.

이렇게 하면 서버의 데이터가 지정된 메타데이터 변경사항 및 contents로 대체됩니다. 이 작업 자체로 충돌이 발생할 수 있으며, 이 경우 해결을 반복해야 합니다.

메타데이터 변경사항에 포함되지 않은 값은 현재 서버에 있는 버전으로 확인됩니다.

contents의 총 크기는 GetMaxSize에서 제공하는 maxDataSize를 초과할 수 없습니다.

이미 커밋되었거나 Open을 통해 열지 않은 스냅샷으로 이 메서드를 호출하면 BaseStatus::ERROR_INTERNAL 상태와 함께 실패합니다.

작업 완료 시 제공된 OpenCallback를 호출합니다.

ResolveConflictBlocking

OpenResponse ResolveConflictBlocking(
  const std::string & conflict_id,
  const SnapshotMetadata & snapshot_metadata
)

제공된 스냅샷의 데이터를 사용하여 동기식으로 충돌을 해결합니다.

서버의 데이터가 지정된 스냅샷으로 대체됩니다. 이 작업 자체로 충돌이 발생할 수 있으며, 이 경우 해결을 반복해야 합니다.

이미 커밋되었거나 Open을 통해 열지 않은 스냅샷으로 이 메서드를 호출하면 BaseStatus::ERROR_INTERNAL 상태와 함께 실패합니다.

ResolveConflictBlocking

OpenResponse ResolveConflictBlocking(
  const std::string & conflict_id,
  const SnapshotMetadata & snapshot_metadata,
  const SnapshotMetadataChange & metadata_change,
  std::vector< uint8_t > contents
)

제공된 데이터를 사용하여 동기식으로 충돌을 해결합니다.

이렇게 하면 서버의 데이터가 지정된 메타데이터 변경사항 및 contents로 대체됩니다. 이 작업 자체로 충돌이 발생할 수 있으며, 이 경우 해결을 반복해야 합니다.

메타데이터 변경사항에 포함되지 않은 값은 현재 서버에 있는 버전으로 확인됩니다.

contents의 총 크기는 GetMaxSize에서 제공하는 maxDataSize를 초과할 수 없습니다.

이미 커밋되었거나 Open을 통해 열지 않은 스냅샷으로 이 메서드를 호출하면 BaseStatus::ERROR_INTERNAL 상태와 함께 실패합니다.

ResolveConflictBlocking

OpenResponse ResolveConflictBlocking(
  Timeout timeout,
  const std::string & conflict_id,
  const SnapshotMetadata & snapshot_metadata
)

제공된 스냅샷의 데이터를 사용하여 동기식으로 충돌을 해결합니다.

서버의 데이터가 지정된 스냅샷으로 대체됩니다. 이 작업 자체로 충돌이 발생할 수 있으며, 이 경우 해결을 반복해야 합니다.

이미 커밋되었거나 Open을 통해 열지 않은 스냅샷으로 이 메서드를 호출하면 BaseStatus::ERROR_INTERNAL 상태와 함께 실패합니다.

timeout을 밀리초 단위로 지정합니다.

ResolveConflictBlocking

OpenResponse ResolveConflictBlocking(
  Timeout timeout,
  const std::string & conflict_id,
  const SnapshotMetadata & snapshot_metadata,
  const SnapshotMetadataChange & metadata_change,
  std::vector< uint8_t > contents
)

제공된 데이터를 사용하여 동기식으로 충돌을 해결합니다.

이렇게 하면 서버의 데이터가 지정된 메타데이터 변경사항 및 contents로 대체됩니다. 이 작업 자체로 충돌이 발생할 수 있으며, 이 경우 해결을 반복해야 합니다.

메타데이터 변경사항에 포함되지 않은 값은 현재 서버에 있는 버전으로 확인됩니다.

contents의 총 크기는 GetMaxSize에서 제공하는 maxDataSize를 초과할 수 없습니다.

이미 커밋되었거나 Open을 통해 열지 않은 스냅샷으로 이 메서드를 호출하면 BaseStatus::ERROR_INTERNAL 상태와 함께 실패합니다.

timeout을 밀리초 단위로 지정합니다.

ShowSelectUIOperation

void ShowSelectUIOperation(
  bool allow_create,
  bool allow_delete,
  uint32_t max_snapshots,
  const std::string & title,
  SnapshotSelectUICallback callback
)

스냅샷 UI를 비동기식으로 표시하여 플레이어가 스냅샷을 선택하거나 새 스냅샷을 요청할 수 있습니다.

완료되면 선택한 스냅샷 또는 새 스냅샷 요청이 SnapshotSelectUICallback를 통해 반환됩니다.

ShowSelectUIOperationBlocking

SnapshotSelectUIResponse ShowSelectUIOperationBlocking(
  Timeout timeout,
  bool allow_create,
  bool allow_delete,
  uint32_t max_snapshots,
  const std::string & title
)

ShowSelectUIOperation의 차단 버전을 사용합니다.

호출자가 시간 제한을 밀리초 단위로 지정할 수 있도록 허용합니다. 지정된 시간이 지나면 함수가 ERROR_TIMEOUT을 반환합니다.

ShowSelectUIOperationBlocking

SnapshotSelectUIResponse ShowSelectUIOperationBlocking(
  bool allow_create,
  bool allow_delete,
  uint32_t max_snapshots,
  const std::string & title
)

ShowSelectUIOperationBlocking의 오버로드로 기본 시간 제한 10년을 사용합니다.