00001
00002
00003
00004
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
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
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
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
00119 _diskusage.reset( new DiskUsage );
00120 _repository->resolvableQuery().queryDiskUsage( _id, *_diskusage );
00121 if ( _diskusage->empty() )
00122 {
00123
00124
00125
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 } } }