archive_plugin: wrap method calls

Make archive_file a "real" struct, extended by all plugins.  Add the
plugin pointer to it.  Wrap all method calls in functions.
This commit is contained in:
Max Kellermann
2009-12-16 16:28:26 +01:00
parent 74156d5bed
commit 0bc8c0c1da
9 changed files with 133 additions and 12 deletions

View File

@@ -32,6 +32,8 @@
#include <string.h>
struct zzip_archive {
struct archive_file base;
ZZIP_DIR *dir;
ZZIP_FILE *file;
size_t length;
@@ -55,6 +57,8 @@ zzip_archive_open(const char *pathname)
struct zzip_archive *context = g_malloc(sizeof(*context));
ZZIP_DIRENT dirent;
archive_file_init(&context->base, &zzip_archive_plugin);
// open archive
context->list = NULL;
context->dir = zzip_dir_open(pathname, NULL);
@@ -71,7 +75,7 @@ zzip_archive_open(const char *pathname)
}
}
return (struct archive_file *)context;
return &context->base;
}
static void