#define ZYPP_DETAIL_PACKAGEIMPLIF_H
#include "zypp/detail/ResObjectImplIf.h"
+#include "zypp/Edition.h"
+#include "zypp/Arch.h"
///////////////////////////////////////////////////////////////////
namespace zypp
{
public:
typedef Package ResType;
-#if 0
class CheckSum
{
public:
- CheckSum(std::string type, bool pkgid, std::string checksum) {
- _type = type; _pkgid = pkgid; _checksum = checksum;
- }
+ CheckSum(const std::string & type, const std::string & checksum)
+ : _type(type)
+ , _checksum(checksum)
+ {}
std::string type() { return _type; }
- bool pkgid() { return _pkgid; }
std::string checksum() { return _checksum; }
private:
std::string _type;
- bool _pkgid;
std::string _checksum;
};
+ class BaseVersion
+ {
+ public:
+ BaseVersion(const Edition & edition,
+ const CheckSum & checksum,
+ const Date & buildtime)
+ : _edition(edition)
+ , _checksum(checksum)
+ , _buildtime(buildtime)
+ {}
+ Edition edition() const { return _edition; }
+ CheckSum checksum() const { return _checksum; }
+ Date buildtime() const { return _buildtime; }
+ private:
+ Edition _edition;
+ PackageImplIf::CheckSum _checksum;
+ Date _buildtime;
+ };
+ class DeltaRpm
+ {
+ public:
+ DeltaRpm(const Arch & arch,
+ const std::string & filename,
+ const FSize & downloadsize,
+ const CheckSum & checksum,
+ const Date & buildtime,
+ const BaseVersion & base_version)
+ : _arch(arch)
+ , _filename(filename)
+ , _downloadsize(downloadsize)
+ , _checksum(checksum)
+ , _buildtime(buildtime)
+ , _base_version(base_version)
+ {}
+ Arch arch() { return _arch; }
+ std::string filename() { return _filename; }
+ FSize downloadsize() { return _downloadsize; }
+ CheckSum checksum() { return _checksum; }
+ Date buildtime() { return _buildtime; }
+ BaseVersion baseVersion() { return _base_version; }
+ private:
+ Arch _arch;
+ std::string _filename;
+ FSize _downloadsize;
+ CheckSum _checksum;
+ Date _buildtime;
+ BaseVersion _base_version;
+ };
+ class PatchRpm
+ {
+ public:
+ PatchRpm(const Arch & arch,
+ const std::string & filename,
+ const FSize & downloadsize,
+ const CheckSum & checksum,
+ const Date & buildtime,
+ const std::list<BaseVersion> & base_versions)
+ : _arch(arch)
+ , _filename(filename)
+ , _downloadsize(downloadsize)
+ , _checksum(checksum)
+ , _buildtime(buildtime)
+ , _base_versions(base_versions)
+ {}
+ Arch arch() { return _arch; }
+ std::string filename() { return _filename; }
+ FSize downloadsize() { return _downloadsize; }
+ CheckSum checksum() { return _checksum; }
+ Date buildtime() { return _buildtime; }
+ std::list<BaseVersion> baseVersions() { return _base_versions; }
+ private:
+ Arch _arch;
+ std::string _filename;
+ FSize _downloadsize;
+ CheckSum _checksum;
+ Date _buildtime;
+ std::list<BaseVersion> _base_versions;
+ };
+
+#if 0
/**
* @short Holds data about how much space will be needed per directory
**/
using namespace std;
using namespace zypp::detail;
+using namespace zypp::parser::yum;
///////////////////////////////////////////////////////////////////
namespace zypp
YUMPackageImpl::YUMPackageImpl(
const zypp::parser::yum::YUMPrimaryData & parsed
)
-#if 0
- : _size_package(strtol(parsed.sizePackage.c_str(), 0, 10)),
- _size_archive(strtol(parsed.sizeArchive.c_str(), 0, 10)),
- _size_installed(strtol(parsed.sizeInstalled.c_str(), 0, 10)),
- _authors(parsed.authors),
- _keywords(parsed.keywords),
- _packager(parsed.packager),
- _url(parsed.url),
+ : _summary(parsed.summary),
+ _description(),
+ _buildtime(strtol(parsed.timeBuild.c_str(), 0, 10)),
_buildhost(parsed.buildhost),
- _vendor(parsed.vendor),
+ _url(parsed.url),
+ _vendor( parsed.vendor),
+ _license( parsed.license),
+ _packager(parsed.packager),
_group(parsed.group),
- _license(parsed.license),
+ _changelog(), // TODO
_type(parsed.type),
- _sourcepkg(parsed.sourcerpm),
+ _license_to_confirm(), // TODO add to metadata
+ _authors(parsed.authors),
+ _keywords( parsed.keywords),
+ _mediaid(strtol(parsed.media.c_str(), 0, 10)),
_checksum(parsed.checksumType,
- string::toLower(parsed.checksumPkgid) == "yes",
parsed.checksum),
- _media(parsed.media),
- _time_file(strtol(parsed.timeFile.c_str(), 0, 10)),
- _time_build(strtol(parsed.timeBuild.c_str(), 0, 10)),
+ _filenames(),
_location(parsed.location),
- _files(parsed.files),
- _dir_sizes(parsed.dirSizes),
+
_install_only(parsed.installOnly)
+#if 0
+ : _size_package(strtol(parsed.sizePackage.c_str(), 0, 10)),
+ _size_archive(strtol(parsed.sizeArchive.c_str(), 0, 10)),
+ _size_installed(strtol(parsed.sizeInstalled.c_str(), 0, 10)),
+ _sourcepkg(parsed.sourcerpm),
+ _dir_sizes(parsed.dirSizes),
#endif
{
+ _description.push_back(parsed.description);
+// TODO files
}
+
YUMPackageImpl::YUMPackageImpl(
const zypp::parser::yum::YUMPatchPackage & parsed
)
-#if 0
- : _size_package( strtol(parsed.sizePackage.c_str(), 0, 10)),
- _size_archive( strtol(parsed.sizeArchive.c_str(), 0, 10)),
- _size_installed( strtol(parsed.sizeInstalled.c_str(), 0, 10)),
- _authors( parsed.authors),
- _keywords( parsed.keywords),
- _packager( parsed.packager),
- _url( parsed.url),
- _buildhost( parsed.buildhost),
+ : _summary(parsed.summary),
+ _description(),
+ _buildtime(strtol(parsed.timeBuild.c_str(), 0, 10)),
+ _buildhost(parsed.buildhost),
+ _url(parsed.url),
_vendor( parsed.vendor),
- _group( parsed.group),
_license( parsed.license),
- _type( parsed.type),
- _sourcepkg( parsed.sourcerpm),
+ _packager( parsed.packager),
+ _group(parsed.group),
+ _changelog(), // TODO
+ _type(parsed.type),
+ _license_to_confirm(), // TODO add to metadata
+ _authors(parsed.authors),
+ _keywords( parsed.keywords),
+ _mediaid(strtol(parsed.media.c_str(), 0, 10)),
_checksum(parsed.checksumType,
- string::toLower(parsed.checksumPkgid) == "yes",
parsed.checksum),
- _media(parsed.media),
- _time_file(strtol(parsed.timeFile.c_str(), 0, 10)),
- _time_build(strtol(parsed.timeBuild.c_str(), 0, 10)),
+ _filenames(),
_location(parsed.location),
- _files(parsed.files),
- _dir_sizes(parsed.dirSizes),
+
_install_only(parsed.installOnly)
+#if 0
+ : _size_package( strtol(parsed.sizePackage.c_str(), 0, 10)),
+ _size_archive( strtol(parsed.sizeArchive.c_str(), 0, 10)),
+ _size_installed( strtol(parsed.sizeInstalled.c_str(), 0, 10)),
+ _sourcepkg( parsed.sourcerpm),
+ _dir_sizes(parsed.dirSizes),
#endif
{
+ _description.push_back(parsed.description);
+ for (std::list<FileData>::const_iterator it = parsed.files.begin();
+ it != parsed.files.end();
+ it++)
+ {
+ _filenames.push_back(it->name);
+ }
/*
- std::string summary;
- std::string description;
- // SuSE specific data
- // Change Log
std::list<ChangelogEntry> changelog;
// Package Files
struct {
/** Package summary */
Label YUMPackageImpl::summary() const
- { }
+ { return _summary; }
+
/** Package description */
Text YUMPackageImpl::description() const
- { }
+ { return _description; }
+
Text YUMPackageImpl::insnotify() const
- { }
+ // metadata doesn't priovide this attribute
+ { return ResObjectImplIf::insnotify(); }
+
Text YUMPackageImpl::delnotify() const
- { }
+ // metadata doesn't priovide this attribute
+ { return ResObjectImplIf::delnotify(); }
+
FSize YUMPackageImpl::size() const
{ }
+
bool YUMPackageImpl::providesSources() const
- { }
+ { return ResObjectImplIf::providesSources(); }
+
Label YUMPackageImpl::instSrcLabel() const
- { }
+ { return ResObjectImplIf::instSrcLabel(); }
+
Vendor YUMPackageImpl::instSrcVendor() const
- { }
+ { return ResObjectImplIf::instSrcVendor(); }
+
/** */
Date YUMPackageImpl::buildtime() const
- { }
+ { return _buildtime; }
+
/** */
std::string YUMPackageImpl::buildhost() const
- { }
+ { return _buildhost; }
+
/** */
Date YUMPackageImpl::installtime() const
- { }
+ { return PackageImplIf::installtime(); }
+
/** */
std::string YUMPackageImpl::distribution() const
{ }
+
/** */
Vendor YUMPackageImpl::vendor() const
- { }
+ { return _vendor; }
+
/** */
Label YUMPackageImpl::license() const
- { }
+ { return _license; }
+
/** */
std::string YUMPackageImpl::packager() const
- { }
+ { return _packager; }
+
/** */
PackageGroup YUMPackageImpl::group() const
- { }
+ { return _group; }
+
/** */
Text YUMPackageImpl::changelog() const
- { }
+ { return _changelog; }
+
/** Don't ship it as class Url, because it might be
* in fact anything but a legal Url. */
std::string YUMPackageImpl::url() const
- { }
+ { return _url; }
+
/** */
std::string YUMPackageImpl::os() const
- { }
+ // metadata doesn't priovide this attribute
+ { return PackageImplIf::os(); }
+
/** */
Text YUMPackageImpl::prein() const
- { }
+ // metadata doesn't priovide this attribute
+ { return PackageImplIf::prein(); }
+
/** */
Text YUMPackageImpl::postin() const
- { }
+ // metadata doesn't priovide this attribute
+ { return PackageImplIf::postin(); }
+
/** */
Text YUMPackageImpl::preun() const
- { }
+ // metadata doesn't priovide this attribute
+ { return PackageImplIf::preun(); }
+
/** */
Text YUMPackageImpl::postun() const
- { }
+ // metadata doesn't priovide this attribute
+ { return PackageImplIf::postun(); }
+
/** */
FSize YUMPackageImpl::sourcesize() const
{ }
+
/** */
FSize YUMPackageImpl::archivesize() const
{ }
+
/** */
Text YUMPackageImpl::authors() const
- { }
+ { return _authors; }
+
/** */
Text YUMPackageImpl::filenames() const
- { }
+ { return _filenames; }
+
License YUMPackageImpl::licenseToConfirm() const
- { }
+ { return _license_to_confirm; }
+
+ /** */
+ std::string YUMPackageImpl::type() const
+ { return _type; }
+ /** */
+ std::list<std::string> YUMPackageImpl::keywords() const
+ { return _keywords; }
+ bool YUMPackageImpl::installOnly() const
+ { return _install_only; }
+
+ unsigned YUMPackageImpl::mediaId() const
+ { return _mediaid; }
+
+ PackageImplIf::CheckSum YUMPackageImpl::checksum() const
+ { return _checksum; }
#if 0
std::string YUMPackageImpl::sourcepkg() const
{ return _sourcepkg; }
/** */
- std::string YUMPackageImpl::type() const
- { return _type; }
- /** */
std::list<std::string> YUMPackageImpl::authors() const
{ return _authors; }
/** */
std::string YUMPackageImpl::location() const
{}
/** */
- unsigned int YUMPackageImpl::medianr() const
- {}
- /** */
- std::list<std::string> YUMPackageImpl::keywords() const
- { return _keywords; }
- /** */
std::string YUMPackageImpl::md5sum() const
{}
/** */