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

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

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

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

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

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

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

			BOOL					FindProductInfoFile( CString strInputPath, CString* pstrFilePath ) ;		// 生産情報データファイル検索
			BOOL					AnalyzeProductInfoFile( 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データ入力元パス


			PRODUCTSINFO_DATA		m_tProductsInfoData;
			CRingQueue			   *m_pProductsInfoDataQueue;

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

};			

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

