Author: jkupec
Date: Tue May 22 20:48:46 2007
New Revision: 5590
URL: http://svn.opensuse.org/viewcvs/zypp?rev=5590&view=rev
Log:
pattern.xml parser complete. pattern schema changed.
Added:
trunk/libzypp/devel/devel.jkupec/yum/
trunk/libzypp/devel/devel.jkupec/yum/patterns-example.xml
trunk/libzypp/zypp/parser/yum/PatternFileReader.cc
trunk/libzypp/zypp/parser/yum/PatternFileReader.h
Modified:
trunk/libzypp/zypp/CMakeLists.txt
trunk/libzypp/zypp/data/ResolvableData.h
trunk/libzypp/zypp/data/ResolvableDataConsumer.h
trunk/libzypp/zypp/parser/yum/FileReaderBase.h
trunk/libzypp/zypp/parser/yum/PatchFileReader.cc
trunk/libzypp/zypp/parser/yum/schema/patterns.rnc
trunk/libzypp/zypp/parser/yum/schema/patterns.rng
trunk/libzypp/zypp/parser/yum/schema/repomd.rnc
trunk/libzypp/zypp/parser/yum/schema/repomd.rng
trunk/libzypp/zypp/source/yum/YUMResourceType.cc
trunk/libzypp/zypp/source/yum/YUMResourceType.h
trunk/libzypp/zypp2/parser/yum/YUMParser.cc
trunk/libzypp/zypp2/parser/yum/YUMParser.h
Added: trunk/libzypp/devel/devel.jkupec/yum/patterns-example.xml
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/devel/devel.jkupec/yum/patterns-example.xml?rev=5590&view=auto
==============================================================================
--- trunk/libzypp/devel/devel.jkupec/yum/patterns-example.xml (added)
+++ trunk/libzypp/devel/devel.jkupec/yum/patterns-example.xml Tue May 22 20:48:46 2007
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- valid against patterns.rnc r5590 -->
+http://novell.com/package/metadata/suse/pattern"
+ xmlns:rpm="http://linux.duke.edu/metadata/rpm"
+ count="2">
+ <pattern>
+ <name>example pattern</name>
+ <summary lang="en">Just an example pattern</summary>
+ <summary lang="sk">Toto je len prÃklad patternu</summary>
+ <description lang="en">Description of the example pattern</description>
+ <description lang="sk">Detailnejšà popis patternu</description>
+ <!-- <default/> -->
+ <uservisible/>
+ <category lang="en">Services</category>
+ <category lang="sk">Služby</category>
+ <icon>repodata/example-pattern.png</icon>
+ rpm:requires
+
+
+ </pattern>
+ <pattern>
+ <name>funky apps</name>
+ <summary lang="en">Just an example of funky pattern</summary>
+ <summary lang="sk">PrÃklad funky patternu</summary>
+ <description lang="en">The best apps</description>
+ <description lang="sk">NajsamlepjÅ¡ie programÄoke</description>
+ <default/>
+ <uservisible/>
+ <category lang="en">Desktop Apps</category>
+ <category lang="sk">Klientské aplikácie</category>
+ <icon>repodata/funky-apps-pattern.png</icon>
+ rpm:requires
+
+
+ </pattern>
+</patterns>
Modified: trunk/libzypp/zypp/CMakeLists.txt
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/CMakeLists.txt?rev=5590&r1=5589&r2=5590&view=diff
==============================================================================
--- trunk/libzypp/zypp/CMakeLists.txt (original)
+++ trunk/libzypp/zypp/CMakeLists.txt Tue May 22 20:48:46 2007
@@ -559,6 +559,7 @@
parser/yum/OtherFileReader.cc
parser/yum/FilelistsFileReader.cc
parser/yum/PatchFileReader.cc
+ parser/yum/PatternFileReader.cc
)
SET( zypp_parser_yum_HEADERS
@@ -580,6 +581,7 @@
parser/yum/OtherFileReader.h
parser/yum/FilelistsFileReader.h
parser/yum/PatchFileReader.h
+ parser/yum/PatternFileReader.h
parser/yum/schemanames.h
)
Modified: trunk/libzypp/zypp/data/ResolvableData.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/data/ResolvableData.h?rev=5590&r1=5589&r2=5590&view=diff
==============================================================================
--- trunk/libzypp/zypp/data/ResolvableData.h (original)
+++ trunk/libzypp/zypp/data/ResolvableData.h Tue May 22 20:48:46 2007
@@ -232,7 +232,7 @@
{}
// Flags
- /** */
+ /** Should the pattern be installed by default? */
DefaultIntegral isDefault;
/** Visible or hidden at the UI. */
DefaultIntegral userVisible;
@@ -240,7 +240,7 @@
/** Category */
TranslatedText category;
- /** Icon path. */
+ /** Icon path relative to repository URL. */
std::string icon;
/** UI order string */
std::string order;
Modified: trunk/libzypp/zypp/data/ResolvableDataConsumer.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/data/ResolvableDataConsumer.h?rev=5590&r1=5589&r2=5590&view=diff
==============================================================================
--- trunk/libzypp/zypp/data/ResolvableDataConsumer.h (original)
+++ trunk/libzypp/zypp/data/ResolvableDataConsumer.h Tue May 22 20:48:46 2007
@@ -33,6 +33,7 @@
virtual void consumePatch( const data::RecordId &catalog_id, data::Patch_Ptr ) = 0;
virtual void consumeMessage( const data::RecordId &catalog_id, data::Message_Ptr ) = 0;
virtual void consumeScript( const data::RecordId &catalog_id, data::Script_Ptr ) = 0;
+ virtual void consumePattern( const data::RecordId &catalog_id, data::Pattern_Ptr ) = 0;
virtual void consumeChangelog( const data::RecordId & catalog_id, const data::Resolvable_Ptr &, const Changelog & ) = 0;
virtual void consumeFilelist( const data::RecordId & catalog_id, const data::Resolvable_Ptr &, const data::Filenames & ) = 0;
Modified: trunk/libzypp/zypp/parser/yum/FileReaderBase.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/parser/yum/FileReaderBase.h?rev=5590&r1=5589&r2=5590&view=diff
==============================================================================
--- trunk/libzypp/zypp/parser/yum/FileReaderBase.h (original)
+++ trunk/libzypp/zypp/parser/yum/FileReaderBase.h Tue May 22 20:48:46 2007
@@ -44,7 +44,8 @@
tag_message,
tag_pkgfiles,
tag_deltarpm,
- tag_patchrpm
+ tag_patchrpm,
+ tag_pattern
};
/**
Modified: trunk/libzypp/zypp/parser/yum/PatchFileReader.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/parser/yum/PatchFileReader.cc?rev=5590&r1=5589&r2=5590&view=diff
==============================================================================
--- trunk/libzypp/zypp/parser/yum/PatchFileReader.cc (original)
+++ trunk/libzypp/zypp/parser/yum/PatchFileReader.cc Tue May 22 20:48:46 2007
@@ -274,7 +274,6 @@
if (reader_r->nodeType() == XML_READER_TYPE_ELEMENT)
{
- // TODO package extensions -> pkg-files, license-to-confirm
// xpath: /patch/atoms/package/pkgfiles
if (reader_r->name() == "pkgfiles")
{
@@ -623,11 +622,12 @@
return true;
}
- // TODO xpath: /patch/atoms/script/do-location
+ // xpath: /patch/atoms/script/do-location
if (reader_r->name() == "do-location")
{
- // xsd:anyURI do script file path base (is this used at all?)
+ // xsd:anyURI do script file path base (not used)
// ignoring reader_r->getAttribute("xml:base").asString();
+
// xsd:anyURI do script file path
script->doScriptLocation.filePath = reader_r->getAttribute("href").asString();
return true;
@@ -642,11 +642,12 @@
return true;
}
- // TODO xpath: /patch/atoms/script/undo-location
+ // xpath: /patch/atoms/script/undo-location
if (reader_r->name() == "undo-location")
{
- // xsd:anyURI undo script file path base (is this used at all?)
+ // xsd:anyURI undo script file path base (not used)
// ignoring reader_r->getAttribute("xml:base").asString();
+
// xsd:anyURI undo script file path
script->undoScriptLocation.filePath = reader_r->getAttribute("href").asString();
return true;
Added: trunk/libzypp/zypp/parser/yum/PatternFileReader.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/parser/yum/PatternFileReader.cc?rev=5590&view=auto
==============================================================================
--- trunk/libzypp/zypp/parser/yum/PatternFileReader.cc (added)
+++ trunk/libzypp/zypp/parser/yum/PatternFileReader.cc Tue May 22 20:48:46 2007
@@ -0,0 +1,154 @@
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+
+#include "zypp/base/Logger.h"
+#include "zypp/parser/yum/PatternFileReader.h"
+
+#undef ZYPP_BASE_LOGGER_LOGGROUP
+#define ZYPP_BASE_LOGGER_LOGGROUP "parser"
+
+using namespace std;
+using namespace zypp::xml;
+
+namespace zypp
+{
+ namespace parser
+ {
+ namespace yum
+ {
+
+
+ PatternFileReader::PatternFileReader(const Pathname & pattern_file, ProcessPattern callback)
+ : _callback(callback)
+ {
+ Reader reader(pattern_file);
+ MIL << "Reading " << pattern_file << endl;
+ reader.foreachNode(bind(&PatternFileReader::consumeNode, this, _1));
+ }
+
+ // --------------------------------------------------------------------------
+
+ /*
+ * xpath and multiplicity of processed nodes are included in the code
+ * for convenience:
+ *
+ * // xpath: <xpath> (?|*|+)
+ *
+ * if multiplicity is ommited, then the node has multiplicity 'one'.
+ */
+
+ // --------------------------------------------------------------------------
+
+ bool PatternFileReader::consumeNode(Reader & reader_r)
+ {
+ // dependency block nodes
+ if (consumeDependency(reader_r, _pattern->deps))
+ return true;
+
+ if (reader_r->nodeType() == XML_READER_TYPE_ELEMENT)
+ {
+ // xpath: /patterns/pattern
+ if (reader_r->name() == "pattern")
+ {
+ tag(tag_pattern); // just for the case of reuse somewhere/sometimes
+ _pattern = new data::Pattern;
+ return true;
+ }
+
+ // xpath: /patterns/pattern/name
+ if (reader_r->name() == "name")
+ {
+ _pattern->name = reader_r.nodeText().asString();
+ return true;
+ }
+
+ // xpath: /patterns/pattern/summary (+)
+ if (reader_r->name() == "summary")
+ {
+ Locale locale(reader_r->getAttribute("lang").asString());
+ _pattern->summary.setText(reader_r.nodeText().asString(), locale);
+ return true;
+ }
+
+ // xpath: /patterns/pattern/description (+)
+ if (reader_r->name() == "description")
+ {
+ Locale locale(reader_r->getAttribute("lang").asString());
+ _pattern->description.setText(reader_r.nodeText().asString(), locale);
+ return true;
+ }
+
+ // xpath: /patterns/pattern/default (?)
+ if (reader_r->name() == "default")
+ {
+ _pattern->isDefault = true;
+ }
+
+ // xpath: /patterns/pattern/uservisible (?)
+ if (reader_r->name() == "uservisible")
+ {
+ _pattern->userVisible = true;
+ return true;
+ }
+
+ // xpath: /patterns/pattern/category
+ if (reader_r->name() == "category")
+ {
+ Locale locale(reader_r->getAttribute("lang").asString());
+ _pattern->category.setText(reader_r.nodeText().asString(), locale);
+ return true;
+ }
+
+ // xpath: /patterns/pattern/icon (?)
+ if (reader_r->name() == "icon")
+ {
+ _pattern->icon = reader_r.nodeText().asString();
+ return true;
+ }
+
+ // xpath: /patterns/pattern/script (?)
+ if (reader_r->name() == "script")
+ {
+ _pattern->script = reader_r.nodeText().asString();
+ return true;
+ }
+ }
+
+ else if (reader_r->nodeType() == XML_READER_TYPE_END_ELEMENT)
+ {
+ // xpath: /patterns/pattern
+ if (reader_r->name() == "pattern")
+ {
+ if (_callback)
+ _callback(handoutPattern());
+
+ toParentTag(); // just for the case of reuse somewhere/sometimes
+
+ return true;
+ }
+ }
+
+ return true;
+ }
+
+ // --------------------------------------------------------------------------
+
+ data::Pattern_Ptr PatternFileReader::handoutPattern()
+ {
+ data::Pattern_Ptr ret;
+ ret.swap(_pattern);
+ return ret;
+ }
+
+
+ } // ns yum
+ } // ns parser
+} // ns zypp
+
+// vim: set ts=2 sts=2 sw=2 et ai:
Added: trunk/libzypp/zypp/parser/yum/PatternFileReader.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/parser/yum/PatternFileReader.h?rev=5590&view=auto
==============================================================================
--- trunk/libzypp/zypp/parser/yum/PatternFileReader.h (added)
+++ trunk/libzypp/zypp/parser/yum/PatternFileReader.h Tue May 22 20:48:46 2007
@@ -0,0 +1,88 @@
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+
+#ifndef PATTERNFILEREADER_H_
+#define PATTERNFILEREADER_H_
+
+#include "zypp/base/Function.h"
+#include "zypp/parser/xml/Reader.h"
+#include "zypp/parser/yum/FileReaderBase.h"
+#include "zypp/data/ResolvableData.h"
+
+namespace zypp
+{
+ namespace parser
+ {
+ namespace yum
+ {
+
+
+ /**
+ * Reader of pattern.xml files conforming to RNC/RNG definition located
+ * in zypp/parser/yum/schema/pattern.rn(c|g).
+ *
+ * \see zypp::data::Pattern
+ * \see zypp::parser::xml::Reader
+ */
+ class PatternFileReader : FileReaderBase
+ {
+ public:
+
+ /**
+ * Consumer callback definition. Function which will process the read
+ * data must be of this type.
+ */
+ typedef function ProcessPattern;
+
+ /**
+ * CTOR. Creates also \ref xml::Reader and starts reading.
+ *
+ * \param pattern_file pattern.xml file to read.
+ * \param callback Function which will process read data.
+ */
+ PatternFileReader(const Pathname & pattern_file, ProcessPattern callback);
+
+ private:
+
+ /**
+ * Callback provided to the XML reader.
+ *
+ * \param the xml reader object reading the file
+ * \return true to tell the reader to continue, false to tell it to stop
+ *
+ * \see PrimaryFileReader::consumeNode(xml::Reader)
+ */
+ bool consumeNode(xml::Reader & reader_r);
+
+ /**
+ * Creates a new \ref data::Pattern_Ptr, swaps its contents with \ref _pattern
+ * and returns it. Used to hand-out the data object to its consumer
+ * (a \ref ProcessPattern function) after it has been read.
+ */
+ data::Pattern_Ptr handoutPattern();
+
+ private:
+ /**
+ * Callback for processing pattern metadata.
+ */
+ ProcessPattern _callback;
+
+ /**
+ * Pointer to the \ref zypp::data::Pattern object for storing the pattern
+ * metada.
+ */
+ data::Pattern_Ptr _pattern;
+ };
+
+
+ } // ns yum
+ } // ns parser
+} // ns zypp
+
+#endif /*PATTERNFILEREADER_H_*/
Modified: trunk/libzypp/zypp/parser/yum/schema/patterns.rnc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/parser/yum/schema/patterns.rnc?rev=5590&r1=5589&r2=5590&view=diff
==============================================================================
--- trunk/libzypp/zypp/parser/yum/schema/patterns.rnc (original)
+++ trunk/libzypp/zypp/parser/yum/schema/patterns.rnc Tue May 22 20:48:46 2007
@@ -1,28 +1,47 @@
+# Elements:
+#
+# name
+# summary
+# short summary
+# description
+# detailed description
+# default
+# if present, this element indicates that the pattern should be installed
+# by default
+# uservisible
+# if present, this element indicates that the pattern should be presented
+# to user in the UI.
+# category
+# one of defined categories to which the pattern belongs
+# (e.g Graphical Environments, Desktop Functions)
+# icon
+# path to icon (relative to installation source URL) file representing
+# the pattern
+# script
+# ?
+# dependencies
+# see rpm-ns.rnc
+
default namespace = "http://novell.com/package/metadata/suse/pattern"
include "suse-primary.rnc" {
- start = element-pattern
- # names in dependencies can include a "kind". Should not be used for packages.
- attribute-name =
- attribute kind { "package" | "patch" | "script" | "message" | "product" }?,
- attribute name { text }
+ start = element-patterns
+}
+
+element-patterns = element patterns {
+ attribute count { xsd:nonNegativeInteger }?,
+ element-pattern+
}
element-pattern = element pattern { pattern }
pattern =
element name { text },
- element summary {
- attribute lang { text }?,
- text
- }+,
- element default { "true" | "false" }?,
- element uservisible { "true" | "false" },
- element category { text },
- element icon { text },
+ element summary { localized-string }+,
+ element description { localized-string }+,
+ element default { empty }?,
+ element uservisible { empty }?,
+ element category { localized-string }+,
+ element icon { text }?,
element script { text }?,
- element description {
- attribute lang { text }?,
- text
- }+, dependencies
-
+ dependencies
Modified: trunk/libzypp/zypp/parser/yum/schema/patterns.rng
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/parser/yum/schema/patterns.rng?rev=5590&r1=5589&r2=5590&view=diff
==============================================================================
--- trunk/libzypp/zypp/parser/yum/schema/patterns.rng (original)
+++ trunk/libzypp/zypp/parser/yum/schema/patterns.rng Tue May 22 20:48:46 2007
@@ -1,25 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
-<grammar ns="http://novell.com/package/metadata/suse/pattern" xmlns="http://relaxng.org/ns/structure/1.0">
+<!--
+ Elements:
+
+ name
+ summary
+ short summary
+ description
+ detailed description
+ default
+ if present, this element indicates that the pattern should be installed
+ by default
+ uservisible
+ if present, this element indicates that the pattern should be presented
+ to user in the UI.
+ category
+ one of defined categories to which the pattern belongs
+ (e.g Graphical Environments, Desktop Functions)
+ icon
+ path to icon (relative to installation source URL) file representing
+ the pattern
+ script
+ ?
+ dependencies
+ see rpm-ns.rnc
+-->
+<grammar ns="http://novell.com/package/metadata/suse/pattern" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<include href="suse-primary.rng">
<start>
- <ref name="element-pattern"/>
+ <ref name="element-patterns"/>
</start>
- <!-- names in dependencies can include a "kind". Should not be used for packages. -->
- <define name="attribute-name">
+ </include>
+ <define name="element-patterns">
+ <element name="patterns">
<optional>
- <attribute name="kind">
- <choice>
- <value>package</value>
- <value>patch</value>
- <value>script</value>
- <value>message</value>
- <value>product</value>
- </choice>
+ <attribute name="count">
+ <data type="nonNegativeInteger"/>
</attribute>
</optional>
- <attribute name="name"/>
- </define>
- </include>
+ <oneOrMore>
+ <ref name="element-pattern"/>
+ </oneOrMore>
+ </element>
+ </define>
<define name="element-pattern">
<element name="pattern">
<ref name="pattern"/>
@@ -31,45 +53,39 @@
</element>
<oneOrMore>
<element name="summary">
- <optional>
- <attribute name="lang"/>
- </optional>
- <text/>
+ <ref name="localized-string"/>
+ </element>
+ </oneOrMore>
+ <oneOrMore>
+ <element name="description">
+ <ref name="localized-string"/>
</element>
</oneOrMore>
<optional>
<element name="default">
- <choice>
- <value>true</value>
- <value>false</value>
- </choice>
+ <empty/>
</element>
</optional>
- <element name="uservisible">
- <choice>
- <value>true</value>
- <value>false</value>
- </choice>
- </element>
- <element name="category">
- <text/>
- </element>
- <element name="icon">
- <text/>
- </element>
<optional>
- <element name="script">
- <text/>
+ <element name="uservisible">
+ <empty/>
</element>
</optional>
<oneOrMore>
- <element name="description">
- <optional>
- <attribute name="lang"/>
- </optional>
- <text/>
+ <element name="category">
+ <ref name="localized-string"/>
</element>
</oneOrMore>
+ <optional>
+ <element name="icon">
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name="script">
+ <text/>
+ </element>
+ </optional>
<ref name="dependencies"/>
</define>
</grammar>
Modified: trunk/libzypp/zypp/parser/yum/schema/repomd.rnc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/parser/yum/schema/repomd.rnc?rev=5590&r1=5589&r2=5590&view=diff
==============================================================================
--- trunk/libzypp/zypp/parser/yum/schema/repomd.rnc (original)
+++ trunk/libzypp/zypp/parser/yum/schema/repomd.rnc Tue May 22 20:48:46 2007
@@ -2,7 +2,7 @@
element repomd {
element data {
- attribute type { "other" | "filelists" | "primary" | "group" | "product" | "patches" | "pattern" }&
+ attribute type { "other" | "filelists" | "primary" | "group" | "product" | "patches" | "patterns" }&
element location {
attribute xml:base { xsd:anyURI }?,
attribute href { xsd:anyURI },
Modified: trunk/libzypp/zypp/parser/yum/schema/repomd.rng
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/parser/yum/schema/repomd.rng?rev=5590&r1=5589&r2=5590&view=diff
==============================================================================
--- trunk/libzypp/zypp/parser/yum/schema/repomd.rng (original)
+++ trunk/libzypp/zypp/parser/yum/schema/repomd.rng Tue May 22 20:48:46 2007
@@ -12,7 +12,7 @@
<value>group</value>
<value>product</value>
<value>patches</value>
- <value>pattern</value>
+ <value>patterns</value>
</choice>
</attribute>
<element name="location">
Modified: trunk/libzypp/zypp/source/yum/YUMResourceType.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/source/yum/YUMResourceType.cc?rev=5590&r1=5589&r2=5590&view=diff
==============================================================================
--- trunk/libzypp/zypp/source/yum/YUMResourceType.cc (original)
+++ trunk/libzypp/zypp/source/yum/YUMResourceType.cc Tue May 22 20:48:46 2007
@@ -8,11 +8,8 @@
\---------------------------------------------------------------------*/
#include <map>
-
#include "zypp/base/Exception.h"
-
#include "YUMResourceType.h"
-//#include <iostream>
namespace zypp
{
@@ -32,6 +29,7 @@
const YUMResourceType YUMResourceType::PATCHES(YUMResourceType::PATCHES_e);
const YUMResourceType YUMResourceType::PATCH(YUMResourceType::PATCH_e);
const YUMResourceType YUMResourceType::PRODUCT(YUMResourceType::PRODUCT_e);
+ const YUMResourceType YUMResourceType::PATTERN(YUMResourceType::PATTERN_e);
YUMResourceType::YUMResourceType(const std::string & strval_r)
@@ -51,6 +49,7 @@
_table["patches"] = YUMResourceType::PATCHES_e;
_table["patch"] = YUMResourceType::PATCH_e;
_table["product"] = YUMResourceType::PRODUCT_e;
+ _table["patterns"] = YUMResourceType::PATTERN_e;
_table["NONE"] = _table["none"] = YUMResourceType::NONE_e;
}
@@ -79,12 +78,15 @@
_table[PATCHES_e] = "patches";
_table[PATCH_e] = "patch";
_table[PRODUCT_e] = "product";
+ _table[PATTERN_e] = "patterns";
_table[NONE_e] = "NONE";
}
return _table[_type];
}
- }
- }
-}
+ } // ns yum
+ } // ns source
+} // ns zypp
+
+// vim: set ts=2 sts=2 sw=2 et ai:
Modified: trunk/libzypp/zypp/source/yum/YUMResourceType.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/source/yum/YUMResourceType.h?rev=5590&r1=5589&r2=5590&view=diff
==============================================================================
--- trunk/libzypp/zypp/source/yum/YUMResourceType.h (original)
+++ trunk/libzypp/zypp/source/yum/YUMResourceType.h Tue May 22 20:48:46 2007
@@ -34,6 +34,7 @@
static const YUMResourceType PATCHES; // suse extension
static const YUMResourceType PATCH; // suse extension
static const YUMResourceType PRODUCT; // suse extension
+ static const YUMResourceType PATTERN; // suse extension
enum Type
{
@@ -45,7 +46,8 @@
GROUP_e,
PATCHES_e,
PATCH_e,
- PRODUCT_e
+ PRODUCT_e,
+ PATTERN_e
};
YUMResourceType(Type type) : _type(type) {}
@@ -68,9 +70,11 @@
inline bool operator==(const YUMResourceType & obj1, const YUMResourceType & obj2)
{ return obj1._type == obj2._type; }
- }
- }
-}
+
+ } // ns yum
+ } // ns source
+} // ns zypp
+
#endif /*YUMRESOURCETYPE_H_*/
// vim: set ts=2 sts=2 sw=2 et ai:
Modified: trunk/libzypp/zypp2/parser/yum/YUMParser.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp2/parser/yum/YUMParser.cc?rev=5590&r1=5589&r2=5590&view=diff
==============================================================================
--- trunk/libzypp/zypp2/parser/yum/YUMParser.cc (original)
+++ trunk/libzypp/zypp2/parser/yum/YUMParser.cc Tue May 22 20:48:46 2007
@@ -15,6 +15,7 @@
#include "zypp/parser/yum/PrimaryFileReader.h"
#include "zypp/parser/yum/PatchesFileReader.h"
#include "zypp/parser/yum/PatchFileReader.h"
+#include "zypp/parser/yum/PatternFileReader.h"
#include "zypp/parser/yum/OtherFileReader.h"
#include "zypp/parser/yum/FilelistsFileReader.h"
@@ -142,6 +143,20 @@
// -------------------------------------------------------------------------
+ bool YUMParser::pattern_CB(const data::Pattern_Ptr & pattern_ptr)
+ {
+ _consumer.consumePattern(_catalog_id, pattern_ptr);
+
+ DBG << "got pattern "
+ << pattern_ptr->name << pattern_ptr->edition << " "
+ << pattern_ptr->arch
+ << endl;
+
+ return true;
+ }
+
+ // -------------------------------------------------------------------------
+
void YUMParser::start(const Pathname &cache_dir)
{
zypp::parser::yum::RepomdFileReader(
@@ -201,10 +216,13 @@
case YUMResourceType::OTHER_e:
{
+ WAR << "ignoring other.xml.gz for now..." << endl;
+ /*
zypp::parser::yum::OtherFileReader(
cache_dir + job.filename(),
bind(&YUMParser::other_CB, this, _1, _2),
&progress_function);
+ */
break;
}
@@ -217,6 +235,14 @@
break;
}
+ case YUMResourceType::PATTERN_e:
+ {
+ zypp::parser::yum::PatternFileReader(
+ cache_dir + job.filename(),
+ bind(&YUMParser::pattern_CB, this, _1));
+ break;
+ }
+
default:
{
WAR << "Don't know how to read "
Modified: trunk/libzypp/zypp2/parser/yum/YUMParser.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp2/parser/yum/YUMParser.h?rev=5590&r1=5589&r2=5590&view=diff
==============================================================================
--- trunk/libzypp/zypp2/parser/yum/YUMParser.h (original)
+++ trunk/libzypp/zypp2/parser/yum/YUMParser.h Tue May 22 20:48:46 2007
@@ -161,6 +161,14 @@
*/
bool filelist_CB(const data::Resolvable_Ptr & res_ptr, const data::Filenames & filenames);
+ /**
+ * Callback for processing data returned from \ref PatternFileReader.
+ * Uses \ref _consumer to process read pattern.
+ *
+ * \param pattern_ptr pointer to pattern data object
+ */
+ bool pattern_CB(const data::Pattern_Ptr & pattern_ptr);
+
private:
/** Object for processing the read data */
data::ResolvableDataConsumer & _consumer;
--
To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org
For additional commands, e-mail: zypp-commit+help@opensuse.org