Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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();
                }
            }
        }