61 lines
1.6 KiB
Ucode
61 lines
1.6 KiB
Ucode
|
/**
|
||
|
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
|
||
|
*
|
||
|
* A Cloud Save System KVS that utilizes the CloudStorageBase implementation.
|
||
|
*/
|
||
|
class CloudStorageBaseCloudSaveSystemKVS extends Object
|
||
|
implements(CloudSaveSystemKVSInterface)
|
||
|
dependson(CloudStorageBase);
|
||
|
|
||
|
/*Instance of the cloud storage that this Save System KVS will utilize*/
|
||
|
var transient private CloudStorageBase CloudStorage;
|
||
|
|
||
|
/*
|
||
|
*Initializes the KVS system for use.
|
||
|
*
|
||
|
*@param InCloudStorage the instance of ClousStorageBase to use for KVS.
|
||
|
*@param List of all keys that will be utilized with this
|
||
|
*/
|
||
|
final function Init(CloudStorageBase InCloudStorage)
|
||
|
{
|
||
|
CloudStorage = InCloudStorage;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
*Reads a key value for the given save slot
|
||
|
*/
|
||
|
function bool ReadKeyValue(int SaveSlotIndex, string KeyName, EPlatformInterfaceDataType Type, out PlatformInterfaceDelegateResult Value)
|
||
|
{
|
||
|
local string SaveSlotKeyName;
|
||
|
|
||
|
if (CloudStorage == None)
|
||
|
{
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
SaveSlotKeyName = GenerateKeyNameForSaveSlot(SaveSlotIndex, KeyName);
|
||
|
|
||
|
return CloudStorage.ReadKeyValue(SaveSlotKeyName, Type, Value);
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
*Writes a key value for the given slot
|
||
|
*/
|
||
|
function bool WriteKeyValue(int SaveSlotIndex, string KeyName, const out PlatformInterfaceData Value)
|
||
|
{
|
||
|
local string SaveSlotKeyName;
|
||
|
|
||
|
if (CloudStorage == None)
|
||
|
{
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
SaveSlotKeyName = GenerateKeyNameForSaveSlot(SaveSlotIndex, KeyName);
|
||
|
|
||
|
return CloudStorage.WriteKeyValue(SaveSlotKeyName, Value);
|
||
|
}
|
||
|
|
||
|
final function private string GenerateKeyNameForSaveSlot(int SaveSlotIndex, string KeyName)
|
||
|
{
|
||
|
return SaveSlotIndex$KeyName;
|
||
|
}
|