Artifact Content

Not logged in

Artifact 1bc7e46b14f145cf09f9a8189bc1a79b28e472fa


     1  // NoahAM.h
     2  //-- CNoahArchiverManager -- control many archiver routines --
     3  
     4  #ifndef AFX_NOAHAM_H__CCE30761_D91B_4570_931A_6C165B19B22F__INCLUDED_
     5  #define AFX_NOAHAM_H__CCE30761_D91B_4570_931A_6C165B19B22F__INCLUDED_
     6  
     7  #include "Archiver.h"
     8  
     9  class CNoahArchiverManager
    10  {
    11  public: //-- 外向けインターフェイス ------------
    12  
    13  	// 初期化
    14  	void init();
    15  
    16  	// ファイルリストを記憶
    17  	unsigned long set_files( const cCharArray& files );
    18  	unsigned long file_num() { return m_FName.len(); }
    19  	const kiPath& get_basepath() { return m_BasePath; }
    20  	bool map_melters( int mode );
    21  	bool map_compressor( const char* ext, const char* method, bool sfx );
    22  
    23  	// 解凍( 解凍先Dir以外の情報は中で勝手に取得します )
    24  	void do_melting( kiPath& destdir );
    25  	// 閲覧( 解凍先Dir以外の情報は中で勝手に取得します )
    26  	void do_listing( kiPath& destdir );
    27  	// 圧縮
    28  	void do_compressing( kiPath& destdir, bool each );
    29  
    30  
    31  	// バージョン情報
    32  	void get_version( kiStr& str );
    33  	// 圧縮形式リスト
    34  	void get_cmpmethod( const char* set, int& def_mhd, StrArray& mhd_list, bool need_ext=false, cCharArray* ext_list=NULL );
    35  	// b2eが一個以上読み込まれていればtrue
    36  	bool b2e_enabled() { return m_b2e; }
    37  
    38  
    39  private: //-- 内部処理 ---------------------------
    40  
    41  	// 2重フォルダ解消など
    42  	bool break_ddir( kiPath& dir, bool onlydir );
    43  	CArchiver* fromExt( const char* ext );
    44  	void generate_dirname( const char* src, kiPath& dst, bool rmn );
    45  
    46  	kiPath   m_BasePath;
    47  	wfdArray m_FName;
    48  	kiArray<CArchiver*> m_AList;
    49  	kiArray<kiPath> m_BasePathList;
    50  	bool m_b2e;
    51  
    52  	// 解凍用割り当て
    53  	kiArray<CArchiver*> m_Melters;
    54  	// 圧縮用割り当て
    55  	CArchiver* m_Compressor;
    56  	int        m_Method;
    57  	bool       m_Sfx;
    58  
    59  public:
    60  	~CNoahArchiverManager()
    61  		{
    62  			for( unsigned int i=0; i!=m_AList.len(); i++ )
    63  				delete m_AList[i];
    64  		}
    65  };
    66  
    67  #endif