From b6abb1aeff451acf4a076243f56e3b991c564af7 Mon Sep 17 00:00:00 2001 From: Duncan Mac-Vicar P Date: Thu, 29 Jun 2006 13:48:03 +0000 Subject: [PATCH] - this will be the common classes to transport data from parsers to cache as we cant expose the sqlite schema to source cachers or then we will need to fix it everywhere if the schema changed so we will say goodbye to yum data soon. --- configure.ac | 1 + devel/devel.dmacvicar/testbed.cc | 8 ++- zypp/Makefile.am | 3 +- zypp/cache/SourceCacher.cpp | 4 ++ zypp/data/Makefile.am | 22 ++++++ zypp/data/ResolvableData.cc | 105 +++++++++++++++++++++++++++ zypp/data/ResolvableData.h | 149 +++++++++++++++++++++++++++++++++++++++ 7 files changed, 290 insertions(+), 2 deletions(-) create mode 100644 zypp/data/Makefile.am create mode 100644 zypp/data/ResolvableData.cc create mode 100644 zypp/data/ResolvableData.h diff --git a/configure.ac b/configure.ac index 86bbb82..808e27a 100644 --- a/configure.ac +++ b/configure.ac @@ -251,6 +251,7 @@ AC_OUTPUT( po/Makefile.in\ zypp/pool/Makefile \ zypp/solver/Makefile \ zypp/solver/detail/Makefile \ + zypp/data/Makefile \ zypp/cache/Makefile \ zypp/cache/sqlite3x/Makefile zypp/source/Makefile \ diff --git a/devel/devel.dmacvicar/testbed.cc b/devel/devel.dmacvicar/testbed.cc index 4ff4862..bf613a2 100644 --- a/devel/devel.dmacvicar/testbed.cc +++ b/devel/devel.dmacvicar/testbed.cc @@ -36,7 +36,13 @@ using namespace zypp; int main() { - cache::KnownSourcesCache("/"); + cache::KnownSourcesCache cache("/"); + + source::SourceInfoList srcs = cache.knownSources(); + for ( source::SourceInfoList::const_iterator it = srcs.begin(); it != srcs.end(); ++it) + { + cout << *it << endl; + } } diff --git a/zypp/Makefile.am b/zypp/Makefile.am index 22b8950..bf5a4ba 100644 --- a/zypp/Makefile.am +++ b/zypp/Makefile.am @@ -2,7 +2,7 @@ ## ################################################## SUBDIRS = base thread url media capability detail pool parser \ - source cache target solver zypp_detail ui + data source cache target solver zypp_detail ui AM_CXXFLAGS = -DZYPP_BASE_LOGGER_LOGGROUP=\"zypp\" @@ -174,6 +174,7 @@ lib@PACKAGE@_la_LIBADD = thread/lib@PACKAGE@_thread.la \ parser/lib@PACKAGE@_parser.la \ source/lib@PACKAGE@_source.la \ cache/lib@PACKAGE@_cache.la \ + data/lib@PACKAGE@_data.la \ media/lib@PACKAGE@_media.la \ url/lib@PACKAGE@_url.la \ target/lib@PACKAGE@_target.la \ diff --git a/zypp/cache/SourceCacher.cpp b/zypp/cache/SourceCacher.cpp index d03c45e..b51f057 100644 --- a/zypp/cache/SourceCacher.cpp +++ b/zypp/cache/SourceCacher.cpp @@ -27,6 +27,10 @@ SourceCacher::~SourceCacher() { } +std::ostream & SourceCacher::dumpOn( std::ostream & str ) const +{ + return str; +} } } diff --git a/zypp/data/Makefile.am b/zypp/data/Makefile.am new file mode 100644 index 0000000..45a1251 --- /dev/null +++ b/zypp/data/Makefile.am @@ -0,0 +1,22 @@ +## Process this file with automake to produce Makefile.in +## ################################################## + +SUBDIRS = + +INCLUDES = -I$(oldincludedir)/libxml2 \ + -DZYPP_BASE_LOGGER_LOGGROUP=\"data\" + +## ################################################## + +parserincludedir = $(pkgincludedir)/data + +parserinclude_HEADERS = \ + ResolvableData.h + +noinst_LTLIBRARIES = lib@PACKAGE@_data.la + + +## ################################################## + +lib@PACKAGE@_data_la_SOURCES = \ + ResolvableData.cc diff --git a/zypp/data/ResolvableData.cc b/zypp/data/ResolvableData.cc new file mode 100644 index 0000000..d30572f --- /dev/null +++ b/zypp/data/ResolvableData.cc @@ -0,0 +1,105 @@ +/*---------------------------------------------------------------------\ +| ____ _ __ __ ___ | +| |__ / \ / / . \ . \ | +| / / \ V /| _/ _/ | +| / /__ | | | | | | | +| /_____||_| |_| |_| | +| | +\---------------------------------------------------------------------*/ + +#include "zypp/data/ResolvableData.h" + +using namespace std; + +namespace zypp +{ +namespace data +{ + + +Dependency::Dependency(const std::string& kind, const std::string& encoded) + : kind(kind), encoded(encoded) +{ +}; + +IMPL_PTR_TYPE(ResObject); +IMPL_PTR_TYPE(Script); +IMPL_PTR_TYPE(Message); +IMPL_PTR_TYPE(Selection); +IMPL_PTR_TYPE(Pattern); + + +std::ostream& operator<<(std::ostream& out, const zypp::shared_ptr data) +{ + out << "Atom data" << endl; + switch (data->atomType()) + { + case AtomBase::TypePackage: + out << " atom type: " << "package" << endl + << *zypp::dynamic_pointer_cast(data); + break; + case AtomBase::TypeMessage: + out << " atom type: " << "message" << endl + << *zypp::dynamic_pointer_cast(data); + break; + case AtomBase::TypeScript: + out << " atom type: " << "script" << endl + << *zypp::dynamic_pointer_cast