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