Packer::canUnpack() now can return -1.

committer: mfx <mfx> 962126554 +0000
This commit is contained in:
Markus F.X.J. Oberhumer
2000-06-27 17:22:34 +00:00
parent 87a1b66847
commit 51c6566092
24 changed files with 109 additions and 56 deletions
+14 -3
View File
@@ -119,6 +119,11 @@ public:
virtual bool canUnpackFormat(int format) const
{ return (format == getFormat()); }
protected:
// unpacker tests - these may throw exceptions
virtual bool testUnpackVersion(int version) const;
virtual bool testUnpackFormat(int format) const;
protected:
virtual void pack(OutputFile *fo) = 0;
virtual void unpack(OutputFile *fo) = 0;
@@ -127,10 +132,14 @@ protected:
virtual void fileInfo();
public:
// canPack() should throw a cantPackException eplaining why it
// cannot pack a recognized format.
// canUnpack() can return -1 meaning "format recognized, but file
// is definitely not packed" (see packmast.cpp).
virtual bool canPack() = 0;
virtual bool canUnpack() = 0;
virtual bool canTest() { return canUnpack(); }
virtual bool canList() { return canUnpack(); }
virtual int canUnpack() = 0;
virtual int canTest() { return canUnpack(); }
virtual int canList() { return canUnpack(); }
protected:
// main compression drivers
@@ -215,6 +224,8 @@ protected:
InputFile *fi;
off_t file_size; // will get set by constructor
PackHeader ph; // must be filled by canUnpack()
int ph_format;
int ph_version;
// compression buffers
MemBuffer ibuf; // input