- implement the url retrieval
authorDuncan Mac-Vicar P <dmacvicar@suse.de>
Fri, 12 Sep 2008 14:33:26 +0000 (14:33 +0000)
committerDuncan Mac-Vicar P <dmacvicar@suse.de>
Fri, 12 Sep 2008 14:33:26 +0000 (14:33 +0000)
zypp/Product.cc
zypp/sat/SolvAttr.cc

index d2f9e2ee2acd6c13933681603f56a2cf9bd43255..3eb4d8a01e0640119ba89ec0c3156065e5df263f 100644 (file)
@@ -162,7 +162,29 @@ namespace zypp
   Product::UrlList Product::urls( const std::string & key_r ) const
   {
     UrlList ret;
-#warning IMPLEMENT PRODUCT URLS
+
+    sat::LookupAttr url( sat::SolvAttr::productUrl, *this );
+    sat::LookupAttr url_type( sat::SolvAttr::productUrlType, *this );
+
+    sat::LookupAttr::iterator url_it(url.begin());
+    sat::LookupAttr::iterator url_type_it(url_type.begin());
+
+    for (;url_it != url.end(); ++url_it, ++url_type_it)
+    {
+        /* safety checks, shouldn't happen (tm) */
+        if (url_type_it == url_type.end())
+        {
+            /* FIXME: Raise exception ?! */
+            ERR << *this << " : The thing that should not happen, happened." << endl;
+            break;
+        }
+
+        if ( url_type_it.asString() == key_r )
+        {
+            ret._list.push_back(url_it.asString());           
+        }
+    } /* while (attribute array) */
+
     return ret;
   }
 
index d2389d0bac529d88b1889dfdd8d60b0a27cc4ea1..303f835d4d4dbd7b286af5787d9d12f9187b54a3 100644 (file)
@@ -107,7 +107,6 @@ namespace sat
   const SolvAttr SolvAttr::productUpdaterepoKey  ( PRODUCT_UPDATEREPOKEY );
   const SolvAttr SolvAttr::productRegisterTarget ( PRODUCT_REGISTER_TARGET );
   const SolvAttr SolvAttr::productRegisterRelease( PRODUCT_REGISTER_RELEASE );
-
   const SolvAttr SolvAttr::productUrl( PRODUCT_URL );
   const SolvAttr SolvAttr::productUrlType( PRODUCT_URL_TYPE );