gpg::
  #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) | voiddata_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) | 기본 제한 시간 10년을 사용하는 ShowSelectUIOperationBlocking의 오버로드입니다.  | 
| 구조체 | |
|---|---|
| gpg:: | 응답 상태와 함께 업데이트된 스냅샷의 데이터를 보유합니다. | 
| gpg:: | 응답 상태와 함께 모든 스냅샷의 모든 데이터를 보유합니다. | 
| gpg:: | 스냅샷 데이터 및 스냅샷 표지 이미지의 최대 크기를 보유합니다. | 
| gpg:: | 응답 상태와 함께 특정 요청된 스냅샷의 데이터를 보유합니다. | 
| gpg:: | 스냅샷 읽기 작업에서 반환된 응답 상태 및 스냅샷 데이터를 읽습니다. | 
| gpg:: | 
 | 
공개 유형
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_source가 CACHE_OR_NETWORK.로 지정된 FetchAll(DataSource data_source, FetchAllCallback callback)를 호출하는 것과 같습니다.
FetchAll
void FetchAll( DataSource data_source, FetchAllCallback callback )
현재 로그인한 플레이어의 모든 스냅샷 데이터를 비동기식으로 로드합니다.
작업 완료 시 제공된 FetchAllCallback를 호출합니다. data_source를 CACHE_OR_NETWORK 또는 NETWORK_ONLY로 지정합니다. 
FetchAllBlocking
FetchAllResponse FetchAllBlocking()
현재 로그인한 플레이어의 모든 스냅샷 데이터를 동기식으로 로드하여 FetchAllResponse를 직접 반환합니다. 
data_source 또는 timeout를 지정하지 않으면 이 함수 호출은 data_source가 CACHE_OR_NETWORK로 지정되고 timeout가 10년으로 지정된 FetchAllResponse FetchAllBlocking(DataSource data_source, Timeout timeout)를 호출하는 것과 동일합니다. 
FetchAllBlocking
FetchAllResponse FetchAllBlocking( DataSource data_source )
현재 로그인한 플레이어의 모든 스냅샷 데이터를 동기식으로 로드하여 FetchAllResponse를 직접 반환합니다. 
data_source를 CACHE_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_source가 CACHE_OR_NETWORK로 지정되고 timeout에 지정된 값이 포함된 FetchAllResponse FetchAllBlocking(DataSource data_source, Timeout timeout)를 호출하는 것과 같습니다. 
FetchAllBlocking
FetchAllResponse FetchAllBlocking( DataSource data_source, Timeout timeout )
현재 로그인한 플레이어의 모든 스냅샷 데이터를 동기식으로 로드하여 FetchAllResponse를 직접 반환합니다. 
data_source를 CACHE_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를 호출합니다.
스냅샷 이름은 URL 예약 문자 (a-z, A-Z, 0-9 또는 기호 '-', '.', '_', '~')가 아닌 문자 1~100자여야 합니다.
현재 기기에서 스냅샷을 로드하고 커밋하는 사이에 다른 기기에서 스냅샷을 커밋하면 충돌이 발생할 수 있습니다. 이러한 충돌을 해결해야 합니다. 충돌에 관한 자세한 내용은 위의 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 )
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 )
기본 제한 시간 10년을 사용하는 ShowSelectUIOperationBlocking의 오버로드입니다.
