Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=df1e0b12864de4e62b40348ec3efce858d68fd41

commit df1e0b12864de4e62b40348ec3efce858d68fd41
Author: Michel Hermier <[email protected]>
Date:   Wed May 7 13:23:56 2014 +0200

libpacman: Make Package::database a getter.

diff --git a/lib/libpacman/cache.cpp b/lib/libpacman/cache.cpp
index 7a9c6d0..4d967c1 100644
--- a/lib/libpacman/cache.cpp
+++ b/lib/libpacman/cache.cpp
@@ -198,7 +198,7 @@ int _pacman_db_load_grpcache(Database *db)
Package *pkg = lp->data;

if(!(pkg->flags & INFRQ_DESC)) {
-                       pkg->database->read(pkg, INFRQ_DESC);
+                       pkg->read(INFRQ_DESC);
}

for(i = pkg->groups(); i; i = i->next) {
diff --git a/lib/libpacman/db/localdb.cpp b/lib/libpacman/db/localdb.cpp
index 50877ec..4e9912f 100644
--- a/lib/libpacman/db/localdb.cpp
+++ b/lib/libpacman/db/localdb.cpp
@@ -48,7 +48,7 @@

using namespace libpacman;

-LocalPackage::LocalPackage(Database *database)
+LocalPackage::LocalPackage(LocalDatabase *database)
: Package(database)
{
}
@@ -57,6 +57,11 @@ LocalPackage::~LocalPackage()
{
}

+LocalDatabase *LocalPackage::database() const
+{
+       return static_cast<LocalDatabase *>(Package::database());
+}
+
static
int _pacman_localpkg_file_reader(Database *db, Package *pkg, unsigned int 
flags, unsigned int flags_masq, const char *file, int (*reader)(Package *, FILE 
*))
{
@@ -83,6 +88,7 @@ int LocalPackage::read(unsigned int flags)
{
struct stat buf;
char path[PATH_MAX];
+       LocalDatabase *database = this->database();

ASSERT(database != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
if(f_strempty(name()) || f_strempty(version())) {
@@ -124,7 +130,7 @@ LocalDatabase::~LocalDatabase()
}

static
-LocalPackage *_pacman_localdb_pkg_new(Database *db, const struct dirent 
*dirent, unsigned int inforeq)
+LocalPackage *_pacman_localdb_pkg_new(LocalDatabase *db, const struct dirent 
*dirent, unsigned int inforeq)
{
Package *pkg;
const char *dname;
diff --git a/lib/libpacman/db/localdb.h b/lib/libpacman/db/localdb.h
index 51c2221..ea531e5 100644
--- a/lib/libpacman/db/localdb.h
+++ b/lib/libpacman/db/localdb.h
@@ -30,13 +30,17 @@ const pmdb_ops_t _pacman_localdb_ops;
namespace libpacman
{

+class LocalDatabase;
+
class LocalPackage
: public libpacman::Package
{
public:
-       LocalPackage(Database *database = 0);
+       LocalPackage(LocalDatabase *database = 0);
virtual ~LocalPackage();

+       virtual LocalDatabase *database() const;
+
virtual int read(unsigned int flags);
};

diff --git a/lib/libpacman/db/syncdb.cpp b/lib/libpacman/db/syncdb.cpp
index bd785eb..10e061f 100644
--- a/lib/libpacman/db/syncdb.cpp
+++ b/lib/libpacman/db/syncdb.cpp
@@ -61,7 +61,7 @@ int suffixcmp(const char *str, const char *suffix)
return strcmp(str + len - suflen, suffix);
}

-SyncPackage::SyncPackage(Database *database)
+SyncPackage::SyncPackage(SyncDatabase *database)
: Package(database)
{
}
@@ -70,6 +70,11 @@ SyncPackage::~SyncPackage()
{
}

+SyncDatabase *SyncPackage::database() const
+{
+       return static_cast<SyncDatabase *>(Package::database());
+}
+
static
int _pacman_syncpkg_file_reader(Database *db, Package *pkg, unsigned int flags, 
unsigned int flags_masq, int (*reader)(Package *, FILE *))
{
@@ -88,6 +93,7 @@ int _pacman_syncpkg_file_reader(Database *db, Package *pkg, 
unsigned int flags,
int SyncPackage::read(unsigned int flags)
{
int descdone = 0, depsdone = 0;
+       SyncDatabase *database = this->database();

ASSERT(database != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
if(name()[0] == 0 || version()[0] == 0) {
@@ -124,7 +130,7 @@ SyncDatabase::~SyncDatabase()
}

static
-SyncPackage *_pacman_syncdb_pkg_new(Database *db, const struct archive_entry 
*entry, unsigned int inforeq)
+SyncPackage *_pacman_syncdb_pkg_new(SyncDatabase *db, const struct 
archive_entry *entry, unsigned int inforeq)
{
Package *pkg;
const char *dname;
diff --git a/lib/libpacman/db/syncdb.h b/lib/libpacman/db/syncdb.h
index 40885b9..880dd12 100644
--- a/lib/libpacman/db/syncdb.h
+++ b/lib/libpacman/db/syncdb.h
@@ -32,13 +32,17 @@ int _pacman_syncdb_update(libpacman::Database *db, int 
force);
namespace libpacman
{

+class SyncDatabase;
+
class SyncPackage
: public libpacman::Package
{
public:
-       SyncPackage(Database *database = 0);
+       SyncPackage(SyncDatabase *database = 0);
virtual ~SyncPackage();

+       virtual SyncDatabase *database() const;
+
virtual int read(unsigned int flags);
};

diff --git a/lib/libpacman/package.cpp b/lib/libpacman/package.cpp
index c7f4ae3..268f89f 100644
--- a/lib/libpacman/package.cpp
+++ b/lib/libpacman/package.cpp
@@ -49,8 +49,8 @@

using namespace libpacman;

-Package::Package(Database *_database)
-       : database(_database), m_reason(PM_PKG_REASON_EXPLICIT)
+Package::Package(Database *database)
+       : m_database(database), m_reason(PM_PKG_REASON_EXPLICIT)
{
}

@@ -69,7 +69,7 @@ Package::Package(const char *name, const char *version)

Package::Package(const libpacman::Package &other)
{
-       database       = other.database;
+       m_database     = other.m_database;

flags          = other.flags;
STRNCPY(m_name,      other.m_name,      PKG_NAME_LEN);
@@ -126,11 +126,16 @@ Package::~Package()
}
}

-libpacman::Package *Package::dup() const
+Package *Package::dup() const
{
return new Package(*this);
}

+Database *Package::database() const
+{
+       return m_database;
+}
+
bool Package::set_filename(const char *filename, int witharch)
{
if(splitname(filename, m_name, m_version, witharch)) {
@@ -260,10 +265,10 @@ bool Package::splitname(const char *target, char *name, 
char *version, int witha

int Package::read(unsigned int flags)
{
-       ASSERT(database != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
+       ASSERT(m_database != NULL, RET_ERR(PM_ERR_DB_NULL, -1));

if(~this->flags & flags) {
-               return database->read(this, flags);
+               return m_database->read(this, flags);
}
return 0;
}
@@ -272,9 +277,9 @@ int Package::write(unsigned int flags)
{
int ret;

-       ASSERT(database != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
+       ASSERT(m_database != NULL, RET_ERR(PM_ERR_DB_NULL, -1));

-       if((ret = database->write(this, flags)) != 0) {
+       if((ret = m_database->write(this, flags)) != 0) {
_pacman_log(PM_LOG_ERROR, _("could not update requiredby for database entry 
%s-%s"),
name(), version());
}
@@ -283,9 +288,9 @@ int Package::write(unsigned int flags)

int Package::remove()
{
-       ASSERT(database != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
+       ASSERT(m_database != NULL, RET_ERR(PM_ERR_DB_NULL, -1));

-       return database->remove(this);
+       return m_database->remove(this);
}

int Package::filename(char *str, size_t size) const
diff --git a/lib/libpacman/package.h b/lib/libpacman/package.h
index 21badb4..3df0028 100644
--- a/lib/libpacman/package.h
+++ b/lib/libpacman/package.h
@@ -106,6 +106,8 @@ public:

virtual libpacman::Package *dup() const;

+       libpacman::Database *database() const;
+
virtual int read(unsigned int flags);
virtual int write(unsigned int flags); /* Optional */
virtual int remove(); /* Optional */
@@ -119,7 +121,7 @@ public:
FStringList *provides() const;
bool provides(const char *pkgname);

-       libpacman::Database *database;
+       libpacman::Database *m_database;

unsigned int flags;
char m_name[PKG_NAME_LEN];
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to