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

Reply via email to