Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

PMULPackageDataProvider.h

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------\
00002 |                                                                      |
00003 |                      __   __    ____ _____ ____                      |
00004 |                      \ \ / /_ _/ ___|_   _|___ \                     |
00005 |                       \ V / _` \___ \ | |   __) |                    |
00006 |                        | | (_| |___) || |  / __/                     |
00007 |                        |_|\__,_|____/ |_| |_____|                    |
00008 |                                                                      |
00009 |                               core system                            |
00010 |                                                        (C) SuSE GmbH |
00011 \----------------------------------------------------------------------/
00012 
00013   File:       PMULPackageDataProvider.h
00014 
00015   Author:     Michael Andres <ma@suse.de>
00016   Maintainer: Klaus Kaempf <kkaempf@suse.de>
00017 
00018   Purpose: Realized PackageDataProvider for UnitedLinux packages format
00019 
00020 /-*/
00021 #ifndef PMULPackageDataProvider_h
00022 #define PMULPackageDataProvider_h
00023 
00024 #include <iosfwd>
00025 #include <string>
00026 #include <fstream>
00027 
00028 #include <y2util/TagCacheRetrieval.h>
00029 
00030 #include <y2pm/ULParsePackagesLang.h>
00031 #include <y2pm/PMULPackageDataProviderPtr.h>
00032 #include <y2pm/PMPackageDataProvider.h>
00033 
00034 #include <y2pm/PMPackage.h>
00035 
00037 //
00038 //      CLASS NAME : PMULPackageDataProvider
00048 class PMULPackageDataProvider : public PMPackageDataProvider  {
00049     REP_BODY(PMULPackageDataProvider);
00050 
00051     friend class ULPackagesParser;
00052     friend class InstSrcDataUL;
00053 
00054     protected:
00055 
00056         // PMObject
00057         TagRetrievalPos         _attr_SUMMARY;
00058         TagRetrievalPos         _attr_DESCRIPTION;
00059         TagRetrievalPos         _attr_INSNOTIFY;
00060         TagRetrievalPos         _attr_DELNOTIFY;
00061         FSize                   _attr_SIZE;
00062 
00063         // PMPackage
00064         PkgSplitSet             _attr_SPLITPROVIDES;
00065         Date                    _attr_BUILDTIME;
00066         // BUILDHOST
00067         // INSTALLTIME
00068         // DISTRIBUTION
00069         // VENDOR
00070         TagRetrievalPos         _attr_LICENSE;
00071         TagRetrievalPos         _attr_LICENSETOCONFIRM;
00072         // PACKAGER
00073         YStringTreeItem *       _attr_GROUP;
00074         // CHANGELOG
00075         // URL
00076         // OS
00077         // PREIN
00078         // POSTIN
00079         // PREUN
00080         // POSTUN
00081         TagRetrievalPos         _attr_SOURCELOC;
00082         FSize                   _attr_SOURCESIZE;               // if > 0, has source
00083         FSize                   _attr_ARCHIVESIZE;
00084         TagRetrievalPos         _attr_AUTHORS;
00085         // FILENAMES
00086         TagRetrievalPos         _attr_RECOMMENDS;
00087         TagRetrievalPos         _attr_SUGGESTS;
00088         TagRetrievalPos         _attr_LOCATION;
00089         unsigned int            _attr_MEDIANR;
00090         TagRetrievalPos         _attr_KEYWORDS;
00091         TagRetrievalPos         _attr_DU;
00092 
00093         // the source
00094         const constInstSrcPtr _source;
00095 
00096         // retrieval pointer for packages data
00097         const TagCacheRetrievalPtr _package_retrieval;
00098 
00099         // retrieval pointer for packages.<locale> data
00100         TagCacheRetrievalPtr _locale_retrieval;
00101 
00102         // retrieval pointer for packages.DU data
00103         const TagCacheRetrievalPtr _du_retrieval;
00104 
00105         // fallback provider (Share entry in packages)
00106         PMULPackageDataProviderPtr _fallback_provider;
00107 
00108     protected:
00109 
00110       void assignLocaleData( const ULParsePackagesLang::Entry & entry_r );
00111 
00112     public:
00113 
00114         PMULPackageDataProvider (constInstSrcPtr source,
00115                                  TagCacheRetrievalPtr package_retrieval,
00116                                  TagCacheRetrievalPtr locale_retrieval,
00117                                  TagCacheRetrievalPtr du_retrieval);
00118         virtual ~PMULPackageDataProvider();
00119 
00120     public:
00121 
00122         void setShared ( PMULPackageDataProviderPtr provider ) { _fallback_provider = provider; }
00123 
00124     public:
00125 
00131         // PMObject attributes
00132         virtual std::string            summary     ( const PMPackage & pkg_r ) const;
00133         virtual std::list<std::string> description ( const PMPackage & pkg_r ) const;
00134         virtual std::list<std::string> insnotify   ( const PMPackage & pkg_r ) const;
00135         virtual std::list<std::string> delnotify   ( const PMPackage & pkg_r ) const;
00136         virtual FSize                  size        ( const PMPackage & pkg_r ) const;
00137         virtual bool                   providesSources( const PMPackage & pkg_r ) const;
00138         virtual std::string            instSrcLabel   ( const PMPackage & pkg_r ) const;
00139         virtual Vendor                 instSrcVendor  ( const PMPackage & pkg_r ) const;
00140         virtual unsigned               instSrcRank    ( const PMPackage & pkg_r ) const;
00141 
00142         // PMPackage attributes
00143         virtual PkgSplitSet            splitprovides ( const PMPackage & pkg_r ) const;
00144         virtual Date                   buildtime     ( const PMPackage & pkg_r ) const;
00145         //virtual std::string            buildhost   ( const PMPackage & pkg_r ) const;
00146         //virtual Date                   installtime ( const PMPackage & pkg_r ) const;
00147         //virtual std::string            distribution( const PMPackage & pkg_r ) const;
00148         virtual Vendor                 vendor      ( const PMPackage & pkg_r ) const;
00149         virtual std::string            license     ( const PMPackage & pkg_r ) const;
00150         virtual std::list<std::string> licenseToConfirm( const PMPackage & pkg_r ) const;
00151         //virtual std::string            packager    ( const PMPackage & pkg_r ) const;
00152         virtual std::string            group       ( const PMPackage & pkg_r ) const;
00153         virtual YStringTreeItem *      group_ptr   ( const PMPackage & pkg_r ) const;
00154         //virtual std::list<std::string> changelog   ( const PMPackage & pkg_r ) const;
00155         //virtual std::string            url         ( const PMPackage & pkg_r ) const;
00156         //virtual std::string            os          ( const PMPackage & pkg_r ) const;
00157         //virtual std::list<std::string> prein       ( const PMPackage & pkg_r ) const;
00158         //virtual std::list<std::string> postin      ( const PMPackage & pkg_r ) const;
00159         //virtual std::list<std::string> preun       ( const PMPackage & pkg_r ) const;
00160         //virtual std::list<std::string> postun      ( const PMPackage & pkg_r ) const;
00161         virtual std::string            sourceloc   ( const PMPackage & pkg_r ) const;
00162         virtual FSize                  sourcesize  ( const PMPackage & pkg_r ) const;
00163         virtual FSize                  archivesize ( const PMPackage & pkg_r ) const;
00164         virtual std::list<std::string> authors     ( const PMPackage & pkg_r ) const;
00165         //virtual std::list<std::string> filenames   ( const PMPackage & pkg_r ) const;
00166         // suse packages values
00167         virtual std::list<std::string> recommends  ( const PMPackage & pkg_r ) const;
00168         virtual std::list<std::string> suggests    ( const PMPackage & pkg_r ) const;
00169         virtual std::string            location    ( const PMPackage & pkg_r ) const;
00170         virtual unsigned int           medianr     ( const PMPackage & pkg_r ) const;
00171         virtual std::list<std::string> keywords    ( const PMPackage & pkg_r ) const;
00172 
00173         virtual bool                    isRemote   ( const PMPackage & pkg_r ) const;
00174         // physical access to the rpm file.
00175         virtual PMError providePkgToInstall( const PMPackage & pkg_r, Pathname& path_r ) const;
00176         virtual PMError provideSrcPkgToInstall( const PMPackage & pkg_r, Pathname& path_r ) const;
00177         // source pointer
00178         virtual constInstSrcPtr         source ( const PMPackage & pkg_r ) const { return _source; }
00179 
00180         // Internally used by PMSelectable.
00181         virtual bool prefererCandidate( const PMPackage & pkg_r ) const;
00182 
00183         // dudata is special
00184         virtual void du( const PMPackage & pkg_r, PkgDu & dudata_r ) const;
00185 };
00186 
00188 
00189 #endif // PMULPackageDataProvider_h

Generated on Fri Nov 9 14:30:31 2007 for yast2-packagemanager by doxygen 1.3.6