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

commit c6d0c22f8e5db7b028b32ce1395101d4de3ba6f1
Author: Michel Hermier <herm...@frugalware.org>
Date:   Mon Nov 10 10:13:19 2014 +0100

libpacman: Add flib::keyed_value_traits<libpacman::package_node_ptr>.

diff --git a/lib/libpacman/package_graph.h b/lib/libpacman/package_graph.h
index 44c8db6..34925c1 100644
--- a/lib/libpacman/package_graph.h
+++ b/lib/libpacman/package_graph.h
@@ -24,7 +24,6 @@
#include "util/fset.h"

namespace libpacman {
-
class package_node
: public flib::refcounted
{
@@ -42,7 +41,34 @@ namespace libpacman {

typedef flib::refcounted_shared_ptr<libpacman::package_node> package_node_ptr;
bool operator < (const package_node_ptr &pn1, const package_node_ptr &pn2);
+} // namespace libpacman
+
+namespace flib {
+       template <>
+       struct keyed_value_traits<libpacman::package_node_ptr>
+       {
+               typedef libpacman::package_node_ptr keyed_value_type;
+               typedef flib::str key_type;
+               typedef libpacman::package_node_ptr value_type;
+
+               static const key_type &key_of(const keyed_value_type &o)
+               {
+                       return o->name();
+               }

+               static value_type &value_of(keyed_value_type &o)
+               {
+                       return o;
+               }
+
+               static const value_type &value_of(const keyed_value_type &o)
+               {
+                       return o;
+               }
+       };
+} // namespace flib
+
+namespace libpacman {
typedef flib::set<libpacman::package_node_ptr> package_node_set;

class package_graph
_______________________________________________
Frugalware-git mailing list
Frugalware-git@frugalware.org
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to