SrcPackageImpl.cc

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------\
00002 |                          ____ _   __ __ ___                          |
00003 |                         |__  / \ / / . \ . \                         |
00004 |                           / / \ V /|  _/  _/                         |
00005 |                          / /__ | | | | | |                           |
00006 |                         /_____||_| |_| |_|                           |
00007 |                                                                      |
00008 \---------------------------------------------------------------------*/
00012 #include "SrcPackageImpl.h"
00013 #include "zypp/TranslatedText.h"
00014 #include "zypp/base/String.h"
00015 #include "zypp/base/Logger.h"
00016 #include "zypp/cache/CacheAttributes.h"
00017 
00018 using namespace std;
00019 using namespace zypp::detail;
00020 
00022 namespace zypp { namespace repo { namespace cached {
00023 
00025 //
00026 //        CLASS NAME : SrcPackageImpl
00027 //
00029 
00032 SrcPackageImpl::SrcPackageImpl ( const data::RecordId & id, repo::cached::RepoImpl::Ptr repository_r )
00033   : _repository( repository_r )
00034   , _id( id )
00035 {}
00036 
00037 Repository SrcPackageImpl::repository() const
00038 {
00039   return _repository->selfRepository();
00040 }
00041 
00043 // ResObject Attributes
00045 
00046 TranslatedText SrcPackageImpl::summary() const
00047 {
00048   return _repository->resolvableQuery().queryTranslatedStringAttribute( _id, cache::attrResObjectSummary() );
00049 }
00050 
00051 TranslatedText SrcPackageImpl::description() const
00052 {
00053   return _repository->resolvableQuery().queryTranslatedStringAttribute( _id, cache::attrResObjectDescription() );
00054 }
00055 
00056 TranslatedText SrcPackageImpl::insnotify() const
00057 {
00058   return _repository->resolvableQuery().queryTranslatedStringAttribute( _id, cache::attrResObjectInsnotify() );
00059 }
00060 
00061 TranslatedText SrcPackageImpl::delnotify() const
00062 {
00063   return _repository->resolvableQuery().queryTranslatedStringAttribute( _id, cache::attrResObjectDelnotify() );
00064 }
00065 
00066 TranslatedText SrcPackageImpl::licenseToConfirm() const
00067 {
00068   return _repository->resolvableQuery().queryTranslatedStringAttribute( _id, cache::attrResObjectLicenseToConfirm() );
00069 }
00070 
00071 Vendor SrcPackageImpl::vendor() const
00072 {
00073   return _repository->resolvableQuery().queryStringAttribute( _id, cache::attrResObjectVendor() );
00074 }
00075 
00076 ByteCount SrcPackageImpl::size() const
00077 {
00078   return _repository->resolvableQuery().queryNumericAttribute( _id, cache::attrResObjectInstalledSize() );
00079 }
00080 
00081 bool SrcPackageImpl::installOnly() const
00082 {
00083   return _repository->resolvableQuery().queryBooleanAttribute( _id, cache::attrResObjectInstallOnly() );
00084 }
00085 
00086 Date SrcPackageImpl::buildtime() const
00087 {
00088   return _repository->resolvableQuery().queryNumericAttribute( _id, cache::attrResObjectBuildTime() );
00089 }
00090 
00091 Date SrcPackageImpl::installtime() const
00092 {
00093   return Date();
00094 }
00095 
00097 // SRC PACKAGE
00099 
00100 unsigned SrcPackageImpl::mediaNr() const
00101 {
00102   if ( _mnr == (unsigned)-1 )
00103   {
00104     _mnr = _repository->resolvableQuery().queryNumericAttribute( _id, cache::attrSrcPackageLocationMediaNr() );
00105   }
00106   return _mnr;
00107 }
00108 
00109 ByteCount SrcPackageImpl::downloadSize() const
00110 {
00111   return _repository->resolvableQuery().queryNumericAttribute( _id, cache::attrSrcPackageLocationDownloadSize() );
00112 }
00113 
00114 const DiskUsage & SrcPackageImpl::diskusage() const
00115 {
00116   if ( ! _diskusage )
00117   {
00118     // lazy init
00119     _diskusage.reset( new DiskUsage );
00120     _repository->resolvableQuery().queryDiskUsage( _id, *_diskusage );
00121     if ( _diskusage->empty() )
00122     {
00123       // No info: Creating a faked entry distributing the
00124       // total source package size in assumed 20 files to "/usr/src/packages"
00125       // The reported size are 1K blocks.
00126       unsigned dusize = size().blocks( ByteCount::K );
00127       _diskusage->add( "/",                  dusize, 20 );
00128       _diskusage->add( "/usr/",              dusize, 20 );
00129       _diskusage->add( "/usr/src/",          dusize, 20 );
00130       _diskusage->add( "/usr/src/packages/", dusize, 20 );
00131     }
00132   }
00133   return *_diskusage;
00134 }
00135 
00136 OnMediaLocation SrcPackageImpl::location() const
00137 {
00138   OnMediaLocation loc;
00139   queryOnMediaLocation( _repository->resolvableQuery(), _id, cache::attrSrcPackageLocation, loc );
00140   return loc;
00141 }
00142 
00144 } } } // namespace zypp.repo.cached

Generated on Tue Sep 25 19:23:01 2007 for libzypp by  doxygen 1.5.3