1 /*!
  2  * @include "_NameSpace.js"
  3  * @include "Category.js"
  4  * @include "ThreadItem.js"
  5  */
  6 
  7 /**
  8  * 板一覧の個別の板を参照するオブジェクトで、板にあるスレのThreadItemオブジェクトを保持する。
  9  * また、板に固有の情報への参照にも使用する
 10  * @class _JVS.Board
 11  */
 12 _JVS.Board = function(){
 13 	/**
 14 	 * Boardオブジェクトが参照する板が属するカテゴリのCategoryオブジェクト
 15 	 * Action:○ LateCall:○ Command:○
 16 	 * @type _JVS.Category
 17 	 */
 18 	this.Category = null;
 19 	
 20 	/**
 21 	 * 参照先のBoardの実体が存在しているかどうか
 22 	 * true  存在しており、アクセス可能
 23 	 * false 削除されており、アクセス不可
 24 	 * 
 25 	 * ※板は板一覧の更新を行ったときに参照がなければ再作成されるため、Boardオブジェクトの取得後に
 26 	 * 板一覧が更新されると高率でConnectedはfalseになり、その後のそのBoardオブジェクトに
 27 	 * アクセスするとエラーになる。
 28 	 * (Boardオブジェクトへの参照があっても、実体の板が開いていなければ再作成の対象になる)
 29 	 * その場合は改めてBoardオブジェクトを取得する必要がある。
 30 	 * 
 31 	 * BoardオブジェクトのLoadを実行すると板がBoardオブジェクトから内部的にオープンされた状態に
 32 	 * なるため、Boardオブジェクトが参照されている間の再作成を防ぐことができる
 33 	 * 
 34 	 * Action:○ LateCall:○ Command:○
 35 	 * @type bool
 36 	 */
 37 	this.Connected = true;
 38 	
 39 	/**
 40 	 * 板が現在保持しているスレの数
 41 	 * 
 42 	 * 板は開かれていなければ全てのレスを読み込んでいるのではなく、参照のあるスレだけを保持している。
 43 	 * この状態でCountを取得すると、そのとき保持しているスレの数が帰る。板に属する全てのスレの数を
 44 	 * 知りたい場合は、Board.Loadを実行してからCountを取得する必要がある。
 45 	 * Actionの中からはBoard.Loadが実行できず、またBoardAnalysisActionの場合ステージによってはスレを
 46 	 * 別な場所に一時的に移すことがあり、Board.Countは取得できるが正しい値にならない場合がある。
 47 	 * 
 48 	 * Action:△ LateCall:○ Command:○
 49 	 * @type int
 50 	 */
 51 	this.Count = 1;
 52 	
 53 	/**
 54 	 * その板でのスレ容量警告の設定値。該当の板に属するスレがこの容量を超えると板一覧のアイコンと
 55 	 * スレタブの着色による警告表示が行われる。この値はBoardCustomize.iniにより設定される。単位はbyte。
 56 	 * @type int
 57 	 */
 58 	this.DatSizeAlert = 400 * 1024;
 59 	
 60 	/**
 61 	 * 板の中からdat名を元にスレを検索し、ThreadItemオブジェクトを返す
 62 	 * 板が開かれていない場合は処理の中でBoard.Loadが呼び出される
 63 	 * このため、板が開かれていない場合はActionからの呼び出しはエラーになる。
 64 	 * また、BoardAnalysisActionからの呼び出しは解析のステージによっては正しい結果が得られない)
 65 	 * Action:△ LateCall:○ Command:○
 66 	 * @param {String} datName 検索するスレのdat名(datファイルのファイル名から拡張子(.dat)を取り除いたもの)
 67 	 * @return {_JVS.ThreadItem} 検索で見つかったスレのThreadItemオブジェクト。該当するスレがなかった場合はundefined
 68 	 */
 69 	this.FindThread = function(datName){return null;};
 70 	
 71 	/**
 72 	 * 板が現在保持しているスレのThreadItemオブジェクトを取得する
 73 	 * 
 74 	 * 板は開かれていなければ全てのレスを読み込んでいるのではなく、参照のあるスレだけを保持している。
 75 	 * 板に属する全てのスレを参照したいときは、あらかじめBoard.Loadを実行し、その後でindex=0~Count-1
 76 	 * のThreadItemを取得する必要がある。
 77 	 * Actionの中からはBoard.Loadが実行できないのでその時点で読み込まれているスレの取得しかできない。
 78 	 * 
 79 	 * Action:△ LateCall:○ Command:○
 80 	 * @param {int} Index 取得するスレの現時点での板の中でのインデックス
 81 	 * @return {_JVS.ThreadItem} 該当のスレを参照したThreadItemオブジェクト
 82 	 */
 83 	this.GetThread = function(Index){return new null;};
 84 	
 85 	/**
 86 	 * 板のSubject.txtのGMTでの最終更新時刻(httpレスポンスヘッダから取得したもの)
 87 	 * Action:○{BoardAnalysisAction:×} LateCall:○ Command:○
 88 	 * @type String
 89 	 */
 90 	this.LastModified = "Thu, 01 Jan 1970 00:00:00 GMT";
 91 	
 92 	/**
 93 	 * 板を内部的にオープン状態にして、ログフォルダのSubject.txtおよびスレの情報を読み込む。
 94 	 * 内部的なオープン状態はBoardオブジェクトへの全ての参照がなくなるまで継続される。
 95 	 * Action:× LateCall:○ Command:○
 96 	 */
 97 	this.Load = function(){};
 98 	
 99 	/**
100 	 * 板のディレクトリ。ここにsubject.txtやスレのidx、datが置かれている。
101 	 * Action:○ LateCall:○ Command:○
102 	 * @type String
103 	 */
104 	this.LogDir = "Logs\\Category\\Board\\";
105 	
106 	/**
107 	 * 該当の板にあるスレの最大レス数の設定値。取得レス数がこの値を超えたスレはdat落ちと見なされる。
108 	 * この値はBoardCustomize.iniにより設定される。
109 	 * Action:○ LateCall:○ Command:○
110 	 * @type int
111 	 */
112 	this.MaxResNum = 1000;
113 	
114 	/**
115 	 * 板の名称(例: Win板ならば"Windows")
116 	 * Action:○ LateCall:○ Command:○
117 	 * @type String
118 	 */
119 	this.Name = "Windows";
120 	
121 	/**
122 	 * システムでは使用/制御しない。
123 	 * スクリプトが板に固有の情報を保持させたい場合にこのプロパティに代入しておく。
124 	 * スクリプトごとに保存領域が分けられているので、同じBoardに対してA.jsとB.jsが別々に
125 	 * Board.Objを設定できる。逆に、他のスクリプトが設定したObjを参照することはできない。
126 	 * スクリプトからの参照がなくなってもObjは保持され、再度スクリプトから参照すれば値を取得可能
127 	 * ただし、板一覧の更新などによりBoardが参照する板の実体が再作成された場合はObjも失われる。
128 	 * @type Object
129 	 */
130 	this.Obj = null;
131 	
132 	/**
133 	 * 板のURL(例: Win板ならば"http://pc12.2ch.net/win/")
134 	 * Action:○ LateCall:○ Command:○
135 	 * @type String
136 	 */
137 	this.Url = "http://pc12.2ch.net/win/";
138 };
139