13b7203622 2011-02-23 kinaba: // NoahAM.h 13b7203622 2011-02-23 kinaba: //-- CNoahArchiverManager -- control many archiver routines -- 13b7203622 2011-02-23 kinaba: 13b7203622 2011-02-23 kinaba: #ifndef AFX_NOAHAM_H__CCE30761_D91B_4570_931A_6C165B19B22F__INCLUDED_ 13b7203622 2011-02-23 kinaba: #define AFX_NOAHAM_H__CCE30761_D91B_4570_931A_6C165B19B22F__INCLUDED_ 13b7203622 2011-02-23 kinaba: 13b7203622 2011-02-23 kinaba: #include "Archiver.h" 13b7203622 2011-02-23 kinaba: 13b7203622 2011-02-23 kinaba: class CNoahArchiverManager 13b7203622 2011-02-23 kinaba: { 13b7203622 2011-02-23 kinaba: public: //-- 外向けインターフェイス ------------ 13b7203622 2011-02-23 kinaba: 13b7203622 2011-02-23 kinaba: // 初期化 13b7203622 2011-02-23 kinaba: void init(); 13b7203622 2011-02-23 kinaba: 13b7203622 2011-02-23 kinaba: // ファイルリストを記憶 13b7203622 2011-02-23 kinaba: unsigned long set_files( const cCharArray& files ); 13b7203622 2011-02-23 kinaba: unsigned long file_num() { return m_FName.len(); } 13b7203622 2011-02-23 kinaba: const kiPath& get_basepath() { return m_BasePath; } 13b7203622 2011-02-23 kinaba: bool map_melters( int mode ); 13b7203622 2011-02-23 kinaba: bool map_compressor( const char* ext, const char* method, bool sfx ); 13b7203622 2011-02-23 kinaba: 13b7203622 2011-02-23 kinaba: // 解凍( 解凍先Dir以外の情報は中で勝手に取得します ) 13b7203622 2011-02-23 kinaba: void do_melting( kiPath& destdir ); 13b7203622 2011-02-23 kinaba: // 閲覧( 解凍先Dir以外の情報は中で勝手に取得します ) 13b7203622 2011-02-23 kinaba: void do_listing( kiPath& destdir ); 13b7203622 2011-02-23 kinaba: // 圧縮 13b7203622 2011-02-23 kinaba: void do_compressing( kiPath& destdir, bool each ); 13b7203622 2011-02-23 kinaba: 13b7203622 2011-02-23 kinaba: 13b7203622 2011-02-23 kinaba: // バージョン情報 13b7203622 2011-02-23 kinaba: void get_version( kiStr& str ); 13b7203622 2011-02-23 kinaba: // 圧縮形式リスト 13b7203622 2011-02-23 kinaba: void get_cmpmethod( const char* set, int& def_mhd, StrArray& mhd_list, bool need_ext=false, cCharArray* ext_list=NULL ); 13b7203622 2011-02-23 kinaba: // b2eが一個以上読み込まれていればtrue 13b7203622 2011-02-23 kinaba: bool b2e_enabled() { return m_b2e; } 13b7203622 2011-02-23 kinaba: 13b7203622 2011-02-23 kinaba: 13b7203622 2011-02-23 kinaba: private: //-- 内部処理 --------------------------- 13b7203622 2011-02-23 kinaba: 13b7203622 2011-02-23 kinaba: // 2重フォルダ解消など 13b7203622 2011-02-23 kinaba: bool break_ddir( kiPath& dir, bool onlydir ); 13b7203622 2011-02-23 kinaba: CArchiver* fromExt( const char* ext ); 13b7203622 2011-02-23 kinaba: void generate_dirname( const char* src, kiPath& dst, bool rmn ); 13b7203622 2011-02-23 kinaba: 13b7203622 2011-02-23 kinaba: kiPath m_BasePath; 13b7203622 2011-02-23 kinaba: wfdArray m_FName; 13b7203622 2011-02-23 kinaba: kiArray<CArchiver*> m_AList; 13b7203622 2011-02-23 kinaba: kiArray<kiPath> m_BasePathList; 13b7203622 2011-02-23 kinaba: bool m_b2e; 13b7203622 2011-02-23 kinaba: 13b7203622 2011-02-23 kinaba: // 解凍用割り当て 13b7203622 2011-02-23 kinaba: kiArray<CArchiver*> m_Melters; 13b7203622 2011-02-23 kinaba: // 圧縮用割り当て 13b7203622 2011-02-23 kinaba: CArchiver* m_Compressor; 13b7203622 2011-02-23 kinaba: int m_Method; 13b7203622 2011-02-23 kinaba: bool m_Sfx; 13b7203622 2011-02-23 kinaba: 13b7203622 2011-02-23 kinaba: public: 13b7203622 2011-02-23 kinaba: ~CNoahArchiverManager() 13b7203622 2011-02-23 kinaba: { 13b7203622 2011-02-23 kinaba: for( unsigned int i=0; i!=m_AList.len(); i++ ) 13b7203622 2011-02-23 kinaba: delete m_AList[i]; 13b7203622 2011-02-23 kinaba: } 13b7203622 2011-02-23 kinaba: }; 13b7203622 2011-02-23 kinaba: 13b7203622 2011-02-23 kinaba: #endif