28 typedef unsigned short uint16;
41 mutable std::fstream _zfs;
46 std::vector<file_info*> _directory;
51 zipfile(
const string& pathname);
71 unsigned int size()
const;
129 std::map<uint16,extra_info*> _extra;
182 {
return _pathname; }
187 template<
class extra_type>
188 extra_type* create_extra();
193 template<
class extra_type>
194 const extra_type* find_extra()
const;
199 void read(std::istream& in);
205 void read_extra(std::istream& in,
int length);
252 {
return _sig==0x30435241; }
258 {
return _loadaddr; }
264 {
return _execaddr; }
275 void read(std::istream& in);
285 template<
class extra_type>
289 if (!einfo) einfo=
new extra_type();
290 return dynamic_cast<extra_type*
>(einfo);
293 template<
class extra_type>
296 std::map<uint16,extra_info*>::const_iterator f=
297 _extra.find(extra_type::tag());
298 return (f!=_extra.end())?dynamic_cast<const extra_type*>(f->second):0;
303 public std::runtime_error
314 public std::runtime_error
325 public std::runtime_error
337 static const char* make_message(
int code);
static uint16 tag()
Get tag.
Definition: zipfile.h:281
An exception class for reporting not found errors.
Definition: zipfile.h:302
extra_type * create_extra()
Create extra information record.
Definition: zipfile.h:286
zipfile(const string &pathname)
Construct zip file object.
Definition: zipfile.cc:89
unsigned long uint32
A type to represent an unsigned 32-bit integer.
Definition: zipfile.h:31
unsigned int size() const
Get number of file information records.
Definition: zipfile.cc:133
uint32 usize() const
Get uncompressed file size.
Definition: zipfile.h:173
A class to represent a file information record from a zip file.
Definition: zipfile.h:95
~zipfile()
Destroy zip file object.
Definition: zipfile.cc:111
uint32 execaddr() const
Get RISC OS execution address.
Definition: zipfile.h:263
bool valid() const
Determine whether extra information record is valid.
Definition: zipfile.h:251
uint16 method() const
Get compression method.
Definition: zipfile.h:161
The namespace used to hold the package management library.
Definition: auto_dir.cc:12
const string & pathname() const
Get pathname.
Definition: zipfile.h:181
uint32 attr() const
Get RISC OS attributes.
Definition: zipfile.h:269
unsigned short uint16
A type to represent an unsigned 16-bit integer.
Definition: zipfile.h:25
uint32 csize() const
Get compressed file size.
Definition: zipfile.h:167
const file_info * find(const string &pathname) const
Find const file information record for pathname.
Definition: zipfile.cc:126
An exception class for reporting errors in zlib.
Definition: zipfile.h:324
A class to represent a RISC OS extra information record from a zip file.
Definition: zipfile.h:220
const char * dst_pathname
Definition: path_table.cc:21
uint32 loadaddr() const
Get RISC OS load address.
Definition: zipfile.h:257
const file_info & operator[](unsigned int index) const
Get const file information record at index.
Definition: zipfile.cc:121
uint32 offset() const
Get offset to file data.
Definition: zipfile.h:155
const extra_type * find_extra() const
Find extra information record.
Definition: zipfile.h:294
const char * src_pathname
Definition: path_table.cc:20
void extract(const string &src_pathname, const string &dst_pathname) const
Extract file from zip file.
Definition: zipfile.cc:138
An exception class for reporting unsupported compression method errors.
Definition: zipfile.h:313
An interface class to represent a zip file.
Definition: zipfile.h:20