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

commit d6789017f4f7fcf46a67d81a7f97a181fb11d3d1
Author: Michel Hermier <herm...@frugalware.org>
Date:   Mon Oct 20 19:31:53 2014 +0200

libpacman: Wrap FList<Package *> in package_list.

diff --git a/lib/libpacman/db.cpp b/lib/libpacman/db.cpp
index 84f265c..e572171 100644
--- a/lib/libpacman/db.cpp
+++ b/lib/libpacman/db.cpp
@@ -92,9 +92,9 @@ bool Database::add_server(const char *url)
return true;
}

-FList<Package *> Database::filter(const PackageMatcher &packagematcher)
+package_list Database::filter(const PackageMatcher &packagematcher)
{
-       FList<Package *> ret;
+       package_list ret;

auto &cache = get_packages();
for(auto it = cache.begin(), end = cache.end(); it != end; ++it) {
@@ -107,14 +107,14 @@ FList<Package *> Database::filter(const PackageMatcher 
&packagematcher)
return ret;
}

-FList<Package *> Database::filter(const FStrMatcher *strmatcher, int 
packagestrmatcher_flags)
+package_list Database::filter(const FStrMatcher *strmatcher, int 
packagestrmatcher_flags)
{
return filter(PackageMatcher(strmatcher, packagestrmatcher_flags));
}

-FList<Package *> Database::filter(const FStringList &needles, int 
packagestrmatcher_flags, int strmatcher_flags)
+package_list Database::filter(const FStringList &needles, int 
packagestrmatcher_flags, int strmatcher_flags)
{
-       FList<Package *> ret;
+       package_list ret;

for(auto i = needles.begin(), end = needles.end(); i != end; ++i) {
const char *pattern = (const char *)*i;
@@ -138,12 +138,12 @@ FList<Package *> Database::filter(const FStringList 
&needles, int packagestrmatc
return ret;
}

-FList<Package *> Database::filter(const char *pattern, int 
packagestrmatcher_flags, int strmatcher_flags)
+package_list Database::filter(const char *pattern, int 
packagestrmatcher_flags, int strmatcher_flags)
{
if(!f_strempty(pattern)) {
return filter(PackageMatcher(pattern, packagestrmatcher_flags, 
strmatcher_flags));
}
-       return FList<Package *>();
+       return package_list();
}

Package *Database::find(const PackageMatcher &packagematcher)
@@ -179,7 +179,7 @@ Package *Database::find(const char *pattern, int 
packagestrmatcher_flags, int st
return NULL;
}

-FList<Package *> Database::whatPackagesProvide(const char *target)
+package_list Database::whatPackagesProvide(const char *target)
{
return filter(target, PM_PACKAGE_FLAG_PROVIDES);
}
@@ -251,9 +251,9 @@ int Database::write(Package *info, unsigned int inforeq)
RET_ERR(PM_ERR_WRONG_ARGS, -1); // Not supported
}

-FList<Package *> Database::getowners(const char *filename)
+package_list Database::getowners(const char *filename)
{
-       return FList<Package *>();
+       return package_list();
}

/* Reads dbpath/treename.lastupdate and populates *ts with the contents.
diff --git a/lib/libpacman/db.h b/lib/libpacman/db.h
index 2967331..209b084 100644
--- a/lib/libpacman/db.h
+++ b/lib/libpacman/db.h
@@ -75,10 +75,10 @@ public:
int remove_pkgfromcache(libpacman::package_ptr pkg);
void free_pkgcache();

-       FList<libpacman::Package *> filter(const libpacman::PackageMatcher 
&packagematcher);
-       FList<libpacman::Package *> filter(const FStrMatcher *strmatcher, int 
packagestrmatcher_flags);
-       FList<libpacman::Package *> filter(const FStringList &needles, int 
packagestrmatcher_flags, int strmatcher_flags = FStrMatcher::EQUAL);
-       FList<libpacman::Package *> filter(const char *pattern, int 
packagestrmatcher_flags, int strmatcher_flags = FStrMatcher::EQUAL);
+       libpacman::package_list filter(const libpacman::PackageMatcher 
&packagematcher);
+       libpacman::package_list filter(const FStrMatcher *strmatcher, int 
packagestrmatcher_flags);
+       libpacman::package_list filter(const FStringList &needles, int 
packagestrmatcher_flags, int strmatcher_flags = FStrMatcher::EQUAL);
+       libpacman::package_list filter(const char *pattern, int 
packagestrmatcher_flags, int strmatcher_flags = FStrMatcher::EQUAL);
libpacman::Package *find(const libpacman::PackageMatcher &packagematcher);
libpacman::Package *find(const FStrMatcher *strmatcher, int 
packagestrmatcher_flags);
libpacman::Package *find(const char *target,
@@ -87,9 +87,9 @@ public:
libpacman::Group *find_group(const char *target);
libpacman::package_set &get_packages();
libpacman::group_set &get_groups();
-       FList<libpacman::Package *> whatPackagesProvide(const char *target);
+       libpacman::package_list whatPackagesProvide(const char *target);

-       virtual FList<libpacman::Package *> getowners(const char *filename); /* 
Make pure virtual */
+       virtual libpacman::package_list getowners(const char *filename); /* 
Make pure virtual */

::libpacman::Handle *m_handle;
char *path;
diff --git a/lib/libpacman/db/localdb.cpp b/lib/libpacman/db/localdb.cpp
index 95754e2..01b0009 100644
--- a/lib/libpacman/db/localdb.cpp
+++ b/lib/libpacman/db/localdb.cpp
@@ -488,12 +488,12 @@ cleanup:
return(retval);
}

-FList<Package *> LocalDatabase::getowners(const char *filename)
+package_list LocalDatabase::getowners(const char *filename)
{
struct stat buf;
int gotcha = 0;
char rpath[PATH_MAX];
-       FList<Package *> ret;
+       package_list ret;

if(stat(filename, &buf) == -1 || realpath(filename, rpath) == NULL) {
RET_ERR(PM_ERR_PKG_OPEN, ret);
diff --git a/lib/libpacman/db/localdb.h b/lib/libpacman/db/localdb.h
index 59d2e29..079da8b 100644
--- a/lib/libpacman/db/localdb.h
+++ b/lib/libpacman/db/localdb.h
@@ -61,7 +61,7 @@ public:

virtual int write(libpacman::Package *info, unsigned int inforeq);

-       virtual FList<libpacman::Package *> getowners(const char *filename);
+       virtual libpacman::package_list getowners(const char *filename);

protected:
virtual int open(int flags, libpacman::Timestamp *timestamp);
diff --git a/lib/libpacman/deps.cpp b/lib/libpacman/deps.cpp
index 11b1c0b..fbc006c 100644
--- a/lib/libpacman/deps.cpp
+++ b/lib/libpacman/deps.cpp
@@ -430,7 +430,7 @@ void pmtrans_t::removedeps()
int pmtrans_t::resolvedeps(FPtrList **data)
{
FPtrList deps;
-       FList<Package *> targ;
+       package_list targ;

if(m_handle->dbs_sync.empty()) {
return(-1);
diff --git a/lib/libpacman/package.cpp b/lib/libpacman/package.cpp
index 8e42895..625c88d 100644
--- a/lib/libpacman/package.cpp
+++ b/lib/libpacman/package.cpp
@@ -144,9 +144,9 @@ pkg_error:
return false;
}

-/* Test for existence of a package in a FList<Package *>.
+/* Test for existence of a package in a package_list.
*/
-const Package *_pacman_pkg_isin(const char *needle, const FList<Package *> 
&haystack)
+const Package *_pacman_pkg_isin(const char *needle, const package_list 
&haystack)
{
if(needle == NULL) {
return NULL;
@@ -353,7 +353,7 @@ struct FPackageStrMatcher
};

static
-int _pacman_strmatcher_match(const FStrMatcher *strmatcher, Package *pkg, int 
flags) {
+int _pacman_strmatcher_match(const FStrMatcher *strmatcher, package_ptr pkg, 
int flags) {
ASSERT(pkg != NULL, RET_ERR(PM_ERR_WRONG_ARGS, 0));

/* FIXME: Make const when const accessors are available */
@@ -394,12 +394,7 @@ PackageMatcher::PackageMatcher(const FStrMatcher 
*strmatcher, int flags)
PackageMatcher::~PackageMatcher()
{ }

-bool PackageMatcher::match(const libpacman::Package *package) const
-{
-       return match(package, ~0);
-}
-
-bool PackageMatcher::match(const Package *package, int mask = ~0) const
+bool PackageMatcher::match(const package_ptr package, int mask = ~0) const
{
return _pacman_strmatcher_match(m_strmatcher, package, m_flags & mask);
}
diff --git a/lib/libpacman/package.h b/lib/libpacman/package.h
index 9df27bd..4befd69 100644
--- a/lib/libpacman/package.h
+++ b/lib/libpacman/package.h
@@ -191,18 +191,17 @@ public:
#else
typedef libpacman::Package *package_ptr;
#endif
+       typedef FList<package_ptr> package_list;
typedef flib::set<libpacman::package_ptr, libpacman::less<const 
libpacman::Package *>> package_set;

class PackageMatcher
-       : FMatcher<const libpacman::Package *>
{
public:
PackageMatcher(const char *str, int flags = PM_PACKAGE_FLAG_NAME, int 
strmatcher_flags = FStrMatcher::EQUAL);
PackageMatcher(const FStrMatcher *strmatcher, int flags);
~PackageMatcher();

-       virtual bool match(const libpacman::Package *package) const override;
-       bool match(const libpacman::Package *package, int mask) const;
+       bool match(const libpacman::package_ptr package, int mask = ~0) const;

private:
const FStrMatcher *m_strmatcher;
@@ -239,7 +238,7 @@ private:
} // namespace libpacman

int _pacman_pkg_cmp(const libpacman::Package *p1, const libpacman::Package *p2);
-const libpacman::Package *_pacman_pkg_isin(const char *needle, const 
FList<libpacman::Package *> &haystack);
+const libpacman::Package *_pacman_pkg_isin(const char *needle, const 
libpacman::package_list &haystack);

#endif /* _PACMAN_PACKAGE_H */

diff --git a/lib/libpacman/pacman.cpp b/lib/libpacman/pacman.cpp
index eabe836..4d8f3f7 100644
--- a/lib/libpacman/pacman.cpp
+++ b/lib/libpacman/pacman.cpp
@@ -580,7 +580,7 @@ pmlist_t *pacman_db_whatprovides(pmdb_t *_db, char *name)
ASSERT(db != NULL, return(NULL));
ASSERT(!_pacman_strempty(name), return(NULL));

-       return c_cast(new FList<Package *>(db->whatPackagesProvide(name)));
+       return c_cast(new package_list(db->whatPackagesProvide(name)));
}

/** Get a group entry from a package database
@@ -835,7 +835,7 @@ pmlist_t *pacman_pkg_getowners(const char *filename)
ASSERT(handle->db_local != NULL, RET_ERR(PM_ERR_DB_NULL, NULL));
ASSERT(!_pacman_strempty(filename), RET_ERR(PM_ERR_WRONG_ARGS, NULL));

-       return c_cast(new FList<Package 
*>(handle->db_local->getowners(filename)));
+       return c_cast(new package_list(handle->db_local->getowners(filename)));
}

/** Create a package from a file.
@@ -981,7 +981,7 @@ pmlist_t *pacman_db_search(pmdb_t *_db)
ASSERT(!handle->needles.empty(), return(NULL));
ASSERT(db != NULL, return(NULL));

-       FList<Package *> *ret = new FList<Package *>(db->filter(handle->needles,
+       package_list *ret = new package_list(db->filter(handle->needles,
PM_PACKAGE_FLAG_NAME | PM_PACKAGE_FLAG_DESCRIPTION | PM_PACKAGE_FLAG_PROVIDES,
FStrMatcher::ALL_IGNORE_CASE));
handle->needles.clear();
_______________________________________________
Frugalware-git mailing list
Frugalware-git@frugalware.org
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to