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

Reply via email to