diff --git a/panda/src/downloader/decompressor.cxx b/panda/src/downloader/decompressor.cxx index 657abced73..74ff042658 100644 --- a/panda/src/downloader/decompressor.cxx +++ b/panda/src/downloader/decompressor.cxx @@ -175,3 +175,23 @@ run(void) { return DS_ok; } + +//////////////////////////////////////////////////////////////////// +// Function: Decompressor::decompress +// Access: Public +// Description: +//////////////////////////////////////////////////////////////////// +bool Decompressor:: +decompress(Filename &source_file) { + int ret = initiate(source_file); + if (ret < 0) + return false; + for (;;) { + ret = run(); + if (ret == DS_success) + return true; + else if (ret < 0) + return false; + } + return false; +} diff --git a/panda/src/downloader/decompressor.h b/panda/src/downloader/decompressor.h index 44ab123305..4fbb94b92c 100644 --- a/panda/src/downloader/decompressor.h +++ b/panda/src/downloader/decompressor.h @@ -35,9 +35,10 @@ PUBLISHED: int initiate(Filename &source_file); int initiate(Filename &source_file, Filename &dest_file); - int run(void); + bool decompress(Filename &source_file); + private: void init(PT(Buffer) buffer); diff --git a/panda/src/downloader/extractor.cxx b/panda/src/downloader/extractor.cxx index e9a45a34b7..950f97e464 100644 --- a/panda/src/downloader/extractor.cxx +++ b/panda/src/downloader/extractor.cxx @@ -116,3 +116,23 @@ run(void) { } return ES_ok; } + +//////////////////////////////////////////////////////////////////// +// Function: Extractor::extract +// Access: Public +// Description: +//////////////////////////////////////////////////////////////////// +bool Extractor:: +extract(Filename &source_file, const Filename &rel_path) { + int ret = initiate(source_file, rel_path); + if (ret < 0) + return false; + for (;;) { + ret = run(); + if (ret == ES_success) + return true; + if (ret < 0) + return false; + } + return false; +} diff --git a/panda/src/downloader/extractor.h b/panda/src/downloader/extractor.h index 6e6b3cd00e..fd43e779ae 100644 --- a/panda/src/downloader/extractor.h +++ b/panda/src/downloader/extractor.h @@ -35,6 +35,8 @@ PUBLISHED: int initiate(Filename &source_file, const Filename &rel_path = ""); int run(void); + bool extract(Filename &source_file, const Filename &rel_path = ""); + private: void init(PT(Buffer) buffer); diff --git a/panda/src/downloadertools/multify.cxx b/panda/src/downloadertools/multify.cxx index fa0732a257..10539f22dc 100644 --- a/panda/src/downloadertools/multify.cxx +++ b/panda/src/downloadertools/multify.cxx @@ -78,7 +78,6 @@ main(int argc, char *argv[]) { mfile.extract_all(rel_path); #else Extractor extor; - extor.set_frequency(0); extor.extract(dest_file, rel_path); #endif }