Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=236612dd47fd3ce824166615e933e6794aba7de8
commit 236612dd47fd3ce824166615e933e6794aba7de8 Author: Michel Hermier <[email protected]> Date: Wed May 7 20:17:56 2014 +0200 libpacman: Drop pmdb_ops_t and Database::read. diff --git a/lib/libpacman/db.cpp b/lib/libpacman/db.cpp index 8cdce02..c57db7e 100644 --- a/lib/libpacman/db.cpp +++ b/lib/libpacman/db.cpp @@ -67,8 +67,7 @@ FILE *_pacman_db_fopen_lastupdate(const Database *db, const char *mode) return fopen(path, mode); } -Database::Database(libpacman::Handle *handle, const char *treename, const pmdb_ops_t *_ops) - : ops(_ops) +Database::Database(libpacman::Handle *handle, const char *treename) { path = f_zalloc(strlen(handle->root)+strlen(handle->dbpath)+strlen(treename)+2); // if(path == NULL) { @@ -156,22 +155,6 @@ int Database::settimestamp(const time_t *timestamp) return _pacman_db_setlastupdate(this, buffer); } -int Database::read(Package *info, unsigned int flags) -{ - int ret; - - ASSERT(info != NULL, RET_ERR(PM_ERR_PKG_INVALID, -1)); - if(_pacman_strempty(info->name()) || _pacman_strempty(info->version())) { - _pacman_log(PM_LOG_ERROR, _("invalid package entry provided to _pacman_db_read")); - return(-1); - } - - if((ret = ops->read(this, info, flags)) == 0) { - info->flags |= flags; - } - return ret; -} - int Database::write(Package *info, unsigned int inforeq) { ASSERT(info != NULL, RET_ERR(PM_ERR_PKG_INVALID, -1)); diff --git a/lib/libpacman/db.h b/lib/libpacman/db.h index dc7b15b..bb8d2d7 100644 --- a/lib/libpacman/db.h +++ b/lib/libpacman/db.h @@ -37,12 +37,6 @@ class Package; } -typedef struct __pmdb_ops_t pmdb_ops_t; - -struct __pmdb_ops_t { - int (*read)(libpacman::Database *db, libpacman::Package *info, unsigned int inforeq); -}; - namespace libpacman { class Database @@ -65,7 +59,6 @@ public: virtual libpacman::Package *readpkg(unsigned int inforeq) = 0; virtual libpacman::Package *scan(const char *target, unsigned int inforeq) = 0; - virtual int read(libpacman::Package *info, unsigned int flags); virtual int write(libpacman::Package *info, unsigned int inforeq); virtual int remove(libpacman::Package *info); @@ -82,12 +75,11 @@ public: pmlist_t *servers; protected: - Database(libpacman::Handle *handle, const char *treename, const pmdb_ops_t *ops); + Database(libpacman::Handle *handle, const char *treename); virtual int open(int flags, time_t *timestamp) = 0; private: - const pmdb_ops_t *ops; }; } diff --git a/lib/libpacman/db/localdb.cpp b/lib/libpacman/db/localdb.cpp index c75810c..f145133 100644 --- a/lib/libpacman/db/localdb.cpp +++ b/lib/libpacman/db/localdb.cpp @@ -92,7 +92,7 @@ int LocalPackage::read(unsigned int flags) 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")); + _pacman_log(PM_LOG_ERROR, _("invalid package entry provided to LocalPackage::read")); return(-1); } @@ -121,7 +121,7 @@ int LocalPackage::read(unsigned int flags) } LocalDatabase::LocalDatabase(libpacman::Handle *handle, const char *treename) - : Database(handle, treename, &_pacman_localdb_ops) + : Database(handle, treename) { } @@ -301,42 +301,6 @@ int _pacman_localdb_file_reader(Database *db, Package *info, unsigned int infore return ret; } -static -int _pacman_localdb_read(Database *db, Package *info, unsigned int inforeq) -{ - struct stat buf; - char path[PATH_MAX]; - - ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); - if(info == NULL || info->name()[0] == 0 || info->version()[0] == 0) { - _pacman_log(PM_LOG_ERROR, _("invalid package entry provided to _pacman_localdb_read")); - return(-1); - } - - snprintf(path, PATH_MAX, "%s/%s-%s", db->path, info->name(), info->version()); - if(stat(path, &buf)) { - /* directory doesn't exist or can't be opened */ - return(-1); - } - - if (_pacman_localdb_file_reader(db, info, inforeq, INFRQ_DESC, "desc", _pacman_localdb_desc_fread) == -1) - return -1; - if (_pacman_localdb_file_reader(db, info, inforeq, INFRQ_DEPENDS, "depends", _pacman_localdb_depends_fread) == -1) - return -1; - if (_pacman_localdb_file_reader(db, info, inforeq, INFRQ_FILES, "files", _pacman_localdb_files_fread) == -1) - return -1; - - /* INSTALL */ - if(inforeq & INFRQ_SCRIPLET) { - snprintf(path, PATH_MAX, "%s/%s-%s/install", db->path, info->name(), info->version()); - if(!stat(path, &buf)) { - info->scriptlet = 1; - } - info->flags |= PM_LOCALPACKAGE_FLAGS_SCRIPLET; - } - return 0; -} - /* static void _pacman_localdb_write_bool(const char *entry, int value, FILE *stream) @@ -521,8 +485,4 @@ pmlist_t *LocalDatabase::getowners(const char *filename) return(ret); } -const pmdb_ops_t _pacman_localdb_ops = { - .read = _pacman_localdb_read, -}; - /* vim: set ts=2 sw=2 noet: */ diff --git a/lib/libpacman/db/localdb.h b/lib/libpacman/db/localdb.h index 6eec84b..53b06f3 100644 --- a/lib/libpacman/db/localdb.h +++ b/lib/libpacman/db/localdb.h @@ -26,9 +26,6 @@ #include <dirent.h> -extern -const pmdb_ops_t _pacman_localdb_ops; - namespace libpacman { diff --git a/lib/libpacman/db/syncdb.cpp b/lib/libpacman/db/syncdb.cpp index 5b6529d..43c71cc 100644 --- a/lib/libpacman/db/syncdb.cpp +++ b/lib/libpacman/db/syncdb.cpp @@ -97,7 +97,7 @@ int SyncPackage::read(unsigned int flags) 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")); + _pacman_log(PM_LOG_ERROR, _("invalid package entry provided to SyncPackage::read")); return(-1); } @@ -121,7 +121,7 @@ int SyncPackage::read(unsigned int flags) } SyncDatabase::SyncDatabase(libpacman::Handle *handle, const char *treename) - : Database(handle, treename, &_pacman_syncdb_ops) + : Database(handle, treename) { } @@ -307,38 +307,4 @@ int _pacman_syncdb_file_reader(SyncDatabase *db, Package *info, unsigned int inf return ret; } -static -int _pacman_syncdb_read(SyncDatabase *db, Package *info, unsigned int inforeq) -{ - int descdone = 0, depsdone = 0; - - ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); - if(info == NULL || info->name()[0] == 0 || info->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->m_archive, &entry) != ARCHIVE_OK) - return -1; - const char *pathname = archive_entry_pathname(entry); - if (!suffixcmp(pathname, "/desc")) { - if(_pacman_syncdb_file_reader(db, info, inforeq, INFRQ_DESC, _pacman_localdb_desc_fread) == -1) - return -1; - descdone = 1; - } - if (!suffixcmp(pathname, "/depends")) { - if(_pacman_syncdb_file_reader(db, info, inforeq, INFRQ_DEPENDS, _pacman_localdb_depends_fread) == -1) - return -1; - depsdone = 1; - } - } - return 0; -} - -const pmdb_ops_t _pacman_syncdb_ops = { - .read = _pacman_syncdb_read, -}; - /* vim: set ts=2 sw=2 noet: */ diff --git a/lib/libpacman/db/syncdb.h b/lib/libpacman/db/syncdb.h index 4008088..2b17573 100644 --- a/lib/libpacman/db/syncdb.h +++ b/lib/libpacman/db/syncdb.h @@ -26,9 +26,6 @@ #include <archive.h> -extern -const pmdb_ops_t _pacman_syncdb_ops; - int _pacman_syncdb_update(libpacman::Database *db, int force); namespace libpacman diff --git a/lib/libpacman/package.cpp b/lib/libpacman/package.cpp index 268f89f..039cce7 100644 --- a/lib/libpacman/package.cpp +++ b/lib/libpacman/package.cpp @@ -265,12 +265,7 @@ bool Package::splitname(const char *target, char *name, char *version, int witha int Package::read(unsigned int flags) { - ASSERT(m_database != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); - - if(~this->flags & flags) { - return m_database->read(this, flags); - } - return 0; + return -1; } int Package::write(unsigned int flags) _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
