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

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

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

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

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

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

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

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

			SETTING3_DATA			m_tSETTING3Data ;				// 設定3データ構造体
			CRingQueue			   *m_pSETTING3Queue ;				// 設定3データ格納キュー

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

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

