/// <summary> /// モデルデータを保存する /// </summary> /// <param name="license">保存するダウンロードライセンス</param> /// <param name="downloadedData">保存するバイナリデータ</param> public void Save(DownloadLicense license, byte[] downloadedData) { if (LocalStorage.HasKey(license.character_model_id)) { CachedLicense before = LocalStorage.GetGenericObject<CachedLicense>(license.character_model_id); _deleteFunc(before.filePath); } var newCachedLicense = new CachedLicense(license); _encryptFunc(newCachedLicense.filePath, downloadedData); newCachedLicense.Save(); }
/// <summary> /// モデルデータをロードする /// </summary> /// <param name="license">ロードに使用するダウンロードライセンス</param> /// <returns>ロードしたバイナリデータ</returns> /// <exception cref="FileNotFoundException">ファイルが存在しない</exception> /// <exception cref="CryptographicException">ファイルの復号に失敗</exception> public byte[] Load(DownloadLicense license) { if (!LocalStorage.HasKey(license.character_model_id)) { throw new FileNotFoundException(string.Format("CharacterModel {0} is not found", license.character_model_id)); } CachedLicense cachedLicense = LocalStorage.GetGenericObject <CachedLicense>(license.character_model_id); byte[] binary = _decryptFunc(cachedLicense.filePath); cachedLicense.UpdateLastAccessTime(); cachedLicense.Save(); return(binary); }