acme
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages Concepts
aaa_in_file.h
1#pragma once
2
3
4namespace zip
5{
6
7
8 class file;
9
10
11 class CLASS_DECL_ACME in_file:
12 virtual public ::file::file,
13 virtual public ::file::listing_provider
14 {
15 public:
16
17
18 enum e_mode
19 {
20
21 mode_undefined,
22 mode_zip,
23 mode_unzip
24
25 };
26
27 enum BufferCommand
28 {
29
30 bufferRead,
31 bufferWrite,
32 bufferCommit,
33 bufferCheck
34
35 };
36
37
38 void * m_punzfileinfo;
39 string m_strFileName;
40 unsigned long long m_iPosition;
41 string_array m_straPath;
42 pointer_array < ::zip::file > m_filea;
43 pointer_array < ::zip::in_file > m_infilea;
44 string_array m_straPrefix;
45 e_mode m_emode;
46 string m_strZipFile;
47
48
49 in_file();
50 ~in_file() override;
51
52
53// // void assert_ok() const override;
54// // void dump(dump_context & dumpcontext) const override;
55
56
57
58
59 virtual filesize get_position() const override;
60
61 virtual bool zip_open(const char *,unsigned int);
62 virtual bool zip_open(::zip::file * pzfile,const ::file::path & path);
63
64
65 virtual bool unzip_open(::file::file * pfile, const string_array & = {}, int iBufferLevel = 2, ::file::enum_type * petype = nullptr);
66 virtual bool unzip_open(::zip::file * pzfile,const ::file::path & path);
67
68 //virtual bool unzip_open(const char *, ::file::enum_type * petype = nullptr);
69
70 virtual bool locate(const ::file::path & path);
71
72 //virtual void add_file(const ::file::path & pszDir,const ::file::path & pszRelative);
73
74 virtual void add_file(const ::file::path& pszRelative, ::file::file * pfile);
75
76 bool dump(file_pointer pfile);
77
78 bool dump(memory & m);
79
80
81 ::zip::file * get_zip_file();
82 const ::zip::file * get_zip_file() const;
83
84
85 filesize translate(filesize offset, ::enum_seek eseek) override;
86 void set_size(filesize dwNewLen) override;
87 filesize get_size() const override;
88
89
90 using ::file::file::read;
91 memsize read(void * pdata, memsize nCount) override;
92
93
94 using ::file::file::write;
95 void write(const void * pdata,memsize nCount) override;
96
97
98 void flush() override;
99 void close() override;
100
101 virtual ::file::listing & ls(::file::listing & listing);
102 virtual ::file::listing & ls_relative_name(::file::listing & listing);
103
104
105 bool is_opened() const override;
106
107
108 ::file::listing & perform_file_listing(::file::listing & listing) override;
109 ::file::listing & perform_file_relative_name_listing(::file::listing & listing) override;
110
111
112 };
113
114
115} // namespace zip
116
117
118
119
120
121
122
123
124
125
126
127
Definition aaa_file.h:10
Definition aaa_in_file.h:14