/********************************************************************************
*		ソースファイル名：CollectSETTING1.h										
*		用            途：設定１データ収集クラス									
*		備            考：														
*		履            歴：														
********************************************************************************/
/****************************
*   コンパイル環境定数	    *
****************************/
#pragma once
/****************************
*   インクルードファイル    *
****************************/
#include "CollectCommon.h"
#include "Thread.h"
#include "MemManager.h"
#include "RingQueue.h"
#include "ParameterManager.h"
/****************************
*        マクロ定義			*
****************************/
/****************************
*        構造体定義		    *
****************************/
/****************************
*        クラス定義		    *
****************************/
// CCollectSETTING1
class CCollectSETTING1 : public CThread 
{

public:
	// 公開メソッド
									CCollectSETTING1();
	virtual							~CCollectSETTING1();

									CCollectSETTING1(const CCollectSETTING1* p);
									CCollectSETTING1(const CCollectSETTING1& p);
									CCollectSETTING1& operator =(const CCollectSETTING1& p);

	//インスタンス取得（初回は生成）
	static	CCollectSETTING1&	GetInstance(void);

			BOOL					Initialize			( CRingQueue* pSETTING1Queue ) ;	// 初期化
			void					ClearData			() ;							// データクリア

protected:
	virtual	BOOL					IsNewFolder();
	virtual BOOL					MakeFolderName(CString *str);

private:
	// 非公開メソッド
	virtual	BOOL					Main();												// スレッドの処理実体
			INT32					Wait( UINT32 uWaitTime_ms ) ;						// 待機する

			BOOL					FindSETTING1File	  ( CString strInputPath, CString* pstrFilePath ) ;		// 設定１データファイル検索
			BOOL					AnalyzeSETTING1File( CString strFilePath ) ;								// 設定１データファイル解析
			void					UpFolderCopy	  ( INT32 nUpCount, CString strSrcPath, CString* pstrDstPath ) ;
private:
	// 非公開メンバー
			BOOL					m_bInitialize ;					// 初期化完了フラグ
			P_PARAM_COLLECT			m_tpParam ;						// パラメータ構造体ポインタ
			BOOL					m_bInputPath ;					// 入力元パス有効フラグ
			CString					m_strInputPath ;				// CSVデータ入力元パス

			SETTING1_DATA			m_tSETTING1Data ;				// 設定１データ構造体
			CRingQueue			   *m_pSETTING1Queue ;				// 設定１データ格納キュー

			INT32					m_nFileCnt;						// 現在のファイル数
			INT32					m_nFileMax;						// １フォルダー内のファイル数上限
			CString					m_strFolder;					// ファイル格納サブフォルダ名
};			

/****************************
*         関数 宣言		    *
****************************/
/****************************
*		　変数　宣言	    *
****************************/
/****************************
*   コンパイル環境定数	    *
****************************/

