From: Jiri Srain Date: Fri, 2 Dec 2005 08:44:33 +0000 (+0000) Subject: put changelog information to packages X-Git-Tag: BASE-SuSE-SLE-10-SP2-Branch~3614 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=059c960ad5df3c64a70cf44f3512f28b01028cfc;p=platform%2Fupstream%2Flibzypp.git put changelog information to packages --- diff --git a/zypp/Changelog.h b/zypp/Changelog.h new file mode 100644 index 0000000..889e585 --- /dev/null +++ b/zypp/Changelog.h @@ -0,0 +1,67 @@ +/*---------------------------------------------------------------------\ +| ____ _ __ __ ___ | +| |__ / \ / / . \ . \ | +| / / \ V /| _/ _/ | +| / /__ | | | | | | | +| /_____||_| |_| |_| | +| | +\---------------------------------------------------------------------*/ +/** \file zypp/Changelog.h + * +*/ +#ifndef ZYPP_CHANGELOG_H +#define ZYPP_CHANGELOG_H + +#include +#include +#include + +using namespace std; + +/////////////////////////////////////////////////////////////////// +namespace zypp +{ ///////////////////////////////////////////////////////////////// + + /////////////////////////////////////////////////////////////////// + // + // CLASS NAME : ChangelogEntry + // + /** Single entry in a change log + */ + class ChangelogEntry + { + public: + /** Default ctor */ + ChangelogEntry( const Date & d, + const std::string & a, + const std::string & t ) + : _date( d ), _author( a ), _text( t ) + {}; + /** Dtor */ + ~ChangelogEntry() + {} + Date date() const { return _date; } + std::string author() const { return _author; } + std::string text() const { return _text; } + + private: + Date _date; + std::string _author; + std::string _text; + }; + + typedef std::list Changelog; + + inline std::ostream & operator<<( std::ostream & out, + const ChangelogEntry & obj ) + { + out << obj.date() << " " << obj.author() << endl << obj.text() << endl; + return out; + } + + + /////////////////////////////////////////////////////////////////// +} // namespace zypp +/////////////////////////////////////////////////////////////////// + +#endif // ZYPP_CHANGELOG_H diff --git a/zypp/Makefile.am b/zypp/Makefile.am index 8923b61..a2fb2c7 100644 --- a/zypp/Makefile.am +++ b/zypp/Makefile.am @@ -21,7 +21,8 @@ include_HEADERS = NeedAType.h \ Message.h \ Script.h \ Patch.h \ - Product.h + Product.h \ + Changelog.h ## ################################################## diff --git a/zypp/Package.cc b/zypp/Package.cc index 97959d0..1e899f3 100644 --- a/zypp/Package.cc +++ b/zypp/Package.cc @@ -42,7 +42,8 @@ namespace zypp // /////////////////////////////////////////////////////////////////// - + Changelog Package::changelog() + { return pimpl().changelog(); } ///////////////////////////////////////////////////////////////// } // namespace zypp diff --git a/zypp/Package.h b/zypp/Package.h index abc689b..44a005d 100644 --- a/zypp/Package.h +++ b/zypp/Package.h @@ -45,6 +45,8 @@ namespace zypp const Arch & arch_r ); /** Dtor */ virtual ~Package(); + /** Get the package change log */ + Changelog changelog(); private: /** Access implementation */ diff --git a/zypp/detail/PackageImplIf.cc b/zypp/detail/PackageImplIf.cc index 4200c61..2acbe55 100644 --- a/zypp/detail/PackageImplIf.cc +++ b/zypp/detail/PackageImplIf.cc @@ -47,8 +47,8 @@ namespace zypp PackageGroup PackageImplIf::group() const { return PackageGroup(); } - Text PackageImplIf::changelog() const - { return Text(); } + Changelog PackageImplIf::changelog() const + { return Changelog(); } std::string PackageImplIf::url() const { return std::string(); } diff --git a/zypp/detail/PackageImplIf.h b/zypp/detail/PackageImplIf.h index b1aefe1..57ffe9b 100644 --- a/zypp/detail/PackageImplIf.h +++ b/zypp/detail/PackageImplIf.h @@ -15,6 +15,7 @@ #include "zypp/detail/ResObjectImplIf.h" #include "zypp/Edition.h" #include "zypp/Arch.h" +#include "zypp/Changelog.h" /////////////////////////////////////////////////////////////////// namespace zypp @@ -181,7 +182,7 @@ namespace zypp /** */ virtual PackageGroup group() const PURE_VIRTUAL; /** */ - virtual Text changelog() const PURE_VIRTUAL; + virtual Changelog changelog() const PURE_VIRTUAL; /** Don't ship it as class Url, because it might be * in fact anything but a legal Url. */ virtual std::string url() const PURE_VIRTUAL; diff --git a/zypp/source/yum/YUMPackageImpl.cc b/zypp/source/yum/YUMPackageImpl.cc index d33abf6..f77d7c3 100644 --- a/zypp/source/yum/YUMPackageImpl.cc +++ b/zypp/source/yum/YUMPackageImpl.cc @@ -77,7 +77,15 @@ namespace zypp { _filenames.push_back(it->name); } -// TODO changelog + for (std::list::const_iterator + it = other.changelog.begin(); + it != other.changelog.end(); + it++) + { + _changelog.push_back(ChangelogEntry(strtol(it->date.c_str(), 0, 10), + it->author, + it->entry)); + } } YUMPackageImpl::YUMPackageImpl( @@ -169,7 +177,15 @@ namespace zypp ); _delta_rpms.push_back(delta); } -// TODO changelog + for (std::list::const_iterator + it = parsed.changelog.begin(); + it != parsed.changelog.end(); + it++) + { + _changelog.push_back(ChangelogEntry(strtol(it->date.c_str(), 0, 10), + it->author, + it->entry)); + } } @@ -234,7 +250,7 @@ namespace zypp { return _group; } /** */ - Text YUMPackageImpl::changelog() const + Changelog YUMPackageImpl::changelog() const { return _changelog; } /** Don't ship it as class Url, because it might be diff --git a/zypp/source/yum/YUMPackageImpl.h b/zypp/source/yum/YUMPackageImpl.h index 905c486..7beed0d 100644 --- a/zypp/source/yum/YUMPackageImpl.h +++ b/zypp/source/yum/YUMPackageImpl.h @@ -14,6 +14,7 @@ #include "zypp/detail/PackageImpl.h" #include "zypp/parser/yum/YUMParserData.h" +#include "zypp/Changelog.h" /////////////////////////////////////////////////////////////////// namespace zypp @@ -71,7 +72,7 @@ namespace zypp /** */ virtual PackageGroup group() const; /** */ - virtual Text changelog() const; + virtual Changelog changelog() const; /** Don't ship it as class Url, because it might be * in fact anything but a legal Url. */ virtual std::string url() const; @@ -198,7 +199,7 @@ namespace zypp Label _license; std::string _packager; PackageGroup _group; - Text _changelog; + Changelog _changelog; std::string _type; License _license_to_confirm; Text _authors;