Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=db5acbdf58e90428f5df3c30776e26dca8101148
commit db5acbdf58e90428f5df3c30776e26dca8101148 Author: Michel Hermier <[email protected]> Date: Sat Apr 26 14:44:09 2014 +0200 libpacman: s/struct pmdb_t/libpacman::Database/ diff --git a/lib/libpacman/cache.cpp b/lib/libpacman/cache.cpp index e1fa455..392077b 100644 --- a/lib/libpacman/cache.cpp +++ b/lib/libpacman/cache.cpp @@ -48,15 +48,15 @@ using namespace libpacman; static -int _pacman_db_clear_grpcache(pmdb_t *db); +int _pacman_db_clear_grpcache(Database *db); static -int _pacman_db_load_grpcache(pmdb_t *db); +int _pacman_db_load_grpcache(Database *db); /* Returns a new package cache from db. * It frees the cache if it already exists. */ -int _pacman_db_load_pkgcache(pmdb_t *db) +int _pacman_db_load_pkgcache(Database *db) { pmpkg_t *info; @@ -81,7 +81,7 @@ int _pacman_db_load_pkgcache(pmdb_t *db) return(0); } -void _pacman_db_free_pkgcache(pmdb_t *db) +void _pacman_db_free_pkgcache(Database *db) { ASSERT(db != NULL, pm_errno = PM_ERR_DB_NULL; return); if(f_ptrlist_empty(db->pkgcache)) { @@ -96,7 +96,7 @@ void _pacman_db_free_pkgcache(pmdb_t *db) _pacman_db_clear_grpcache(db); } -pmlist_t *_pacman_db_get_pkgcache(pmdb_t *db) +pmlist_t *_pacman_db_get_pkgcache(Database *db) { ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, NULL)); @@ -107,7 +107,7 @@ pmlist_t *_pacman_db_get_pkgcache(pmdb_t *db) return(db->pkgcache); } -int _pacman_db_add_pkgincache(pmdb_t *db, pmpkg_t *pkg) +int _pacman_db_add_pkgincache(Database *db, pmpkg_t *pkg) { pmpkg_t *newpkg; @@ -128,7 +128,7 @@ int _pacman_db_add_pkgincache(pmdb_t *db, pmpkg_t *pkg) return(0); } -int _pacman_db_remove_pkgfromcache(pmdb_t *db, pmpkg_t *pkg) +int _pacman_db_remove_pkgfromcache(Database *db, pmpkg_t *pkg) { pmpkg_t *data; @@ -151,7 +151,7 @@ int _pacman_db_remove_pkgfromcache(pmdb_t *db, pmpkg_t *pkg) return(0); } -pmpkg_t *_pacman_db_get_pkgfromcache(pmdb_t *db, const char *target) +pmpkg_t *_pacman_db_get_pkgfromcache(Database *db, const char *target) { ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, NULL)); if(_pacman_strempty(target)) { @@ -163,7 +163,7 @@ pmpkg_t *_pacman_db_get_pkgfromcache(pmdb_t *db, const char *target) /* return a pmlist_t of packages in "db" that provide "package" */ -pmlist_t *_pacman_db_whatprovides(pmdb_t *db, char *package) +pmlist_t *_pacman_db_whatprovides(Database *db, char *package) { FPtrList *pkgs = NULL; FStrMatcher strmatcher = { NULL }; @@ -182,7 +182,7 @@ pmlist_t *_pacman_db_whatprovides(pmdb_t *db, char *package) /* Returns a new group cache from db. */ -int _pacman_db_load_grpcache(pmdb_t *db) +int _pacman_db_load_grpcache(Database *db) { pmlist_t *lp; @@ -197,7 +197,7 @@ int _pacman_db_load_grpcache(pmdb_t *db) pmpkg_t *pkg = lp->data; if(!(pkg->infolevel & INFRQ_DESC)) { - ((__pmdb_t *)pkg->data)->read(pkg, INFRQ_DESC); + pkg->database->read(pkg, INFRQ_DESC); } for(i = pkg->groups; i; i = i->next) { @@ -226,7 +226,7 @@ int _pacman_db_load_grpcache(pmdb_t *db) return(0); } -int _pacman_db_clear_grpcache(pmdb_t *db) +int _pacman_db_clear_grpcache(Database *db) { FVisitor visitor = { .fn = (FVisitorFunc)_pacman_grp_delete, @@ -240,7 +240,7 @@ int _pacman_db_clear_grpcache(pmdb_t *db) return 0; } -pmlist_t *_pacman_db_get_grpcache(pmdb_t *db) +pmlist_t *_pacman_db_get_grpcache(Database *db) { ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, NULL)); @@ -251,7 +251,7 @@ pmlist_t *_pacman_db_get_grpcache(pmdb_t *db) return(db->grpcache); } -Group *_pacman_db_get_grpfromcache(pmdb_t *db, const char *target) +Group *_pacman_db_get_grpfromcache(Database *db, const char *target) { pmlist_t *i; diff --git a/lib/libpacman/cache.h b/lib/libpacman/cache.h index bad42bb..5f5a4fa 100644 --- a/lib/libpacman/cache.h +++ b/lib/libpacman/cache.h @@ -26,16 +26,16 @@ #include "db.h" /* packages */ -int _pacman_db_load_pkgcache(pmdb_t *db); -void _pacman_db_free_pkgcache(pmdb_t *db); -int _pacman_db_add_pkgincache(pmdb_t *db, pmpkg_t *pkg); -int _pacman_db_remove_pkgfromcache(pmdb_t *db, pmpkg_t *pkg); -pmlist_t *_pacman_db_get_pkgcache(pmdb_t *db); -pmpkg_t *_pacman_db_get_pkgfromcache(pmdb_t *db, const char *target); -pmlist_t *_pacman_db_whatprovides(pmdb_t *db, char *package); +int _pacman_db_load_pkgcache(libpacman::Database *db); +void _pacman_db_free_pkgcache(libpacman::Database *db); +int _pacman_db_add_pkgincache(libpacman::Database *db, pmpkg_t *pkg); +int _pacman_db_remove_pkgfromcache(libpacman::Database *db, pmpkg_t *pkg); +pmlist_t *_pacman_db_get_pkgcache(libpacman::Database *db); +pmpkg_t *_pacman_db_get_pkgfromcache(libpacman::Database *db, const char *target); +pmlist_t *_pacman_db_whatprovides(libpacman::Database *db, char *package); /* groups */ -pmlist_t *_pacman_db_get_grpcache(pmdb_t *db); -libpacman::Group *_pacman_db_get_grpfromcache(pmdb_t *db, const char *target); +pmlist_t *_pacman_db_get_grpcache(libpacman::Database *db); +libpacman::Group *_pacman_db_get_grpfromcache(libpacman::Database *db, const char *target); #endif /* _PACMAN_CACHE_H */ diff --git a/lib/libpacman/config_parser.cpp b/lib/libpacman/config_parser.cpp index 4043071..017a7f6 100644 --- a/lib/libpacman/config_parser.cpp +++ b/lib/libpacman/config_parser.cpp @@ -38,7 +38,7 @@ #include <stdarg.h> /* pacman-g2 */ -#include "pacman.h" +#include "pacman_p.h" #include "db/syncdb.h" #include "hash/md5.h" @@ -61,6 +61,8 @@ #define min(X, Y) ((X) < (Y) ? (X) : (Y)) +using namespace libpacman; + int _pacman_parse_config(const char *file, pacman_cb_db_register callback, const char *this_section) { FILE *fp = NULL; @@ -69,7 +71,7 @@ int _pacman_parse_config(const char *file, pacman_cb_db_register callback, const char *key = NULL; int linenum = 0; char section[256] = ""; - pmdb_t *db = NULL; + Database *db = NULL; /* Sanity checks */ ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1)); @@ -291,7 +293,7 @@ int _pacman_parse_config(const char *file, pacman_cb_db_register callback, const if(!strcmp(key, "SERVER")) { /* add to the list */ _pacman_log(PM_LOG_DEBUG, _("config: %s: server: %s\n"), section, ptr); - if(pacman_db_setserver(db, ptr) != 0) { + if(pacman_db_setserver(c_cast(db), ptr) != 0) { /* pm_errno is set by pacman_set_option */ return(-1); } diff --git a/lib/libpacman/conflict.cpp b/lib/libpacman/conflict.cpp index 3c5a42c..20bc44e 100644 --- a/lib/libpacman/conflict.cpp +++ b/lib/libpacman/conflict.cpp @@ -43,6 +43,8 @@ #include <string.h> #include <unistd.h> +using namespace libpacman; + /* Returns a pmlist_t* of pmdepmissing_t pointers. * * conflicts are always name only @@ -55,7 +57,7 @@ pmlist_t *_pacman_checkconflicts(pmtrans_t *trans, pmlist_t *packages) pmdepmissing_t *miss = NULL; int howmany, remain; double percent; - pmdb_t *db_local = trans->handle->db_local; + Database *db_local = trans->handle->db_local; if(db_local == NULL) { return(NULL); @@ -264,7 +266,7 @@ pmlist_t *_pacman_db_find_conflicts(pmtrans_t *trans, char *root, pmlist_t **ski pmpkg_t *p, *dbpkg; double percent; int howmany, remain; - pmdb_t *db_local = trans->handle->db_local; + Database *db_local = trans->handle->db_local; if(db_local == NULL || targets == NULL || root == NULL) { return(NULL); diff --git a/lib/libpacman/db.cpp b/lib/libpacman/db.cpp index 60776ca..2ad2eac 100644 --- a/lib/libpacman/db.cpp +++ b/lib/libpacman/db.cpp @@ -33,7 +33,7 @@ #include "server.h" #include "handle.h" #include "cache.h" -#include "pacman.h" +#include "pacman_p.h" #include "db/localdb.h" #include "db/syncdb.h" @@ -55,11 +55,11 @@ using namespace libpacman; -static int _pacman_db_getlastupdate(pmdb_t *db, char *ts); -static int _pacman_db_setlastupdate(pmdb_t *db, const char *ts); +static int _pacman_db_getlastupdate(Database *db, char *ts); +static int _pacman_db_setlastupdate(Database *db, const char *ts); static -FILE *_pacman_db_fopen_lastupdate(const pmdb_t *db, const char *mode) +FILE *_pacman_db_fopen_lastupdate(const Database *db, const char *mode) { char path[PATH_MAX]; @@ -67,7 +67,7 @@ FILE *_pacman_db_fopen_lastupdate(const pmdb_t *db, const char *mode) return fopen(path, mode); } -__pmdb_t::__pmdb_t(pmhandle_t *handle, const char *treename) +Database::Database(pmhandle_t *handle, const char *treename) { path = f_zalloc(strlen(handle->root)+strlen(handle->dbpath)+strlen(treename)+2); // if(path == NULL) { @@ -78,7 +78,7 @@ __pmdb_t::__pmdb_t(pmhandle_t *handle, const char *treename) STRNCPY(this->treename, treename, PATH_MAX); } -__pmdb_t::~__pmdb_t() +Database::~Database() { FREELISTSERVERS(servers); free(path); @@ -86,10 +86,10 @@ __pmdb_t::~__pmdb_t() int _pacman_db_cmp(const void *db1, const void *db2) { - return(strcmp(((pmdb_t *)db1)->treename, ((pmdb_t *)db2)->treename)); + return(strcmp(((Database *)db1)->treename, ((Database *)db2)->treename)); } -pmlist_t *__pmdb_t::search(pmlist_t *needles) +pmlist_t *Database::search(pmlist_t *needles) { pmlist_t *i, *j, *ret = NULL; @@ -119,24 +119,24 @@ pmlist_t *__pmdb_t::search(pmlist_t *needles) return(ret); } -pmlist_t *__pmdb_t::test() +pmlist_t *Database::test() { return ops->test(this); } -int __pmdb_t::open(int flags) +int Database::open(int flags) { ASSERT(flags == 0, RET_ERR(PM_ERR_DB_OPEN, -1)); /* No flags are supported for now */ return ops->open(this, flags, &cache_timestamp); } -int __pmdb_t::close() +int Database::close() { return ops->close(this); } -int __pmdb_t::gettimestamp(time_t *timestamp) +int Database::gettimestamp(time_t *timestamp) { ASSERT(timestamp != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1)); @@ -155,7 +155,7 @@ int __pmdb_t::gettimestamp(time_t *timestamp) /* A NULL timestamp means now per f_localtime definition. */ -int __pmdb_t::settimestamp(const time_t *timestamp) +int Database::settimestamp(const time_t *timestamp) { char buffer[PM_FMT_MDTM_MAX]; @@ -163,22 +163,22 @@ int __pmdb_t::settimestamp(const time_t *timestamp) return _pacman_db_setlastupdate(this, buffer); } -int __pmdb_t::rewind() +int Database::rewind() { return ops->rewind(this); } -pmpkg_t *__pmdb_t::readpkg(unsigned int inforeq) +pmpkg_t *Database::readpkg(unsigned int inforeq) { return ops->readpkg(this, inforeq); } -pmpkg_t *__pmdb_t::scan(const char *target, unsigned int inforeq) +pmpkg_t *Database::scan(const char *target, unsigned int inforeq) { return ops->scan(this, target, inforeq); } -int __pmdb_t::read(pmpkg_t *info, unsigned int inforeq) +int Database::read(pmpkg_t *info, unsigned int inforeq) { int ret; @@ -194,7 +194,7 @@ int __pmdb_t::read(pmpkg_t *info, unsigned int inforeq) return ret; } -int __pmdb_t::write(pmpkg_t *info, unsigned int inforeq) +int Database::write(pmpkg_t *info, unsigned int inforeq) { ASSERT(info != NULL, RET_ERR(PM_ERR_PKG_INVALID, -1)); @@ -205,7 +205,7 @@ int __pmdb_t::write(pmpkg_t *info, unsigned int inforeq) } } -int __pmdb_t::remove(pmpkg_t *info) +int Database::remove(pmpkg_t *info) { ASSERT(info != NULL, RET_ERR(PM_ERR_PKG_INVALID, -1)); @@ -221,7 +221,7 @@ int __pmdb_t::remove(pmpkg_t *info) * * Returns 0 on success, -1 on error. */ -int _pacman_db_getlastupdate(pmdb_t *db, char *ts) +int _pacman_db_getlastupdate(Database *db, char *ts) { FILE *fp; @@ -251,7 +251,7 @@ int _pacman_db_getlastupdate(pmdb_t *db, char *ts) * * Returns 0 on success, -1 on error. */ -int _pacman_db_setlastupdate(pmdb_t *db, const char *ts) +int _pacman_db_setlastupdate(Database *db, const char *ts) { FILE *fp; @@ -271,9 +271,9 @@ int _pacman_db_setlastupdate(pmdb_t *db, const char *ts) return(0); } -pmdb_t *_pacman_db_register(const char *treename, pacman_cb_db_register callback) +Database *_pacman_db_register(const char *treename, pacman_cb_db_register callback) { - pmdb_t *db; + Database *db; if(strcmp(treename, "local") == 0) { if(handle->db_local != NULL) { @@ -283,7 +283,7 @@ pmdb_t *_pacman_db_register(const char *treename, pacman_cb_db_register callback } else { pmlist_t *i; for(i = handle->dbs_sync; i; i = i->next) { - pmdb_t *sdb = i->data; + Database *sdb = i->data; if(strcmp(treename, sdb->treename) == 0) { _pacman_log(PM_LOG_DEBUG, _("attempt to re-register the '%s' database, using existing\n"), sdb->treename); return sdb; @@ -293,7 +293,7 @@ pmdb_t *_pacman_db_register(const char *treename, pacman_cb_db_register callback _pacman_log(PM_LOG_FLOW1, _("registering database '%s'"), treename); - db = new __pmdb_t(handle, treename); + db = new Database(handle, treename); if(db == NULL) { RET_ERR(PM_ERR_DB_CREATE, NULL); } @@ -310,7 +310,7 @@ pmdb_t *_pacman_db_register(const char *treename, pacman_cb_db_register callback } /* Only call callback on NEW registration. */ - if(callback) callback(treename, db); + if(callback) callback(treename, c_cast(db)); if(strcmp(treename, "local") == 0) { handle->db_local = db; @@ -320,8 +320,4 @@ pmdb_t *_pacman_db_register(const char *treename, pacman_cb_db_register callback return(db); } -Database::~Database() -{ -} - /* vim: set ts=2 sw=2 noet: */ diff --git a/lib/libpacman/db.h b/lib/libpacman/db.h index fb79a09..7480617 100644 --- a/lib/libpacman/db.h +++ b/lib/libpacman/db.h @@ -37,46 +37,56 @@ #define INFRQ_SCRIPLET 0x08 #define INFRQ_ALL 0xFF +namespace libpacman { + +class Database; + +} + typedef struct __pmdb_ops_t pmdb_ops_t; struct __pmdb_ops_t { - pmlist_t *(*test)(pmdb_t *db); - int (*open)(pmdb_t *db, int flags, time_t *timestamp); - int (*close)(pmdb_t *db); + pmlist_t *(*test)(libpacman::Database *db); + int (*open)(libpacman::Database *db, int flags, time_t *timestamp); + int (*close)(libpacman::Database *db); - int (*gettimestamp)(pmdb_t *db, time_t *timestamp); + int (*gettimestamp)(libpacman::Database *db, time_t *timestamp); /* Package iterator */ - int (*rewind)(pmdb_t *db); - pmpkg_t *(*readpkg)(pmdb_t *db, unsigned int inforeq); - pmpkg_t *(*scan)(pmdb_t *db, const char *target, unsigned int inforeq); + int (*rewind)(libpacman::Database *db); + pmpkg_t *(*readpkg)(libpacman::Database *db, unsigned int inforeq); + pmpkg_t *(*scan)(libpacman::Database *db, const char *target, unsigned int inforeq); - int (*read)(pmdb_t *db, pmpkg_t *info, unsigned int inforeq); - int (*write)(pmdb_t *db, pmpkg_t *info, unsigned int inforeq); /* Optional */ - int (*remove)(pmdb_t *db, pmpkg_t *info); /* Optional */ + int (*read)(libpacman::Database *db, pmpkg_t *info, unsigned int inforeq); + int (*write)(libpacman::Database *db, pmpkg_t *info, unsigned int inforeq); /* Optional */ + int (*remove)(libpacman::Database *db, pmpkg_t *info); /* Optional */ }; -/* Database */ -struct __pmdb_t { - __pmdb_t(pmhandle_t *handle, const char *treename); - ~__pmdb_t(); +namespace libpacman { + +class Database + : public libpacman::Object +{ + public: + Database(pmhandle_t *handle, const char *treename); + virtual ~Database(); /* Prototypes for backends functions */ - pmlist_t *test(); /* FIXME: constify */ + virtual pmlist_t *test(); /* FIXME: constify */ - int open(int flags); - int close(); + virtual int open(int flags); + virtual int close(); - int gettimestamp(time_t *timestamp); - int settimestamp(const time_t *timestamp); + virtual int gettimestamp(time_t *timestamp); + virtual int settimestamp(const time_t *timestamp); - int rewind(); - pmpkg_t *readpkg(unsigned int inforeq); - pmpkg_t *scan(const char *target, unsigned int inforeq); + virtual int rewind(); + virtual pmpkg_t *readpkg(unsigned int inforeq); + virtual pmpkg_t *scan(const char *target, unsigned int inforeq); - int read(pmpkg_t *info, unsigned int inforeq); - int write(pmpkg_t *info, unsigned int inforeq); - int remove(pmpkg_t *info); + virtual int read(pmpkg_t *info, unsigned int inforeq); + virtual int write(pmpkg_t *info, unsigned int inforeq); + virtual int remove(pmpkg_t *info); // Cache operations pmlist_t *search(pmlist_t *needles); @@ -91,21 +101,11 @@ struct __pmdb_t { pmlist_t *servers; }; -int _pacman_db_cmp(const void *db1, const void *db2); - -pmdb_t *_pacman_db_register(const char *treename, pacman_cb_db_register callback); - -namespace libpacman -{ +} -class Database - : public libpacman::Object -{ -public: - virtual ~Database(); -}; +int _pacman_db_cmp(const void *db1, const void *db2); -} +libpacman::Database *_pacman_db_register(const char *treename, pacman_cb_db_register callback); #endif /* _PACMAN_DB_H */ diff --git a/lib/libpacman/db/localdb.cpp b/lib/libpacman/db/localdb.cpp index d1510c5..7aba8f7 100644 --- a/lib/libpacman/db/localdb.cpp +++ b/lib/libpacman/db/localdb.cpp @@ -48,13 +48,13 @@ using namespace libpacman; static -int _pacman_localdb_write(pmdb_t *db, pmpkg_t *info, unsigned int inforeq); +int _pacman_localdb_write(Database *db, pmpkg_t *info, unsigned int inforeq); static -int _pacman_localdb_remove(pmdb_t *db, pmpkg_t *info); +int _pacman_localdb_remove(Database *db, pmpkg_t *info); static -int _pacman_localpkg_file_reader(pmdb_t *db, pmpkg_t *pkg, unsigned int flags, unsigned int flags_masq, const char *file, int (*reader)(pmpkg_t *, FILE *)) +int _pacman_localpkg_file_reader(Database *db, pmpkg_t *pkg, unsigned int flags, unsigned int flags_masq, const char *file, int (*reader)(pmpkg_t *, FILE *)) { int ret = 0; @@ -78,7 +78,7 @@ int _pacman_localpkg_file_reader(pmdb_t *db, pmpkg_t *pkg, unsigned int flags, u static int _pacman_localpkg_read(pmpkg_t *pkg, unsigned int flags) { - pmdb_t *db; + Database *db; struct stat buf; char path[PATH_MAX]; @@ -140,7 +140,7 @@ struct __pmpkg_operations_t _pacman_localpkg_operations = { }; static -int _pacman_localpkg_init(pmpkg_t *pkg, pmdb_t *db) +int _pacman_localpkg_init(pmpkg_t *pkg, Database *db) { ASSERT(pkg != NULL, RET_ERR(PM_ERR_PKG_INVALID, -1)); ASSERT(_pacman_pkg_init(pkg, db) == 0, return -1); @@ -149,7 +149,7 @@ int _pacman_localpkg_init(pmpkg_t *pkg, pmdb_t *db) } static -pmpkg_t *_pacman_localdb_pkg_new(pmdb_t *db, const struct dirent *dirent, unsigned int inforeq) +pmpkg_t *_pacman_localdb_pkg_new(Database *db, const struct dirent *dirent, unsigned int inforeq) { pmpkg_t *pkg; const char *dname; @@ -168,7 +168,7 @@ pmpkg_t *_pacman_localdb_pkg_new(pmdb_t *db, const struct dirent *dirent, unsign } static -pmlist_t *_pacman_localdb_test(pmdb_t *db) +pmlist_t *_pacman_localdb_test(Database *db) { struct dirent *ent; char path[PATH_MAX]; @@ -205,7 +205,7 @@ pmlist_t *_pacman_localdb_test(pmdb_t *db) } static -int _pacman_localdb_open(pmdb_t *db, int flags, time_t *timestamp) +int _pacman_localdb_open(Database *db, int flags, time_t *timestamp) { struct stat buf; @@ -223,7 +223,7 @@ int _pacman_localdb_open(pmdb_t *db, int flags, time_t *timestamp) } static -int _pacman_localdb_close(pmdb_t *db) +int _pacman_localdb_close(Database *db) { if(db->handle) { closedir(db->handle); @@ -233,7 +233,7 @@ int _pacman_localdb_close(pmdb_t *db) } static -int _pacman_localdb_rewind(pmdb_t *db) +int _pacman_localdb_rewind(Database *db) { if(db->handle == NULL) { return -1; @@ -244,7 +244,7 @@ int _pacman_localdb_rewind(pmdb_t *db) } static -pmpkg_t *_pacman_localdb_readpkg(pmdb_t *db, unsigned int inforeq) +pmpkg_t *_pacman_localdb_readpkg(Database *db, unsigned int inforeq) { struct dirent *ent = NULL; struct stat sbuf; @@ -266,7 +266,7 @@ pmpkg_t *_pacman_localdb_readpkg(pmdb_t *db, unsigned int inforeq) } static -pmpkg_t *_pacman_localdb_scan(pmdb_t *db, const char *target, unsigned int inforeq) +pmpkg_t *_pacman_localdb_scan(Database *db, const char *target, unsigned int inforeq) { struct dirent *ent = NULL; struct stat sbuf; @@ -307,7 +307,7 @@ pmpkg_t *_pacman_localdb_scan(pmdb_t *db, const char *target, unsigned int infor } static -int _pacman_localdb_file_reader(pmdb_t *db, pmpkg_t *info, unsigned int inforeq, unsigned int inforeq_masq, const char *file, int (*reader)(pmpkg_t *, FILE *)) +int _pacman_localdb_file_reader(Database *db, pmpkg_t *info, unsigned int inforeq, unsigned int inforeq_masq, const char *file, int (*reader)(pmpkg_t *, FILE *)) { int ret = 0; @@ -329,7 +329,7 @@ int _pacman_localdb_file_reader(pmdb_t *db, pmpkg_t *info, unsigned int inforeq, } static -int _pacman_localdb_read(pmdb_t *db, pmpkg_t *info, unsigned int inforeq) +int _pacman_localdb_read(Database *db, pmpkg_t *info, unsigned int inforeq) { struct stat buf; char path[PATH_MAX]; @@ -397,7 +397,7 @@ void _pacman_localdb_write_stringlist(const char *entry, const pmlist_t *values, } static -int _pacman_localdb_write(pmdb_t *db, pmpkg_t *info, unsigned int inforeq) +int _pacman_localdb_write(Database *db, pmpkg_t *info, unsigned int inforeq) { FILE *fp = NULL; char path[PATH_MAX]; @@ -491,7 +491,7 @@ cleanup: } static -int _pacman_localdb_remove(pmdb_t *db, pmpkg_t *info) +int _pacman_localdb_remove(Database *db, pmpkg_t *info) { char path[PATH_MAX]; diff --git a/lib/libpacman/db/syncdb.cpp b/lib/libpacman/db/syncdb.cpp index 61de0cd..29f76bb 100644 --- a/lib/libpacman/db/syncdb.cpp +++ b/lib/libpacman/db/syncdb.cpp @@ -62,7 +62,7 @@ int suffixcmp(const char *str, const char *suffix) } static -int _pacman_syncpkg_file_reader(pmdb_t *db, pmpkg_t *pkg, unsigned int flags, unsigned int flags_masq, int (*reader)(pmpkg_t *, FILE *)) +int _pacman_syncpkg_file_reader(Database *db, pmpkg_t *pkg, unsigned int flags, unsigned int flags_masq, int (*reader)(pmpkg_t *, FILE *)) { int ret = 0; @@ -79,7 +79,7 @@ int _pacman_syncpkg_file_reader(pmdb_t *db, pmpkg_t *pkg, unsigned int flags, un static int _pacman_syncpkg_read(pmpkg_t *pkg, unsigned int flags) { - pmdb_t *db; + Database *db; int descdone = 0, depsdone = 0; ASSERT(pkg != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1)); @@ -123,7 +123,7 @@ struct __pmpkg_operations_t _pacman_syncpkg_operations = { }; static -int _pacman_syncpkg_init(pmpkg_t *pkg, pmdb_t *db) +int _pacman_syncpkg_init(pmpkg_t *pkg, Database *db) { ASSERT(pkg != NULL, RET_ERR(PM_ERR_PKG_INVALID, -1)); ASSERT(_pacman_pkg_init(pkg, db) == 0, return -1); @@ -132,7 +132,7 @@ int _pacman_syncpkg_init(pmpkg_t *pkg, pmdb_t *db) } static -pmpkg_t *_pacman_syncdb_pkg_new(pmdb_t *db, const struct archive_entry *entry, unsigned int inforeq) +pmpkg_t *_pacman_syncdb_pkg_new(Database *db, const struct archive_entry *entry, unsigned int inforeq) { pmpkg_t *pkg; const char *dname; @@ -151,13 +151,13 @@ pmpkg_t *_pacman_syncdb_pkg_new(pmdb_t *db, const struct archive_entry *entry, u } static -pmlist_t *_pacman_syncdb_test(pmdb_t *db) +pmlist_t *_pacman_syncdb_test(Database *db) { /* testing sync dbs is not supported */ return _pacman_list_new(); } -int _pacman_syncdb_update(pmdb_t *db, int force) +int _pacman_syncdb_update(Database *db, int force) { char path[PATH_MAX], dirpath[PATH_MAX]; pmlist_t *files = NULL; @@ -208,7 +208,7 @@ int _pacman_syncdb_update(pmdb_t *db, int force) } static -int _pacman_syncdb_open(pmdb_t *db, int flags, time_t *timestamp) +int _pacman_syncdb_open(Database *db, int flags, time_t *timestamp) { struct stat buf; char dbpath[PATH_MAX]; @@ -230,7 +230,7 @@ int _pacman_syncdb_open(pmdb_t *db, int flags, time_t *timestamp) } static -int _pacman_syncdb_close(pmdb_t *db) +int _pacman_syncdb_close(Database *db) { if(db->handle) { archive_read_finish(db->handle); @@ -240,14 +240,14 @@ int _pacman_syncdb_close(pmdb_t *db) } static -int _pacman_syncdb_rewind(pmdb_t *db) +int _pacman_syncdb_rewind(Database *db) { _pacman_syncdb_close(db); return _pacman_syncdb_open(db, 0, NULL); } static -pmpkg_t *_pacman_syncdb_readpkg(pmdb_t *db, unsigned int inforeq) +pmpkg_t *_pacman_syncdb_readpkg(Database *db, unsigned int inforeq) { struct archive_entry *entry = NULL; @@ -274,7 +274,7 @@ pmpkg_t *_pacman_syncdb_readpkg(pmdb_t *db, unsigned int inforeq) } static -pmpkg_t *_pacman_syncdb_scan(pmdb_t *db, const char *target, unsigned int inforeq) +pmpkg_t *_pacman_syncdb_scan(Database *db, const char *target, unsigned int inforeq) { char name[PKG_FULLNAME_LEN]; char *ptr = NULL; @@ -309,7 +309,7 @@ pmpkg_t *_pacman_syncdb_scan(pmdb_t *db, const char *target, unsigned int infore } static -int _pacman_syncdb_file_reader(pmdb_t *db, pmpkg_t *info, unsigned int inforeq, unsigned int inforeq_masq, int (*reader)(pmpkg_t *, FILE *)) +int _pacman_syncdb_file_reader(Database *db, pmpkg_t *info, unsigned int inforeq, unsigned int inforeq_masq, int (*reader)(pmpkg_t *, FILE *)) { int ret = 0; @@ -324,7 +324,7 @@ int _pacman_syncdb_file_reader(pmdb_t *db, pmpkg_t *info, unsigned int inforeq, } static -int _pacman_syncdb_read(pmdb_t *db, pmpkg_t *info, unsigned int inforeq) +int _pacman_syncdb_read(Database *db, pmpkg_t *info, unsigned int inforeq) { int descdone = 0, depsdone = 0; diff --git a/lib/libpacman/db/syncdb.h b/lib/libpacman/db/syncdb.h index db23d90..312dde8 100644 --- a/lib/libpacman/db/syncdb.h +++ b/lib/libpacman/db/syncdb.h @@ -27,7 +27,7 @@ extern const pmdb_ops_t _pacman_syncdb_ops; -int _pacman_syncdb_update(pmdb_t *db, int force); +int _pacman_syncdb_update(libpacman::Database *db, int force); namespace libpacman { diff --git a/lib/libpacman/deps.cpp b/lib/libpacman/deps.cpp index 8734abd..5c04927 100644 --- a/lib/libpacman/deps.cpp +++ b/lib/libpacman/deps.cpp @@ -43,6 +43,8 @@ #include "versioncmp.h" #include "handle.h" +using namespace libpacman; + static pmgraph_t *_pacman_graph_new(void) { pmgraph_t *graph = _pacman_zalloc(sizeof(pmgraph_t)); @@ -212,7 +214,7 @@ pmlist_t *_pacman_checkdeps(pmtrans_t *trans, unsigned char op, pmlist_t *packag int found = 0; pmlist_t *baddeps = NULL; pmdepmissing_t *miss = NULL; - pmdb_t *db_local = trans->handle->db_local; + Database *db_local = trans->handle->db_local; if(db_local == NULL) { return(NULL); @@ -492,7 +494,7 @@ int _pacman_splitdep(char *depstr, pmdepend_t *depend) * I mean dependencies that are *only* required for packages in the target * list, so they can be safely removed. This function is recursive. */ -pmlist_t *_pacman_removedeps(pmdb_t *db, pmlist_t *targs) +pmlist_t *_pacman_removedeps(Database *db, pmlist_t *targs) { pmlist_t *i, *j, *k; pmlist_t *newtargs = targs; @@ -760,7 +762,7 @@ int pacman_output_generate(pmlist_t *targets, pmlist_t *dblist) { int foundMatch = 0; unsigned int inforeq = INFRQ_DEPENDS; for(j = dblist; j; j = j->next) { - pmdb_t *db = j->data; + Database *db = j->data; do { foundMatch = 0; pkg = db->readpkg(inforeq); diff --git a/lib/libpacman/deps.h b/lib/libpacman/deps.h index 1005167..5948676 100644 --- a/lib/libpacman/deps.h +++ b/lib/libpacman/deps.h @@ -52,7 +52,7 @@ int _pacman_depmiss_isin(pmdepmissing_t *needle, pmlist_t *haystack); pmlist_t *_pacman_sortbydeps(pmlist_t *targets, int mode); pmlist_t *_pacman_checkdeps(pmtrans_t *trans, unsigned char op, pmlist_t *packages); int _pacman_splitdep(char *depstr, pmdepend_t *depend); -pmlist_t *_pacman_removedeps(pmdb_t *db, pmlist_t *targs); +pmlist_t *_pacman_removedeps(libpacman::Database *db, pmlist_t *targs); int _pacman_resolvedeps(pmtrans_t *trans, pmpkg_t *syncpkg, pmlist_t *list, pmlist_t *trail, pmlist_t **data); int _pacman_depcmp(pmpkg_t *pkg, pmdepend_t *dep); diff --git a/lib/libpacman/handle.h b/lib/libpacman/handle.h index b5b8271..be79a84 100644 --- a/lib/libpacman/handle.h +++ b/lib/libpacman/handle.h @@ -34,6 +34,12 @@ typedef struct __pmhandle_t pmhandle_t; #include "object.h" #include "trans.h" +namespace libpacman { + +class Database; + +} + typedef enum __pmaccess_t { PM_ACCESS_RO, PM_ACCESS_RW @@ -42,8 +48,8 @@ typedef enum __pmaccess_t { struct __pmhandle_t { pmaccess_t access; uid_t uid; - pmdb_t *db_local; - pmlist_t *dbs_sync; /* List of (pmdb_t *) */ + libpacman::Database *db_local; + pmlist_t *dbs_sync; /* List of (libpacman::Database *) */ FILE *logfd; FFileLock *filelock; pmtrans_t *trans; diff --git a/lib/libpacman/package.cpp b/lib/libpacman/package.cpp index ad1011f..48c26c2 100644 --- a/lib/libpacman/package.cpp +++ b/lib/libpacman/package.cpp @@ -211,7 +211,7 @@ int _pacman_pkg_delete(pmpkg_t *self) return 0; } -int _pacman_pkg_init(pmpkg_t *self, pmdb_t *db) +int _pacman_pkg_init(pmpkg_t *self, Database *db) { ASSERT(self != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1)); ASSERT(_pacman_object_init(&self->as_pmobject_t, NULL) == 0, return -1); @@ -431,7 +431,7 @@ void *__pacman_pkg_getinfo(pmpkg_t *pkg, unsigned char parm) case PM_PKG_FORCE: if(!(pkg->infolevel & INFRQ_DESC)) { _pacman_log(PM_LOG_DEBUG, _("loading DESC info for '%s'"), pkg->name); - ((__pmdb_t *)pkg->data)->read(pkg, INFRQ_DESC); + pkg->database->read(pkg, INFRQ_DESC); } break; /* Depends entry */ @@ -441,7 +441,7 @@ void *__pacman_pkg_getinfo(pmpkg_t *pkg, unsigned char parm) case PM_PKG_PROVIDES: if(!(pkg->infolevel & INFRQ_DEPENDS)) { _pacman_log(PM_LOG_DEBUG, "loading DEPENDS info for '%s'", pkg->name); - ((__pmdb_t *)pkg->data)->read(pkg, INFRQ_DEPENDS); + pkg->database->read(pkg, INFRQ_DEPENDS); } break; /* Files entry */ @@ -449,14 +449,14 @@ void *__pacman_pkg_getinfo(pmpkg_t *pkg, unsigned char parm) case PM_PKG_BACKUP: if(pkg->data == handle->db_local && !(pkg->infolevel & INFRQ_FILES)) { _pacman_log(PM_LOG_DEBUG, _("loading FILES info for '%s'"), pkg->name); - ((__pmdb_t *)pkg->data)->read(pkg, INFRQ_FILES); + pkg->database->read(pkg, INFRQ_FILES); } break; /* Scriptlet */ case PM_PKG_SCRIPLET: if(pkg->data == handle->db_local && !(pkg->infolevel & INFRQ_SCRIPLET)) { _pacman_log(PM_LOG_DEBUG, _("loading SCRIPLET info for '%s'"), pkg->name); - ((__pmdb_t *)pkg->data)->read(pkg, INFRQ_SCRIPLET); + pkg->database->read(pkg, INFRQ_SCRIPLET); } break; } diff --git a/lib/libpacman/package.h b/lib/libpacman/package.h index ae864a4..3142da0 100644 --- a/lib/libpacman/package.h +++ b/lib/libpacman/package.h @@ -89,7 +89,7 @@ struct __pmpkg_operations_t { /* IMPROVEMENT: Add a dirty_flags to know what flags needs to be written */ struct __pmpkg_t { struct __pmobject_t as_pmobject_t; - pmdb_t *database; + libpacman::Database *database; unsigned int flags; char name[PKG_NAME_LEN]; @@ -144,7 +144,7 @@ pmpkg_t *_pacman_pkg_new_from_filename(const char *filename, int witharch); pmpkg_t *_pacman_pkg_dup(pmpkg_t *pkg); int _pacman_pkg_delete(pmpkg_t *self); -int _pacman_pkg_init(pmpkg_t *self, pmdb_t *db); +int _pacman_pkg_init(pmpkg_t *self, libpacman::Database *db); int _pacman_pkg_fini(pmpkg_t *self); int _pacman_pkg_cmp(const void *p1, const void *p2); diff --git a/lib/libpacman/pacman.cpp b/lib/libpacman/pacman.cpp index d4ba7ec..14a65d5 100644 --- a/lib/libpacman/pacman.cpp +++ b/lib/libpacman/pacman.cpp @@ -25,7 +25,7 @@ #include "config.h" /* pacman-g2 */ -#include "pacman.h" +#include "pacman_p.h" #include "package/fpmpackage.h" #include "config_parser.h" @@ -63,15 +63,6 @@ using namespace libpacman; -#define DEFINE_CAST(c_type, cxx_type) \ -static c_type *c_cast(cxx_type *obj) \ -{ return (c_type *)obj; } \ - \ -static cxx_type *cxx_cast(c_type *obj) \ -{ return (cxx_type *)obj; } - -DEFINE_CAST(struct __pmgrp_t, Group) - /* Globals */ pmhandle_t *handle = NULL; enum __pmerrno_t pm_errno; @@ -122,7 +113,7 @@ int pacman_release(void) /* close local database */ if(handle->db_local) { /* db_unregister() will set handle->db_local to NULL */ - pacman_db_unregister(handle->db_local); + pacman_db_unregister(c_cast(handle->db_local)); } /* and also sync ones */ while(handle->dbs_sync) { @@ -189,15 +180,16 @@ pmdb_t *pacman_db_register(const char *treename) /* Do not register a database if a transaction is on-going */ ASSERT(handle->trans == NULL, RET_ERR(PM_ERR_TRANS_NOT_NULL, NULL)); - return(_pacman_db_register(treename, NULL)); + return c_cast(_pacman_db_register(treename, NULL)); } /** Unregister a package database * @param db pointer to the package database to unregister * @return 0 on success, -1 on error (pm_errno is set accordingly) */ -int pacman_db_unregister(pmdb_t *db) +int pacman_db_unregister(pmdb_t *_db) { + Database *db = cxx_cast(_db); int found = 0; /* Sanity checks */ @@ -239,8 +231,9 @@ int pacman_db_unregister(pmdb_t *db) * @param parm name of the info to get * @return a void* on success (the value), NULL on error */ -void *pacman_db_getinfo(pmdb_t *db, unsigned char parm) +void *pacman_db_getinfo(pmdb_t *_db, unsigned char parm) { + Database *db = cxx_cast(_db); void *data = NULL; char path[PATH_MAX]; pmserver_t *server; @@ -274,8 +267,9 @@ void *pacman_db_getinfo(pmdb_t *db, unsigned char parm) * @param url url of the server * @return 0 on success, -1 on error (pm_errno is set accordingly) */ -int pacman_db_setserver(pmdb_t *db, char *url) +int pacman_db_setserver(pmdb_t *_db, char *url) { + Database *db = cxx_cast(_db); int found = 0; /* Sanity checks */ @@ -288,7 +282,7 @@ int pacman_db_setserver(pmdb_t *db, char *url) } else { pmlist_t *i; for(i = handle->dbs_sync; i && !found; i = i->next) { - pmdb_t *sdb = i->data; + Database *sdb = i->data; if(strcmp(db->treename, sdb->treename) == 0) { found = 1; } @@ -322,8 +316,9 @@ int pacman_db_setserver(pmdb_t *db, char *url) * @return 0 on success, -1 on error (pm_errno is set accordingly), 1 if up * to date */ -int pacman_db_update(int force, pmdb_t *db) +int pacman_db_update(int force, pmdb_t *_db) { + Database *db = cxx_cast(_db); int status=0; /* Sanity checks */ @@ -351,8 +346,10 @@ int pacman_db_update(int force, pmdb_t *db) * @param name of the package * @return the package entry on success, NULL on error */ -pmpkg_t *pacman_db_readpkg(pmdb_t *db, const char *name) +pmpkg_t *pacman_db_readpkg(pmdb_t *_db, const char *name) { + Database *db = cxx_cast(_db); + /* Sanity checks */ ASSERT(handle != NULL, return(NULL)); ASSERT(db != NULL, return(NULL)); @@ -366,8 +363,10 @@ pmpkg_t *pacman_db_readpkg(pmdb_t *db, const char *name) * @return the list of packages on success, NULL on error. Returned list * is an internally cached list and shouldn't be freed. */ -pmlist_t *pacman_db_getpkgcache(pmdb_t *db) +pmlist_t *pacman_db_getpkgcache(pmdb_t *_db) { + Database *db = cxx_cast(_db); + /* Sanity checks */ ASSERT(handle != NULL, return(NULL)); ASSERT(db != NULL, return(NULL)); @@ -380,8 +379,10 @@ pmlist_t *pacman_db_getpkgcache(pmdb_t *db) * @param name name of the package * @return the list of packages on success, NULL on error */ -pmlist_t *pacman_db_whatprovides(pmdb_t *db, char *name) +pmlist_t *pacman_db_whatprovides(pmdb_t *_db, char *name) { + Database *db = cxx_cast(_db); + /* Sanity checks */ ASSERT(handle != NULL, return(NULL)); ASSERT(db != NULL, return(NULL)); @@ -395,8 +396,10 @@ pmlist_t *pacman_db_whatprovides(pmdb_t *db, char *name) * @param name of the group * @return the groups entry on success, NULL on error */ -pmgrp_t *pacman_db_readgrp(pmdb_t *db, char *name) +pmgrp_t *pacman_db_readgrp(pmdb_t *_db, char *name) { + Database *db = cxx_cast(_db); + /* Sanity checks */ ASSERT(handle != NULL, return(NULL)); ASSERT(db != NULL, return(NULL)); @@ -410,8 +413,10 @@ pmgrp_t *pacman_db_readgrp(pmdb_t *db, char *name) * @return the list of groups on success, NULL on error. Returned list * is an internally cached list and shouldn't be freed. */ -pmlist_t *pacman_db_getgrpcache(pmdb_t *db) +pmlist_t *pacman_db_getgrpcache(pmdb_t *_db) { + Database *db = cxx_cast(_db); + /* Sanity checks */ ASSERT(handle != NULL, return(NULL)); ASSERT(db != NULL, return(NULL)); @@ -731,8 +736,10 @@ int pacman_sync_cleancache(int full) * @param db pointer to the package database to search in * @return the list of problems found on success, NULL on error */ -pmlist_t *pacman_db_test(pmdb_t *db) +pmlist_t *pacman_db_test(pmdb_t *_db) { + Database *db = cxx_cast(_db); + /* Sanity checks */ ASSERT(handle != NULL, return(NULL)); ASSERT(db != NULL, return(NULL)); @@ -744,8 +751,9 @@ pmlist_t *pacman_db_test(pmdb_t *db) * @param db pointer to the package database to search in * @return the list of packages on success, NULL on error */ -pmlist_t *pacman_db_search(pmdb_t *db) +pmlist_t *pacman_db_search(pmdb_t *_db) { + Database *db = cxx_cast(_db); pmlist_t *ret; /* Sanity checks */ diff --git a/lib/libpacman/pacman_p.h b/lib/libpacman/pacman_p.h new file mode 100644 index 0000000..b7ef7d8 --- /dev/null +++ b/lib/libpacman/pacman_p.h @@ -0,0 +1,47 @@ +/* + * pacman_p.h + * + * Copyright (c) 2014 by Michel Hermier <[email protected]> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ +#ifndef _PACMAN_P_H +#define _PACMAN_P_H + +#include "pacman.h" + +#define DEFINE_CAST(c_type, cxx_type) \ + static c_type *c_cast(cxx_type *obj) \ +{ return (c_type *)obj; } \ + \ +static cxx_type *cxx_cast(c_type *obj) \ +{ return (cxx_type *)obj; } + +namespace libpacman { + +class Database; +class Group; + +} + +DEFINE_CAST(struct __pmdb_t, libpacman::Database) +DEFINE_CAST(struct __pmgrp_t, libpacman::Group) + +#undef DEFINE_CAST + +#endif /* _PACMAN_P_H */ + +/* vim: set ts=2 sw=2 noet: */ diff --git a/lib/libpacman/sync.cpp b/lib/libpacman/sync.cpp index c707d57..c03bc3d 100644 --- a/lib/libpacman/sync.cpp +++ b/lib/libpacman/sync.cpp @@ -39,7 +39,7 @@ #include "versioncmp.h" #include "handle.h" #include "util.h" -#include "pacman.h" +#include "pacman_p.h" #include "handle.h" #include "server.h" #include "packages_transaction.h" @@ -59,6 +59,8 @@ #include <stdio.h> #include <time.h> +using namespace libpacman; + pmsyncpkg_t *_pacman_syncpkg_new(int type, pmpkg_t *spkg, void *data) { pmsyncpkg_t *ps; @@ -104,7 +106,7 @@ int _pacman_sync_addtarget(pmtrans_t *trans, const char *name) pmpkg_t *pkg_local; pmpkg_t *spkg = NULL; int cmp; - pmdb_t *db_local = trans->handle->db_local; + Database *db_local = trans->handle->db_local; pmlist_t *dbs_sync = trans->handle->dbs_sync; ASSERT(db_local != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); @@ -117,7 +119,7 @@ int _pacman_sync_addtarget(pmtrans_t *trans, const char *name) *targ = '\0'; targ++; for(j = dbs_sync; j && !spkg; j = j->next) { - pmdb_t *dbs = j->data; + Database *dbs = j->data; if(strcmp(dbs->treename, targline) == 0) { spkg = _pacman_db_get_pkgfromcache(dbs, targ); if(spkg == NULL) { @@ -137,14 +139,14 @@ int _pacman_sync_addtarget(pmtrans_t *trans, const char *name) } else { targ = targline; for(j = dbs_sync; j && !spkg; j = j->next) { - pmdb_t *dbs = j->data; + Database *dbs = j->data; spkg = _pacman_db_get_pkgfromcache(dbs, targ); } if(spkg == NULL) { /* Search provides */ _pacman_log(PM_LOG_FLOW2, _("target '%s' not found -- looking for provisions"), targ); for(j = dbs_sync; j && !spkg; j = j->next) { - pmdb_t *dbs = j->data; + Database *dbs = j->data; pmlist_t *p = _pacman_db_whatprovides(dbs, targ); if(p) { _pacman_log(PM_LOG_DEBUG, _("found '%s' as a provision for '%s'"), p->data, targ); @@ -217,7 +219,7 @@ static int check_olddelay(void) } for(i = handle->dbs_sync; i; i= i->next) { - pmdb_t *db = i->data; + Database *db = i->data; if(db->gettimestamp(&tm) == -1) { continue; } @@ -236,7 +238,7 @@ int _pacman_sync_prepare(pmtrans_t *trans, pmlist_t **data) pmlist_t *asked = NULL; pmlist_t *i, *j, *k, *l, *m; int ret = 0; - pmdb_t *db_local = trans->handle->db_local; + Database *db_local = trans->handle->db_local; ASSERT(db_local != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1)); @@ -615,7 +617,7 @@ int _pacman_sync_commit(pmtrans_t *trans, pmlist_t **data) pmlist_t *i, *j; pmtrans_t *tr = NULL; int replaces = 0; - pmdb_t *db_local = trans->handle->db_local; + Database *db_local = trans->handle->db_local; ASSERT(db_local != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1)); @@ -781,12 +783,12 @@ int _pacman_trans_download_commit(pmtrans_t *trans, pmlist_t **data) int done = 1; for(i = handle->dbs_sync; i; i = i->next) { struct stat buf; - pmdb_t *current = i->data; + Database *current = i->data; for(j = trans->syncpkgs; j; j = j->next) { pmsyncpkg_t *ps = j->data; pmpkg_t *spkg = ps->pkg; - pmdb_t *dbs = spkg->data; + Database *dbs = spkg->data; if(current == dbs) { char filename[PATH_MAX]; @@ -801,7 +803,7 @@ int _pacman_trans_download_commit(pmtrans_t *trans, pmlist_t **data) } } - EVENT(trans, PM_TRANS_EVT_PRINTURI, pacman_db_getinfo(current, PM_DB_FIRSTSERVER), filename); + EVENT(trans, PM_TRANS_EVT_PRINTURI, pacman_db_getinfo(c_cast(current), PM_DB_FIRSTSERVER), filename); } else { if(stat(lcpath, &buf)) { /* file is not in the cache dir, so add it to the list */ diff --git a/lib/libpacman/trans.cpp b/lib/libpacman/trans.cpp index fdf3ae2..1e61700 100644 --- a/lib/libpacman/trans.cpp +++ b/lib/libpacman/trans.cpp @@ -54,12 +54,14 @@ #include <stdlib.h> #include <string.h> +using namespace libpacman; + static int _pacman_remove_commit(pmtrans_t *trans, pmlist_t **data); static int check_oldcache(void) { - pmdb_t *db = handle->db_local; + Database *db = handle->db_local; time_t timestamp; if(db->gettimestamp(×tamp) == -1) { @@ -272,7 +274,7 @@ pmsyncpkg_t *_pacman_trans_add(pmtrans_t *trans, pmsyncpkg_t *syncpkg, int flags ASSERT(syncpkg->pkg != NULL || syncpkg->pkg_local != NULL, RET_ERR(PM_ERR_WRONG_ARGS, NULL)); if(syncpkg->pkg != NULL && syncpkg->pkg_local == NULL) { - pmdb_t *db_local = trans->handle->db_local; + Database *db_local = trans->handle->db_local; syncpkg->pkg_local = _pacman_db_get_pkgfromcache(db_local, syncpkg->pkg->name); } @@ -305,7 +307,7 @@ pmsyncpkg_t *_pacman_trans_add_target(pmtrans_t *trans, const char *target, pmtr } static -pmpkg_t *_pacman_filedb_load(pmdb_t *db, const char *name) +pmpkg_t *_pacman_filedb_load(Database *db, const char *name) { struct stat buf; @@ -322,7 +324,7 @@ static int _pacman_remove_addtarget(pmtrans_t *trans, const char *name) { pmpkg_t *pkg_local; - pmdb_t *db_local = trans->handle->db_local; + Database *db_local = trans->handle->db_local; ASSERT(db_local != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1)); @@ -353,7 +355,7 @@ int _pacman_trans_addtarget(pmtrans_t *trans, const char *target) { pmlist_t *i; pmpkg_t *pkg_new, *pkg_local, *pkg_queued = NULL; - pmdb_t *db_local = trans->handle->db_local; + Database *db_local = trans->handle->db_local; /* Sanity checks */ ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1)); @@ -452,7 +454,7 @@ static int _pacman_add_prepare(pmtrans_t *trans, pmlist_t **data) { pmlist_t *lp; - pmdb_t *db_local = trans->handle->db_local; + Database *db_local = trans->handle->db_local; ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1)); ASSERT(db_local != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); @@ -552,7 +554,7 @@ static int _pacman_remove_prepare(pmtrans_t *trans, pmlist_t **data) { pmlist_t *lp; - pmdb_t *db_local = trans->handle->db_local; + Database *db_local = trans->handle->db_local; ASSERT(db_local != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1)); @@ -654,7 +656,7 @@ int _pacman_fpmpackage_install(pmpkg_t *pkg, pmtranstype_t type, pmtrans_t *tran double percent = 0; struct archive *archive; struct archive_entry *entry; - pmdb_t *db_local = trans->handle->db_local; + Database *db_local = trans->handle->db_local; pmlist_t *lp; char expath[PATH_MAX], cwd[PATH_MAX] = ""; @@ -1046,7 +1048,7 @@ int _pacman_add_commit(pmtrans_t *trans, pmlist_t **data) unsigned char cb_state; time_t t; pmlist_t *targ, *lp; - pmdb_t *db_local = trans->handle->db_local; + Database *db_local = trans->handle->db_local; ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1)); ASSERT(db_local != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); @@ -1264,7 +1266,7 @@ int _pacman_remove_commit(pmtrans_t *trans, pmlist_t **data) pmpkg_t *pkg_local; pmlist_t *targ, *lp; int howmany, remain; - pmdb_t *db_local = trans->handle->db_local; + Database *db_local = trans->handle->db_local; ASSERT(db_local != NULL, RET_ERR(PM_ERR_DB_NULL, -1)); ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1)); diff --git a/lib/libpacman/trans_sysupgrade.cpp b/lib/libpacman/trans_sysupgrade.cpp index a27f840..a9c3ac8 100644 --- a/lib/libpacman/trans_sysupgrade.cpp +++ b/lib/libpacman/trans_sysupgrade.cpp @@ -56,6 +56,8 @@ #include "sync.h" +using namespace libpacman; + static int istoonew(pmpkg_t *pkg) { time_t t; @@ -69,7 +71,7 @@ int _pacman_trans_sysupgrade(pmtrans_t *trans) { pmlist_t *i, *j, *k; pmhandle_t *handle; - pmdb_t *db_local; + Database *db_local; pmlist_t *dbs_sync; /* Sanity checks */ @@ -98,7 +100,7 @@ int _pacman_trans_sysupgrade(pmtrans_t *trans) } else { /* get confirmation for the replacement */ int doreplace = 0; - QUESTION(trans, PM_TRANS_CONV_REPLACE_PKG, lpkg, spkg, ((pmdb_t *)i->data)->treename, &doreplace); + QUESTION(trans, PM_TRANS_CONV_REPLACE_PKG, lpkg, spkg, ((Database *)i->data)->treename, &doreplace); if(doreplace) { /* if confirmed, add this to the 'final' list, designating 'lpkg' as _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
