/*******************************************************************************
*	ファイル名：DataCollectDoc.h
*	用　　　途：ドキュメントクラス定義
*	備　　　考：
*	履　　　歴：
********************************************************************************/

/****************************
*	 コンパイル環境設定		*
****************************/
#pragma once

/****************************
*	インクルードファイル	*
****************************/
#include "Common.h"
#include "ParameterManager.h"
#include "WMes.h"
#include "RingQueue.h"
#include "CollectMining.h"
#include "CollectSetting1.h"
#include "CollectSetting2.h"
#include "CollectSetting3.h"
#include "CollectSetting4.h"
#include "DataToDB.h"
#include "CollectProductInfo.h"
/****************************
*	　マクロ・定数定義		*
****************************/
/// 更新通知コード( UpdateDocument用 ) 
#define UPDATE_PARAMS					1000

#define	INIT_ERROR_PARAM_LOAD_INIT		0x0001
#define	INIT_ERROR_QUEUE				0x0002
#define	INIT_ERROR_COLLECT				0x0004
#define	INIT_ERROR_DATA_TO_DB			0x0008

/*******************************************************************************
*	ク ラ ス名：CDataCollectDoc
*	用　　　途：ドキュメントクラス
*	備　　　考：
********************************************************************************/
class CDataCollectDoc : public CDocument
{
protected:
	//***** コンストラクタ・デストラクタ
	// ※隠蔽コンストラクタ (シリアル化からのみ作成します。)
									CDataCollectDoc();
public:
	virtual						   ~CDataCollectDoc();

protected:
	//***** 動的生成マクロ
									DECLARE_DYNCREATE( CDataCollectDoc )

public:
	//***** 公開メソッド
			CView*					GetFirstView	() const ;												// ビューリスト先頭のビューを取得する
			void					InitialUpdateView( CView* pView ) ;										// ビューの初回更新を通知します
			void					UpdateDocument	( 
														CObject* pSender	= NULL,								 
														LPARAM	 lNotifCode = 0
													) ;														// ドキュメントの更新通知を行う
			void					OnTermDocument	() ;													// ドキュメントの終了処理

			void					PreTermDocument	() ;													// 終了準備処理
			BOOL					GetInitilize	() { return m_bInitialize ; } ;							// 初期化フラグ取得

public:
	//***** 公開オーバーライド
	virtual BOOL					OnNewDocument() ;														// 新規ドキュメントの生成時処理
	virtual void					OnCloseDocument() ;														// ドキュメントの終了処理
	virtual void					Serialize( CArchive& ar ) ;												// ドキュメントの入出力を行う

// 実装
#ifdef _DEBUG
	//***** デバッグ・正当性評価
	virtual void					AssertValid() const ;
	virtual void					Dump( CDumpContext& dc ) const ;
#endif

protected:
	//***** 内部メソッド
			void					OnInitDocument() ;				// ドキュメントの初期化処理
			void					PresetFileSweeper() ;			// 古いファイルの削除設定
			void					SetInitError( WORD wError ) ;

	//***** イベントハンドラ
									DECLARE_MESSAGE_MAP()
private:
	//***** 非公開メソッド
			BOOL					SetupLog		() ;			// ログセットアップ
private:
	//***** 非公開メンバー変数
			BOOL					m_bInitialize ;
			CRingQueue				m_MiningQueue ;					// マイニングデータ格納キュー
			CRingQueue				m_SETTING1Queue ;				// 設定１データ格納キュー
			CRingQueue				m_SETTING2Queue ;				// 設定２データ格納キュー
			CRingQueue				m_SETTING3Queue ;				// 設定３データ格納キュー
			CRingQueue				m_SETTING4Queue ;				// 設定4データ格納キュー
			CRingQueue				m_KindDataQueue ;				// 車種データ格納キュー
			CRingQueue				m_ProductsInfoQueue;			// 生産情報格納キュー


} ;


