libzypp 17.37.10

CommitPackageCacheReadAhead.h
Go to the documentation of this file.
1/*---------------------------------------------------------------------\
2| ____ _ __ __ ___ |
3| |__ / \ / / . \ . \ |
4| / / \ V /| _/ _/ |
5| / /__ | | | | | | |
6| /_____||_| |_| |_| |
7| |
8\---------------------------------------------------------------------*/
12#ifndef ZYPP_TARGET_COMMITPACKAGECACHEREADAHEAD_H
13#define ZYPP_TARGET_COMMITPACKAGECACHEREADAHEAD_H
14
15#include <map>
16
17#include <zypp/base/Logger.h>
18#include <zypp/base/Exception.h>
19#include <zypp-core/base/DefaultIntegral>
20#include <zypp/Repository.h>
21#include <zypp/TmpPath.h>
22#include <zypp/target/CommitPackageCacheImpl.h>
23
25 namespace zypp
26{
28 namespace target
29 {
30
32 //
33 // CLASS NAME : IMediaKey
34 //
36 struct IMediaKey
37 {
38 IMediaKey()
39 {}
40
41 explicit
42 IMediaKey( const PoolItem & obj_r )
43 : _repo( obj_r->repository() )
44 , _mediaNr( obj_r->mediaNr() )
45 {}
46
47 explicit
48 IMediaKey( const ResObject::constPtr & obj_r )
49 : _repo( obj_r->repository() )
50 , _mediaNr( obj_r->mediaNr() )
51 {}
52
53 IMediaKey( const Repository & repo, unsigned mediaNr_r )
54 : _repo( repo )
55 , _mediaNr( mediaNr_r )
56 {}
57
58 bool operator==( const IMediaKey & rhs ) const
59 { return( _repo == rhs._repo && _mediaNr == rhs._mediaNr ); }
60
61 bool operator!=( const IMediaKey & rhs ) const
62 { return ! operator==( rhs ); }
63
64 bool operator<( const IMediaKey & rhs ) const
65 {
66 return( _repo.id() < rhs._repo.id()
67 || ( _repo.id() == rhs._repo.id()
68 && _mediaNr < rhs._mediaNr ) );
69 }
70
71 Repository _repo;
72 DefaultIntegral<unsigned,0> _mediaNr;
73 };
74
75
76 std::ostream & operator<<( std::ostream & str, const IMediaKey & obj );
77
79 //
80 // CLASS NAME : CommitPackageCacheReadAhead
81 //
83 class CommitPackageCacheReadAhead : public CommitPackageCache::Impl
84 {
85 public:
86 CommitPackageCacheReadAhead(PackageProvider packageProvider_r );
87
88 public:
90 ManagedFile get( const PoolItem & citem_r ) override;
91
92 private:
94 bool onInteractiveMedia( const PoolItem & pi ) const;
95
96 private:
102 void cacheLastInteractive( const PoolItem & citem_r );
103
105 void doCacheLastInteractive( const PoolItem & citem_r );
106
107 private:
108 DefaultIntegral<unsigned,0> _dbgChanges;
109 IMediaKey _lastInteractive;
110 //Pathname _rootDir;
111 };
112
113
115 } // namespace target
118} // namespace zypp
120#endif // ZYPP_TARGET_COMMITPACKAGECACHEREADAHEAD_H
CommitPackageCacheImpl.h
Repository.h
zypp::DefaultIntegral
Integral type with defined initial value when default constructed.
Definition defaultintegral.h:42
zypp::PoolItem
Combining sat::Solvable and ResStatus.
Definition PoolItem.h:51
zypp::Repository
Definition Repository.h:40
zypp::Repository::id
IdType id() const
Expert backdoor.
Definition Repository.h:321
zypp::ResObject::constPtr
TraitsType::constPtrType constPtr
Definition ResObject.h:43
zypp::target::CommitPackageCacheReadAhead::_lastInteractive
IMediaKey _lastInteractive
Definition CommitPackageCacheReadAhead.h:109
zypp::target::CommitPackageCacheReadAhead::CommitPackageCacheReadAhead
CommitPackageCacheReadAhead(PackageProvider packageProvider_r)
Definition CommitPackageCacheReadAhead.cc:53
zypp::target::CommitPackageCacheReadAhead::onInteractiveMedia
bool onInteractiveMedia(const PoolItem &pi) const
Return whether pi is located on a CD/DVD.
Definition CommitPackageCacheReadAhead.cc:62
zypp::target::CommitPackageCacheReadAhead::doCacheLastInteractive
void doCacheLastInteractive(const PoolItem &citem_r)
cacheLastInteractive helper .
Definition CommitPackageCacheReadAhead.cc:96
zypp::target::CommitPackageCacheReadAhead::cacheLastInteractive
void cacheLastInteractive(const PoolItem &citem_r)
Fill the cache.
Definition CommitPackageCacheReadAhead.cc:77
zypp::target::CommitPackageCacheReadAhead::get
ManagedFile get(const PoolItem &citem_r) override
Provide the package.
Definition CommitPackageCacheReadAhead.cc:139
zypp::target::CommitPackageCacheReadAhead::_dbgChanges
DefaultIntegral< unsigned, 0 > _dbgChanges
Definition CommitPackageCacheReadAhead.h:108
zypp::target::CommitPackageCache::Impl
Base for CommitPackageCache implementations (implements no chache).
Definition CommitPackageCacheImpl.h:41
zypp::target::CommitPackageCache::Impl::PackageProvider
CommitPackageCache::PackageProvider PackageProvider
Definition CommitPackageCacheImpl.h:43
str
String related utilities and Regular expression matching.
zypp::repo
Definition DeltaCandidates.cc:30
zypp::target
Definition KeyRing.h:325
zypp::target::operator<<
std::ostream & operator<<(std::ostream &str, const CommitPackageCache &obj)
Definition CommitPackageCache.cc:160
zypp
Easy-to use interface to the ZYPP dependency resolver.
Definition Application.cc:20
zypp::ManagedFile
AutoDispose< const Pathname > ManagedFile
A Pathname plus associated cleanup code to be executed when path is no longer needed.
Definition ManagedFile.h:27
zypp::target::IMediaKey
Helper storing a source id and media number.
Definition CommitPackageCacheReadAhead.h:37
zypp::target::IMediaKey::_repo
Repository _repo
Definition CommitPackageCacheReadAhead.h:71
zypp::target::IMediaKey::operator<
bool operator<(const IMediaKey &rhs) const
Definition CommitPackageCacheReadAhead.h:64
zypp::target::IMediaKey::IMediaKey
IMediaKey()
Definition CommitPackageCacheReadAhead.h:38
zypp::target::IMediaKey::operator!=
bool operator!=(const IMediaKey &rhs) const
Definition CommitPackageCacheReadAhead.h:61
zypp::target::IMediaKey::IMediaKey
IMediaKey(const Repository &repo, unsigned mediaNr_r)
Definition CommitPackageCacheReadAhead.h:53
zypp::target::IMediaKey::IMediaKey
IMediaKey(const ResObject::constPtr &obj_r)
Definition CommitPackageCacheReadAhead.h:48
zypp::target::IMediaKey::_mediaNr
DefaultIntegral< unsigned, 0 > _mediaNr
Definition CommitPackageCacheReadAhead.h:72
zypp::target::IMediaKey::operator==
bool operator==(const IMediaKey &rhs) const
Definition CommitPackageCacheReadAhead.h:58
zypp::target::IMediaKey::IMediaKey
IMediaKey(const PoolItem &obj_r)
Definition CommitPackageCacheReadAhead.h:42
TmpPath.h
Exception.h
Logger.h