Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=44358637528433fdfe3377c3c7342ff2207302cc
commit 44358637528433fdfe3377c3c7342ff2207302cc Author: Michel Hermier <[email protected]> Date: Sun Apr 27 22:19:38 2014 +0200 libpacman: Drop __pmpkg_operations_t. diff --git a/lib/libpacman/db/localdb.cpp b/lib/libpacman/db/localdb.cpp index 6bdbade..3a156ed 100644 --- a/lib/libpacman/db/localdb.cpp +++ b/lib/libpacman/db/localdb.cpp @@ -47,6 +47,10 @@ using namespace libpacman; +LocalPackage::~LocalPackage() +{ +} + static int _pacman_localpkg_file_reader(Database *db, Package *pkg, unsigned int flags, unsigned int flags_masq, const char *file, int (*reader)(Package *, FILE *)) { @@ -69,63 +73,50 @@ int _pacman_localpkg_file_reader(Database *db, Package *pkg, unsigned int flags, return ret; } -static int -_pacman_localpkg_read(Package *pkg, unsigned int flags) +int LocalPackage::read(unsigned int flags) { - Database *db; struct stat buf; char path[PATH_MAX]; - ASSERT(pkg != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1)); - ASSERT((db = pkg->database) != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); - if(f_strempty(pkg->name) || f_strempty(pkg->version)) { + ASSERT(database != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); + if(f_strempty(name) || f_strempty(version)) { _pacman_log(PM_LOG_ERROR, _("invalid package entry provided to _pacman_localdb_read")); return(-1); } - snprintf(path, PATH_MAX, "%s/%s-%s", db->path, pkg->name, pkg->version); + snprintf(path, PATH_MAX, "%s/%s-%s", database->path, name, version); if(stat(path, &buf)) { /* directory doesn't exist or can't be opened */ return(-1); } - if (_pacman_localpkg_file_reader(db, pkg, flags, PM_LOCALPACKAGE_FLAGS_DESC, "desc", _pacman_localdb_desc_fread) == -1) + if (_pacman_localpkg_file_reader(database, this, flags, PM_LOCALPACKAGE_FLAGS_DESC, "desc", _pacman_localdb_desc_fread) == -1) return -1; - if (_pacman_localpkg_file_reader(db, pkg, flags, PM_LOCALPACKAGE_FLAGS_DEPENDS, "depends", _pacman_localdb_depends_fread) == -1) + if (_pacman_localpkg_file_reader(database, this, flags, PM_LOCALPACKAGE_FLAGS_DEPENDS, "depends", _pacman_localdb_depends_fread) == -1) return -1; - if (_pacman_localpkg_file_reader(db, pkg, flags, PM_LOCALPACKAGE_FLAGS_FILES, "files", _pacman_localdb_files_fread) == -1) + if (_pacman_localpkg_file_reader(database, this, flags, PM_LOCALPACKAGE_FLAGS_FILES, "files", _pacman_localdb_files_fread) == -1) return -1; /* INSTALL */ if(flags & INFRQ_SCRIPLET) { - snprintf(path, PATH_MAX, "%s/%s-%s/install", db->path, pkg->name, pkg->version); + snprintf(path, PATH_MAX, "%s/%s-%s/install", database->path, name, version); if(!stat(path, &buf)) { - pkg->scriptlet = 1; + scriptlet = 1; } - pkg->flags |= PM_LOCALPACKAGE_FLAGS_SCRIPLET; + this->flags |= PM_LOCALPACKAGE_FLAGS_SCRIPLET; } return 0; } -static int -_pacman_localpkg_write(Package *pkg, unsigned int flags) +LocalDatabase::LocalDatabase(pmhandle_t *handle, const char *treename) + : Database(handle, treename, &_pacman_localdb_ops) { - return pkg->database->write(pkg, flags); } -static int -_pacman_localpkg_remove(Package *pkg) +LocalDatabase::~LocalDatabase() { - return pkg->database->remove(pkg); } -static const -struct __pmpkg_operations_t _pacman_localpkg_operations = { - .read = _pacman_localpkg_read, - .write = _pacman_localpkg_write, - .remove = _pacman_localpkg_remove, -}; - static int _pacman_localpkg_init(Package *pkg, Database *db) { @@ -484,17 +475,4 @@ const pmdb_ops_t _pacman_localdb_ops = { .read = _pacman_localdb_read, }; -LocalDatabase::LocalDatabase(pmhandle_t *handle, const char *treename) - : Database(handle, treename, &_pacman_localdb_ops) -{ -} - -LocalDatabase::~LocalDatabase() -{ -} - -LocalPackage::~LocalPackage() -{ -} - /* vim: set ts=2 sw=2 noet: */ diff --git a/lib/libpacman/db/localdb.h b/lib/libpacman/db/localdb.h index 82d99fb..1af7204 100644 --- a/lib/libpacman/db/localdb.h +++ b/lib/libpacman/db/localdb.h @@ -30,6 +30,16 @@ const pmdb_ops_t _pacman_localdb_ops; namespace libpacman { +class LocalPackage + : public libpacman::Package +{ +public: + LocalPackage(); + virtual ~LocalPackage(); + + virtual int read(unsigned int flags); +}; + class LocalDatabase : public libpacman::Database { @@ -52,13 +62,6 @@ protected: virtual int open(int flags, time_t *timestamp); }; -class LocalPackage - : public libpacman::Package -{ -public: - virtual ~LocalPackage(); -}; - } #endif /* _PACMAN_LOCALDB_H */ diff --git a/lib/libpacman/db/syncdb.cpp b/lib/libpacman/db/syncdb.cpp index cdfe72e..b72f307 100644 --- a/lib/libpacman/db/syncdb.cpp +++ b/lib/libpacman/db/syncdb.cpp @@ -61,6 +61,10 @@ int suffixcmp(const char *str, const char *suffix) return strcmp(str + len - suflen, suffix); } +SyncPackage::~SyncPackage() +{ +} + static int _pacman_syncpkg_file_reader(Database *db, Package *pkg, unsigned int flags, unsigned int flags_masq, int (*reader)(Package *, FILE *)) { @@ -76,31 +80,28 @@ int _pacman_syncpkg_file_reader(Database *db, Package *pkg, unsigned int flags, return ret; } -static -int _pacman_syncpkg_read(Package *pkg, unsigned int flags) +int SyncPackage::read(unsigned int flags) { - Database *db; int descdone = 0, depsdone = 0; - ASSERT(pkg != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1)); - ASSERT((db = pkg->database) != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); - if(pkg == NULL || pkg->name[0] == 0 || pkg->version[0] == 0) { + ASSERT(database != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); + if(name[0] == 0 || version[0] == 0) { _pacman_log(PM_LOG_ERROR, _("invalid package entry provided to _pacman_syncdb_read")); return(-1); } while (!descdone || !depsdone) { struct archive_entry *entry = NULL; - if (archive_read_next_header(db->handle, &entry) != ARCHIVE_OK) + if (archive_read_next_header(database->handle, &entry) != ARCHIVE_OK) return -1; const char *pathname = archive_entry_pathname(entry); if (!suffixcmp(pathname, "/desc")) { - if(_pacman_syncpkg_file_reader(db, pkg, flags, PM_LOCALPACKAGE_FLAGS_DESC, _pacman_localdb_desc_fread) == -1) + if(_pacman_syncpkg_file_reader(database, this, flags, PM_LOCALPACKAGE_FLAGS_DESC, _pacman_localdb_desc_fread) == -1) return -1; descdone = 1; } if (!suffixcmp(pathname, "/depends")) { - if(_pacman_syncpkg_file_reader(db, pkg, flags, PM_LOCALPACKAGE_FLAGS_DEPENDS, _pacman_localdb_depends_fread) == -1) + if(_pacman_syncpkg_file_reader(database, this, flags, PM_LOCALPACKAGE_FLAGS_DEPENDS, _pacman_localdb_depends_fread) == -1) return -1; depsdone = 1; } @@ -108,13 +109,6 @@ int _pacman_syncpkg_read(Package *pkg, unsigned int flags) return 0; } -static const -struct __pmpkg_operations_t _pacman_syncpkg_operations = { - .read = _pacman_syncpkg_read, - .write = NULL, - .remove = NULL, -}; - static int _pacman_syncpkg_init(Package *pkg, Database *db) { @@ -124,6 +118,15 @@ int _pacman_syncpkg_init(Package *pkg, Database *db) return 0; } +SyncDatabase::SyncDatabase(pmhandle_t *handle, const char *treename) + : Database(handle, treename, &_pacman_syncdb_ops) +{ +} + +SyncDatabase::~SyncDatabase() +{ +} + static Package *_pacman_syncdb_pkg_new(Database *db, const struct archive_entry *entry, unsigned int inforeq) { @@ -335,17 +338,4 @@ const pmdb_ops_t _pacman_syncdb_ops = { .read = _pacman_syncdb_read, }; -SyncDatabase::SyncDatabase(pmhandle_t *handle, const char *treename) - : Database(handle, treename, &_pacman_syncdb_ops) -{ -} - -SyncDatabase::~SyncDatabase() -{ -} - -SyncPackage::~SyncPackage() -{ -} - /* vim: set ts=2 sw=2 noet: */ diff --git a/lib/libpacman/db/syncdb.h b/lib/libpacman/db/syncdb.h index 1615727..d3143fe 100644 --- a/lib/libpacman/db/syncdb.h +++ b/lib/libpacman/db/syncdb.h @@ -32,6 +32,15 @@ int _pacman_syncdb_update(libpacman::Database *db, int force); namespace libpacman { +class SyncPackage + : public libpacman::Package +{ +public: + virtual ~SyncPackage(); + + virtual int read(unsigned int flags); +}; + class SyncDatabase : public libpacman::Database { @@ -49,13 +58,6 @@ protected: virtual int open(int flags, time_t *timestamp); }; -class SyncPackage - : public libpacman::Package -{ -public: - virtual ~SyncPackage(); -}; - } #endif /* _PACMAN_SYNCDB_H */ diff --git a/lib/libpacman/package.cpp b/lib/libpacman/package.cpp index cc84561..39c7613 100644 --- a/lib/libpacman/package.cpp +++ b/lib/libpacman/package.cpp @@ -48,8 +48,7 @@ using namespace libpacman; -Package::Package(__pmpkg_operations_t *_operations) - : operations(_operations) +Package::Package() { } @@ -341,11 +340,10 @@ int _pacman_pkg_splitname(const char *target, char *name, char *version, int wit int Package::read(unsigned int flags) { - ASSERT(operations != NULL, return -1); - ASSERT(operations->read != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1)); + ASSERT(database != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); if(~this->flags & flags) { - return operations->read(this, flags); + return database->read(this, flags); } return 0; } @@ -354,22 +352,20 @@ int Package::write(unsigned int flags) { int ret; - ASSERT(operations != NULL, return -1); - ASSERT(operations->write != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1)); + ASSERT(database != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); - if((ret = operations->write(this, flags)) != 0) { + if((ret = database->write(this, flags)) != 0) { _pacman_log(PM_LOG_ERROR, _("could not update requiredby for database entry %s-%s"), - this->name, this->version); + name, version); } return ret; } int Package::remove() { - ASSERT(operations != NULL, return -1); - ASSERT(operations->remove != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1)); + ASSERT(database != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); - return operations->remove(this); + return database->remove(this); } static @@ -567,12 +563,6 @@ char *_pacman_pkg_fileneedbackup(const Package *pkg, const char *file) return(NULL); } -const struct __pmpkg_operations_t pmpkg_operations = { - .read = NULL, - .write = NULL, - .remove = NULL -}; - typedef struct FPackageStrMatcher FPackageStrMatcher; struct FPackageStrMatcher diff --git a/lib/libpacman/package.h b/lib/libpacman/package.h index 81acd5c..ec24ef5 100644 --- a/lib/libpacman/package.h +++ b/lib/libpacman/package.h @@ -84,12 +84,6 @@ class Package; } -struct __pmpkg_operations_t { - int (*read)(libpacman::Package *pkg, unsigned int flags); - int (*write)(libpacman::Package *pkg, unsigned int flags); /* Optional */ - int (*remove)(libpacman::Package *pkg); /* Optional */ -}; - namespace libpacman { /* IMPROVEMENT: Add a dirty_flags to know what flags needs to be written */ @@ -97,15 +91,13 @@ class Package : public libpacman::Object { public: - - Package(__pmpkg_operations_t *operations); + Package(); virtual ~Package(); virtual int read(unsigned int flags); virtual int write(unsigned int flags); /* Optional */ virtual int remove(); /* Optional */ - __pmpkg_operations_t *operations; libpacman::Database *database; unsigned int flags; _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
