/// <summary> /// monalog形式のスレッドをキャッシュとして保存 /// </summary> /// <param name="cache"></param> /// <param name="filePath"></param> /// <returns></returns> public static ThreadHeader OpenMonalog(Cache cache, string filePath) { ResSetCollection resItems = null; ThreadHeader header = null; MonalogConverter conv = new MonalogConverter(); conv.Read(filePath, out header, out resItems); using (LocalThreadStorage storage = new LocalThreadStorage(cache, header, StorageMode.Write)) { storage.Write(resItems); } ThreadIndexer.Write(cache, header); return(header); }
/// <summary> /// スレッドをmonalog形式で保存 /// </summary> /// <param name="cache">キャッシュ情報</param> /// <param name="header">保存するスレッド</param> /// <param name="filePath">保存先ファイルパス</param> public static void SaveMonalog(Cache cache, ThreadHeader header, string filePath) { if (filePath == null) { throw new ArgumentNullException("filePath"); } if (cache == null) { throw new ArgumentNullException("cache"); } if (header == null) { throw new ArgumentNullException("header"); } // datの存在するパスを取得 string fromPath = cache.GetDatPath(header); MonalogConverter conv = new MonalogConverter(); ThreadStorage reader = null; ResSetCollection items = new ResSetCollection(); try { reader = new LocalThreadStorage(cache, header, StorageMode.Read); while (reader.Read(items) != 0) { ; } conv.Write(filePath, header, items); } finally { if (reader != null) { reader.Close(); } } }