/*-----------------------------------------------------------------------------
[名称]	BackUp.h
[概要]	バックアップクラスのヘッダ
[備考]	なし
[履歴]	2003-04-23	NC		コメント付加(moralog)
-----------------------------------------------------------------------------*/
#if !defined(AFX_BACKUP_H_INCLUDED_)
#define AFX_BACKUP_H_INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000


//-----------------------------------------------------------------------------
// インクルード
//-----------------------------------------------------------------------------
class CShitarabianDoc;


/*-----------------------------------------------------------------------------
[名称]	バックアップクラス
[用途]	文書をバックアップする。
[備考]	バックアップファイルのフォルダ構成はDocumentSave() を参照。
		singletonパターン。
-----------------------------------------------------------------------------*/
class CBackUp
{
public:
	// 破棄
	virtual ~CBackUp();

	// インスタンスの取得
	static CBackUp*	GetInstance();

// アトリビュート
	// オートセーブ時間間隔の設定
	void	SetInterval( UINT uiInterval ){ m_uiInterval = uiInterval; };

	// オートセーブ時間間隔の取得
	long	GetInterval(){ return( m_uiInterval ); };

	// 自動削除までの日数の設定
	void	SetConsumeByDate( UINT uiConsumeByDate ){ m_uiConsumeByDate = uiConsumeByDate; };

	// 自動削除までの日数の取得
	long	GetConsumeByDate(){ return( m_uiConsumeByDate ); };

	// 自動保存有効有無設定
	BOOL	GetEnable(){ return( m_bEnable ); };

	// 自動保存有効有無取得設定
	void	SetEnable( BOOL bEnable ){ m_bEnable = bEnable; };

// オペレーション
	// 文書保存
	void	DocumentSave( CShitarabianDoc* pDoc );

	// 設定の保存
	BOOL	Write( CString& strGeneralFilename );

	// 設定の読み込み
	BOOL	Read( CString& strGeneralFilename );

	// 年数が経過したバックアップの削除
	BOOL	DeleteBackup();

protected:
	BOOL	m_bEnable;				// オートセーブ有無 [-] (TRUE:有、FALSE:無)
	UINT	m_uiInterval;			// オートセーブ時間間隔 [s] (-)
	UINT	m_uiConsumeByDate;		// 自動削除までの日数 [日] (-)

	// 隠蔽されたコンストラクタ
	CBackUp();
};

#endif // !defined(AFX_BACKUP_H_INCLUDED_)
