예제 #1
0
 /// <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();
 }
예제 #2
0
        /// <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);
        }