From: Klaus Kaempf Date: Sat, 25 Feb 2006 10:00:24 +0000 (+0000) Subject: add 'Language' resolvables X-Git-Tag: BASE-SuSE-SLE-10-SP2-Branch~1906 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7a7375406130874b340b148ea6c879f3c77a52d7;p=platform%2Fupstream%2Flibzypp.git add 'Language' resolvables --- diff --git a/testsuite/solver/src/helix/HelixLanguageImpl.cc b/testsuite/solver/src/helix/HelixLanguageImpl.cc new file mode 100644 index 0000000..ef22db0 --- /dev/null +++ b/testsuite/solver/src/helix/HelixLanguageImpl.cc @@ -0,0 +1,38 @@ +/*---------------------------------------------------------------------\ +| ____ _ __ __ ___ | +| |__ / \ / / . \ . \ | +| / / \ V /| _/ _/ | +| / /__ | | | | | | | +| /_____||_| |_| |_| | +| | +\---------------------------------------------------------------------*/ +/** \file zypp/testsuite/solver/HelixLanguageImpl.cc + * +*/ + +#include "HelixLanguageImpl.h" +#include "zypp/source/SourceImpl.h" +#include "zypp/base/String.h" +#include "zypp/base/Logger.h" + +using namespace std; +using namespace zypp::detail; + +/////////////////////////////////////////////////////////////////// +namespace zypp +{ ///////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////// +// +// CLASS NAME : HelixLanguageImpl +// +/////////////////////////////////////////////////////////////////// + +/** Default ctor +*/ +HelixLanguageImpl::HelixLanguageImpl (Source_Ref source_r, const zypp::HelixParser & parsed) +{ +} + + ///////////////////////////////////////////////////////////////// +} // namespace zypp +/////////////////////////////////////////////////////////////////// diff --git a/testsuite/solver/src/helix/HelixLanguageImpl.h b/testsuite/solver/src/helix/HelixLanguageImpl.h new file mode 100644 index 0000000..5319e0a --- /dev/null +++ b/testsuite/solver/src/helix/HelixLanguageImpl.h @@ -0,0 +1,43 @@ +/*---------------------------------------------------------------------\ +| ____ _ __ __ ___ | +| |__ / \ / / . \ . \ | +| / / \ V /| _/ _/ | +| / /__ | | | | | | | +| /_____||_| |_| |_| | +| | +\---------------------------------------------------------------------*/ +/** \file zypp/testsuite/solver/HelixLanguageImpl.h + * +*/ +#ifndef ZYPP_HELIXLANGUAGEIMPL_H +#define ZYPP_HELIXLANGUAGEIMPL_H + +#include "zypp/detail/LanguageImplIf.h" +#include "HelixParser.h" + +/////////////////////////////////////////////////////////////////// +namespace zypp +{ ///////////////////////////////////////////////////////////////// + +/////////////////////////////////////////////////////////////////// +// +// CLASS NAME : HelixLanguageImpl +// +/** Class representing a package +*/ +class HelixLanguageImpl : public detail::LanguageImplIf +{ +public: + + class HelixParser; + /** Default ctor + */ + HelixLanguageImpl( Source_Ref source_r, const zypp::HelixParser & data ); + +protected: + + }; + ///////////////////////////////////////////////////////////////// +} // namespace zypp +/////////////////////////////////////////////////////////////////// +#endif // ZYPP_HELIXLANGUAGEIMPL_H diff --git a/testsuite/solver/src/helix/HelixSourceImpl.cc b/testsuite/solver/src/helix/HelixSourceImpl.cc index 7a99d62..d089907 100644 --- a/testsuite/solver/src/helix/HelixSourceImpl.cc +++ b/testsuite/solver/src/helix/HelixSourceImpl.cc @@ -23,6 +23,7 @@ #include "HelixSourceImpl.h" #include "HelixPackageImpl.h" #include "HelixScriptImpl.h" +#include "HelixLanguageImpl.h" #include "HelixMessageImpl.h" #include "HelixPatchImpl.h" #include "HelixSelectionImpl.h" @@ -134,6 +135,30 @@ HelixSourceImpl::createPackage (const HelixParser & parsed) } +Language::Ptr +HelixSourceImpl::createLanguage (const HelixParser & parsed) +{ + try + { + detail::ResImplTraits::Ptr impl(new HelixLanguageImpl(_source, parsed)); + + // Collect basic Resolvable data + NVRAD dataCollect( parsed.name, + Edition( parsed.version, parsed.release, parsed.epoch ), + Arch( parsed.arch ), + createDependencies (parsed)); + Language::Ptr message = detail::makeResolvableFromImpl(dataCollect, impl); + return message; + } + catch (const Exception & excpt_r) + { + ERR << excpt_r << endl; + throw "Cannot create language object"; + } + return NULL; +} + + Message::Ptr HelixSourceImpl::createMessage (const HelixParser & parsed) { @@ -291,6 +316,10 @@ HelixSourceImpl::parserCallback (const HelixParser & parsed) Message::Ptr m = createMessage (parsed); _store.insert (m); } + else if (parsed.kind == ResTraits::kind) { + Language::Ptr l = createLanguage( parsed ); + _store.insert (l); + } else if (parsed.kind == ResTraits