/// <summary> /// ストリームを開く /// </summary> /// <param name="board">書き込む板のヘッダ情報</param> /// <param name="modeRead">ストレージを開く方法</param> public override bool Open(BoardInfo board, StorageMode mode) { if (board == null) { throw new ArgumentNullException("board"); } if (isOpen) { throw new InvalidCastException("既にストリームが開かれています"); } // 書き込み先ファイル名 string filePath = Path.Combine(cache.GetFolderPath(board), "subject.txt"); // ストリームを開く if (mode == StorageMode.Read) { baseStream = StreamCreator.CreateReader(filePath, false); } else { baseStream = StreamCreator.CreateWriter(filePath, false, false); } // パーサを初期化 dataParser = new X2chThreadListParser(board.Bbs, encoding); this.index = 1; this.position = 0; this.mode = mode; this.isOpen = true; this.boardInfo = board; return(true); }
/// <summary> /// ThreadListReaderBaseクラスのインスタンスを初期化 /// </summary> /// <param name="parser">スレッド一覧の解析に使用するパーサー</param> public ThreadListReaderBase(ThreadListParser parser) : this() { // // TODO: コンストラクタ ロジックをここに追加してください。 // dataParser = parser; }
/// <summary> /// ストリームを閉じる /// </summary> public override void Close() { if (baseStream != null) { baseStream.Close(); } dataParser = null; baseStream = null; boardInfo = null; buffer = null; position = 0; isOpen = false; }
/// <summary> /// パーサを指定して、X2chThreadListReaderクラスのインスタンスを初期化 /// </summary> /// <param name="dataParser">データの解析に使用するパーサー</param> public X2chThreadListReader(ThreadListParser dataParser) : base(dataParser) { }
/// <summary> /// パーサを指定してMachiThreadListReaderクラスのインスタンスを初期化 /// </summary> public MachiThreadListReader(ThreadListParser dataParser) : base(dataParser) { }