Author: jkupec
Date: Wed Jun 6 09:34:37 2007
New Revision: 5676
URL: http://svn.opensuse.org/viewcvs/zypp?rev=5676&view=rev
Log:
RepoParserOpts added
Added:
trunk/libzypp/zypp/parser/yum/RepoParserOpts.h
Modified:
trunk/libzypp/zypp/CMakeLists.txt
trunk/libzypp/zypp/parser/yum/RepoParser.cc
trunk/libzypp/zypp/parser/yum/RepoParser.h
Modified: trunk/libzypp/zypp/CMakeLists.txt
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/CMakeLists.txt?rev=5676&r1=5675&r2=5676&view=diff
==============================================================================
--- trunk/libzypp/zypp/CMakeLists.txt (original)
+++ trunk/libzypp/zypp/CMakeLists.txt Wed Jun 6 09:34:37 2007
@@ -558,6 +558,7 @@
parser/yum/YUMProductParser.h
parser/yum/YUMRepomdParser.h
parser/yum/RepoParser.h
+ parser/yum/RepoParserOpts.h
parser/yum/FileReaderBase.h
parser/yum/FileReaderBaseImpl.h
parser/yum/RepomdFileReader.h
Modified: trunk/libzypp/zypp/parser/yum/RepoParser.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/parser/yum/RepoParser.cc?rev=5676&r1=5675&r2=5676&view=diff
==============================================================================
--- trunk/libzypp/zypp/parser/yum/RepoParser.cc (original)
+++ trunk/libzypp/zypp/parser/yum/RepoParser.cc Wed Jun 6 09:34:37 2007
@@ -7,7 +7,7 @@
| |
\---------------------------------------------------------------------*/
/** \file zypp2/parser/yum/RepoParser.cc
- * YUM parser implementation.
+ * YUM repository metadata parser implementation.
*/
#include <iostream>
@@ -81,6 +81,7 @@
Impl(
const data::RecordId & repository_id,
data::ResolvableDataConsumer & consumer,
+ const RepoParserOpts & options = RepoParserOpts(),
const ProgressData::ReceiverFnc & progress = ProgressData::ReceiverFnc()
);
@@ -175,6 +176,9 @@
/** Progress reporting object for overall YUM parser progress. */
ProgressData _ticks;
+
+ /** */
+ const RepoParserOpts & _options;
};
///////////////////////////////////////////////////////////////////////////
@@ -182,9 +186,10 @@
RepoParser::Impl::Impl(
const data::RecordId & repository_id,
data::ResolvableDataConsumer & consumer,
+ const RepoParserOpts & options,
const ProgressData::ReceiverFnc & progress)
:
- _repository_id(repository_id), _consumer(consumer)
+ _repository_id(repository_id), _consumer(consumer), _options(options)
{
_ticks.name("RepoParser");
_ticks.sendTo(progress);
@@ -335,7 +340,7 @@
// parse primary.xml.gz
case YUMResourceType::PRIMARY_e:
{
- zypp::parser::yum::PrimaryFileReader(
+ PrimaryFileReader(
cache_dir + job.filename(),
bind(&RepoParser::Impl::primary_CB, this, _1),
&progress_function);
@@ -344,7 +349,7 @@
case YUMResourceType::PATCHES_e:
{
- zypp::source::yum::PatchesFileReader(
+ source::yum::PatchesFileReader(
cache_dir + job.filename(),
bind(&RepoParser::Impl::patches_CB, this, _1, _2));
// reset progress reporter max value (number of jobs changed if
@@ -355,7 +360,7 @@
case YUMResourceType::PATCH_e:
{
- zypp::parser::yum::PatchFileReader(
+ PatchFileReader(
cache_dir + job.filename(),
bind(&RepoParser::Impl::patch_CB, this, _1));
break;
@@ -363,28 +368,36 @@
case YUMResourceType::OTHER_e:
{
- WAR << "ignoring other.xml.gz for now..." << endl;
- /*
- zypp::parser::yum::Impl::OtherFileReader(
- cache_dir + job.filename(),
- bind(&RepoParser::other_CB, this, _1, _2),
- &progress_function);
- */
+ if (!_options.skipOther)
+ {
+ OtherFileReader(
+ cache_dir + job.filename(),
+ bind(&RepoParser::Impl::other_CB, this, _1, _2),
+ &progress_function);
+ }
+ else
+ MIL << "skipping other.xml.gz";
break;
}
case YUMResourceType::FILELISTS_e:
{
- zypp::parser::yum::FilelistsFileReader(
- cache_dir + job.filename(),
- bind(&RepoParser::Impl::filelist_CB, this, _1, _2),
- &progress_function);
+ if (!_options.skipFilelists)
+ {
+ FilelistsFileReader(
+ cache_dir + job.filename(),
+ bind(&RepoParser::Impl::filelist_CB, this, _1, _2),
+ &progress_function);
+ }
+ else
+ MIL << "skipping filelists.xml.gz";
+
break;
}
case YUMResourceType::PATTERNS_e:
{
- zypp::parser::yum::PatternFileReader(
+ PatternFileReader(
cache_dir + job.filename(),
bind(&RepoParser::Impl::pattern_CB, this, _1));
break;
@@ -392,7 +405,7 @@
case YUMResourceType::PRODUCTS_e:
{
- zypp::parser::yum::ProductFileReader(
+ ProductFileReader(
cache_dir + job.filename(),
bind(&RepoParser::Impl::product_CB, this, _1));
break;
@@ -421,9 +434,10 @@
RepoParser::RepoParser(
const data::RecordId & repository_id,
data::ResolvableDataConsumer & consumer,
+ const RepoParserOpts & options,
const ProgressData::ReceiverFnc & progress)
:
- _pimpl(new Impl(repository_id, consumer, progress))
+ _pimpl(new Impl(repository_id, consumer, options, progress))
{}
Modified: trunk/libzypp/zypp/parser/yum/RepoParser.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/parser/yum/RepoParser.h?rev=5676&r1=5675&r2=5676&view=diff
==============================================================================
--- trunk/libzypp/zypp/parser/yum/RepoParser.h (original)
+++ trunk/libzypp/zypp/parser/yum/RepoParser.h Wed Jun 6 09:34:37 2007
@@ -7,8 +7,7 @@
| |
\---------------------------------------------------------------------*/
/** \file zypp2/parser/yum/RepoParser.h
- *
- * YUM parser public API definition.
+ * YUM repository metadata parser public API definition.
*/
#ifndef ZYPP_PARSER_YUM_REPOPARSER_H_
#define ZYPP_PARSER_YUM_REPOPARSER_H_
@@ -20,6 +19,7 @@
#include "zypp/data/ResolvableDataConsumer.h"
#include "zypp/ProgressData.h"
+#include "zypp/parser/yum/RepoParserOpts.h"
namespace zypp
@@ -71,9 +71,10 @@
RepoParser(
const data::RecordId & repository_id,
data::ResolvableDataConsumer & consumer,
+ const RepoParserOpts & options = RepoParserOpts(),
const ProgressData::ReceiverFnc & progress = ProgressData::ReceiverFnc()
);
-
+
/**
* DTOR
*/
Added: trunk/libzypp/zypp/parser/yum/RepoParserOpts.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/parser/yum/RepoParserOpts.h?rev=5676&view=auto
==============================================================================
--- trunk/libzypp/zypp/parser/yum/RepoParserOpts.h (added)
+++ trunk/libzypp/zypp/parser/yum/RepoParserOpts.h Wed Jun 6 09:34:37 2007
@@ -0,0 +1,31 @@
+#ifndef ZYPP_PARSER_YUM_REPOPARSEROPTS_H_
+#define ZYPP_PARSER_YUM_REPOPARSEROPTS_H_
+
+#include "zypp/base/DefaultIntegral.h"
+
+namespace zypp
+{
+ namespace parser
+ {
+ namespace yum
+ {
+
+
+ /** YUM parser options */
+ struct RepoParserOpts
+ {
+ /** Skip parsing of other.xml.gz */
+ DefaultIntegral