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

PMPackageDataProvider.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:       PMPackageDataProvider.h
00014 
00015   Author:     Michael Andres <ma@suse.de>
00016   Maintainer: Michael Andres <ma@suse.de>
00017 
00018   Purpose: Common interface to be realized by all PackageDataProvider.
00019 
00020 /-*/
00021 #ifndef PMPackageDataProvider_h
00022 #define PMPackageDataProvider_h
00023 
00024 #include <iosfwd>
00025 #include <string>
00026 
00027 #include <y2util/Date.h>
00028 #include <y2util/FSize.h>
00029 #include <y2util/Vendor.h>
00030 #include <y2util/Pathname.h>
00031 #include <y2util/YRpmGroupsTree.h>
00032 
00033 #include <y2pm/PkgSplit.h>
00034 
00035 #include <y2pm/PMError.h>
00036 #include <y2pm/PMPackageDataProviderPtr.h>
00037 #include <y2pm/PMPackagePtr.h>
00038 #include <y2pm/PMPackageDelta.h>
00039 #include <y2pm/InstSrcPtr.h>
00040 
00041 class PkgDu;
00042 
00044 //
00045 //      CLASS NAME : PMPackageDataProvider
00056 class PMPackageDataProvider : public CountedRep {
00057   REP_BODY(PMPackageDataProvider);
00058 
00059   public:
00060 
00062     // default for unprovided values
00064 
00065     // PMObject attributes
00066     static std::string            summary()     { return std::string(); }
00067     static std::list<std::string> description() { return std::list<std::string>(); }
00068     static std::list<std::string> insnotify()   { return std::list<std::string>(); }
00069     static std::list<std::string> delnotify()   { return std::list<std::string>(); }
00070     static FSize                  size()        { return FSize(0); }
00071     static bool                   providesSources() { return false; }
00072     static std::string            instSrcLabel()    { return std::string(); }
00073     static Vendor                 instSrcVendor()   { return Vendor(); }
00074     static unsigned               instSrcRank()     { return unsigned(-1); }
00075 
00076     // PMPackage attributes
00077     static PkgSplitSet            splitprovides() { return PkgSplitSet(); }
00078     static Date                   buildtime()   { return Date(0); }
00079     static std::string            buildhost()   { return std::string(); }
00080     static Date                   installtime() { return Date(0); }
00081     static std::string            distribution(){ return std::string(); }
00082     static Vendor                 vendor()      { return Vendor(); }
00083     static std::string            license()     { return std::string(); }
00084     static std::list<std::string> licenseToConfirm() { return std::list<std::string>(); }
00085     static std::string            packager()    { return std::string(); }
00086     static std::string            group()       { return std::string(); }
00087     static YStringTreeItem *      group_ptr()   { return 0; }
00088     static std::list<std::string> changelog()   { return std::list<std::string>(); }
00089     static std::string            url()         { return std::string(); }
00090     static std::string            os()          { return std::string(); }
00091     static std::list<std::string> prein()       { return std::list<std::string>(); }
00092     static std::list<std::string> postin()      { return std::list<std::string>(); }
00093     static std::list<std::string> preun()       { return std::list<std::string>(); }
00094     static std::list<std::string> postun()      { return std::list<std::string>(); }
00095     static std::string            sourceloc()   { return std::string(); }
00096     static FSize                  sourcesize()  { return FSize(0); }
00097     static FSize                  archivesize() { return FSize(0); }
00098     static std::list<std::string> authors()     { return std::list<std::string>(); }
00099     static std::list<std::string> filenames()   { return std::list<std::string>(); }
00100     // suse packages values
00101     static std::list<std::string> recommends()  { return std::list<std::string>(); }
00102     static std::list<std::string> suggests()    { return std::list<std::string>(); }
00103     static std::string            location()    { return std::string(); }
00104     static unsigned int           medianr()     { return 0; }
00105     static std::list<std::string> keywords()    { return std::list<std::string>(); }
00106     static std::string            md5sum()      { return std::string(); }
00107     static std::string            externalUrl() { return std::string(); }
00108     static std::list<PkgEdition>  patchRpmBaseVersions() { return std::list<PkgEdition>(); }
00109     static FSize                  patchRpmSize() { return FSize( 0 ); }
00110     static bool                   forceInstall() { return false; }
00111     static std::string            patchRpmMD5()  { return std::string(); }
00112 
00113     static bool isRemote()                      { return false; }
00114     // physical access to the rpm file.
00115     static PMError providePkgToInstall(Pathname& path_r) { path_r = Pathname(); return PMError::E_error; }
00116     // physical access to the src.rpm file.
00117     static PMError provideSrcPkgToInstall(Pathname& path_r) { path_r = Pathname(); return PMError::E_error; }
00118     // source for this package, needed for callbacks
00119     static constInstSrcPtr source()             { return constInstSrcPtr(0); }
00120 
00121     // Internally used by PMSelectable.
00122     static bool prefererCandidate() { return false; }
00123 
00124     // dudata is special
00125     static void du( PkgDu & dudata_r );
00126 
00127     static std::list<PMPackageDelta>  deltas() { return std::list<PMPackageDelta>(); }
00128 
00129   protected:
00130 
00131     PMPackageDataProvider();
00132 
00133     virtual ~PMPackageDataProvider();
00134 
00138     PMPackagePtr mkPtr( const PMPackage & pkg_r ) const { return const_cast<PMPackage*>(&pkg_r); }
00139 
00140   public:
00141 
00143     // Overload values you can provide
00145 
00146     // PMObject attributes
00147     virtual std::string            summary     ( const PMPackage & pkg_r ) const { return summary(); }
00148     virtual std::list<std::string> description ( const PMPackage & pkg_r ) const { return description(); }
00149     virtual std::list<std::string> insnotify   ( const PMPackage & pkg_r ) const { return insnotify(); }
00150     virtual std::list<std::string> delnotify   ( const PMPackage & pkg_r ) const { return delnotify(); }
00151     virtual FSize                  size        ( const PMPackage & pkg_r ) const { return size(); }
00152     virtual bool                   providesSources( const PMPackage & pkg_r ) const { return providesSources(); }
00153     virtual std::string            instSrcLabel   ( const PMPackage & pkg_r ) const { return instSrcLabel(); }
00154     virtual Vendor                 instSrcVendor  ( const PMPackage & pkg_r ) const { return instSrcVendor(); }
00155     virtual unsigned               instSrcRank    ( const PMPackage & pkg_r ) const { return instSrcRank(); }
00156 
00157     // PMPackage attributes
00158     virtual PkgSplitSet            splitprovides( const PMPackage & pkg_r ) const { return splitprovides(); }
00159     virtual Date                   buildtime   ( const PMPackage & pkg_r ) const { return buildtime(); }
00160     virtual std::string            buildhost   ( const PMPackage & pkg_r ) const { return buildhost(); }
00161     virtual Date                   installtime ( const PMPackage & pkg_r ) const { return installtime(); }
00162     virtual std::string            distribution( const PMPackage & pkg_r ) const { return distribution(); }
00163     virtual Vendor                 vendor      ( const PMPackage & pkg_r ) const { return vendor(); }
00164     virtual std::string            license     ( const PMPackage & pkg_r ) const { return license(); }
00165     virtual std::list<std::string> licenseToConfirm( const PMPackage & pkg_r ) const { return licenseToConfirm(); }
00166     virtual std::string            packager    ( const PMPackage & pkg_r ) const { return packager(); }
00167     virtual std::string            group       ( const PMPackage & pkg_r ) const { return group(); }
00168     virtual YStringTreeItem *      group_ptr   ( const PMPackage & pkg_r ) const { return group_ptr(); }
00169     virtual std::list<std::string> changelog   ( const PMPackage & pkg_r ) const { return changelog(); }
00170     virtual std::string            url         ( const PMPackage & pkg_r ) const { return url(); }
00171     virtual std::string            os          ( const PMPackage & pkg_r ) const { return os(); }
00172     virtual std::list<std::string> prein       ( const PMPackage & pkg_r ) const { return prein(); }
00173     virtual std::list<std::string> postin      ( const PMPackage & pkg_r ) const { return postin(); }
00174     virtual std::list<std::string> preun       ( const PMPackage & pkg_r ) const { return preun(); }
00175     virtual std::list<std::string> postun      ( const PMPackage & pkg_r ) const { return postun(); }
00176     virtual std::string            sourceloc   ( const PMPackage & pkg_r ) const { return sourceloc(); }
00177     virtual FSize                  sourcesize  ( const PMPackage & pkg_r ) const { return sourcesize(); }
00178     virtual FSize                  archivesize ( const PMPackage & pkg_r ) const { return archivesize(); }
00179     virtual std::list<std::string> authors     ( const PMPackage & pkg_r ) const { return authors(); }
00180     virtual std::list<std::string> filenames   ( const PMPackage & pkg_r ) const { return filenames(); }
00181     // suse packages values
00182     virtual std::list<std::string> recommends  ( const PMPackage & pkg_r ) const { return recommends(); }
00183     virtual std::list<std::string> suggests    ( const PMPackage & pkg_r ) const { return suggests(); }
00184     virtual std::string            location    ( const PMPackage & pkg_r ) const { return location(); }
00185     virtual unsigned int           medianr     ( const PMPackage & pkg_r ) const { return medianr(); }
00186     virtual std::list<std::string> keywords    ( const PMPackage & pkg_r ) const { return keywords(); }
00187     virtual std::string            md5sum      ( const PMPackage & pkg_r ) const { return md5sum(); }
00188     virtual std::string            externalUrl ( const PMPackage & pkg_r ) const { return externalUrl(); }
00189     virtual std::list<PkgEdition>  patchRpmBaseVersions( const PMPackage & pkg_r ) const { return patchRpmBaseVersions(); }
00190     virtual FSize                  patchRpmSize( const PMPackage & pkg_r ) const { return patchRpmSize(); }
00191     virtual bool                   forceInstall( const PMPackage & pkg_r ) const { return forceInstall(); }
00192     virtual std::string            patchRpmMD5 ( const PMPackage & pkg_r ) const { return patchRpmMD5(); }
00193 
00194     virtual bool                   isRemote    ( const PMPackage & pkg_r ) const { return isRemote(); }
00195     // physical access to the rpm file.
00196     virtual PMError providePkgToInstall( const PMPackage & pkg_r, Pathname& path_r ) const { return providePkgToInstall(path_r); }
00197     // physical access to the src.rpm file.
00198     virtual PMError provideSrcPkgToInstall( const PMPackage & pkg_r, Pathname& path_r ) const { return provideSrcPkgToInstall(path_r); }
00199     // source for this package, needed for callbacks
00200     virtual constInstSrcPtr source( const PMPackage & pkg_r ) const { return source(); }
00201 
00202     // Internally used by PMSelectable.
00203     virtual bool prefererCandidate( const PMPackage & pkg_r ) const { return prefererCandidate(); }
00204 
00205     // dudata is special
00206     virtual void du( const PMPackage & pkg_r, PkgDu & dudata_r ) const { return du( dudata_r ); }
00207 
00208     virtual std::list<PMPackageDelta>  deltas( const PMPackage & pkg_r ) const { return deltas(); }
00209 };
00210 
00212 
00213 #endif // PMPackageDataProvider_h

Generated on Mon Sep 12 21:52:13 2005 for yast2-packagemanager by  doxygen 1.4.4