From 16afdfd8747a1bd5af2d1acb4e0845bf9d0b89e7 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 29 Jan 2013 23:36:58 +0100 Subject: ArchivePlugin: move instance methods to class ArchiveFile --- src/ArchiveFile.hxx | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/ArchiveFile.hxx') diff --git a/src/ArchiveFile.hxx b/src/ArchiveFile.hxx index 52e5a4910..c7933ebd1 100644 --- a/src/ArchiveFile.hxx +++ b/src/ArchiveFile.hxx @@ -26,6 +26,31 @@ public: ArchiveFile(const struct archive_plugin &_plugin) :plugin(_plugin) {} + +protected: + /** + * Use Close() instead of delete. + */ + ~ArchiveFile() {} + +public: + virtual void Close() = 0; + + /** + * Visit all entries inside this archive. + */ + virtual void Visit(ArchiveVisitor &visitor) = 0; + + /** + * Opens an input_stream of a file within the archive. + * + * @param path the path within the archive + * @param error_r location to store the error occurring, or + * NULL to ignore errors + */ + virtual input_stream *OpenStream(const char *path, + Mutex &mutex, Cond &cond, + GError **error_r) = 0; }; #endif -- cgit v1.2.3