00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef DECOMPRESSOR_H
00020 #define DECOMPRESSOR_H
00021
00022 #include "pandabase.h"
00023 #include "filename.h"
00024
00025 class Ramfile;
00026
00027
00028
00029
00030
00031
00032
00033 class EXPCL_PANDAEXPRESS Decompressor {
00034 PUBLISHED:
00035 Decompressor();
00036 ~Decompressor();
00037
00038 int initiate(const Filename &source_file);
00039 int initiate(const Filename &source_file, const Filename &dest_file);
00040 int run();
00041
00042 bool decompress(const Filename &source_file);
00043 bool decompress(Ramfile &source_and_dest_file);
00044
00045 float get_progress() const;
00046
00047 private:
00048 void cleanup(void);
00049
00050 Filename _source_filename;
00051
00052 istream *_source;
00053 istream *_decompress;
00054 ostream *_dest;
00055
00056 size_t _source_length;
00057 };
00058
00059 #include "decompressor.I"
00060
00061 #endif