libzypp  17.25.0
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>
20 #include <zypp/Repository.h>
21 #include <zypp/TmpPath.h>
23 
25 namespace zypp
26 {
27  namespace target
29  {
30 
32  //
33  // CLASS NAME : IMediaKey
34  //
36  struct IMediaKey
37  {
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 
73  };
75 
76  std::ostream & operator<<( std::ostream & str, const IMediaKey & obj );
77 
79  //
80  // CLASS NAME : CommitPackageCacheReadAhead
81  //
84  {
85  public:
86  CommitPackageCacheReadAhead( const PackageProvider & packageProvider_r );
87 
88  public:
90  virtual ManagedFile get( const PoolItem & citem_r );
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:
110  //Pathname _rootDir;
111  };
113 
115  } // namespace target
118 } // namespace zypp
120 #endif // ZYPP_TARGET_COMMITPACKAGECACHEREADAHEAD_H
zypp::target::CommitPackageCache::Impl::PackageProvider
CommitPackageCache::PackageProvider PackageProvider
Definition: CommitPackageCacheImpl.h:42
zypp::target::CommitPackageCacheReadAhead::get
virtual ManagedFile get(const PoolItem &citem_r)
Provide the package.
Definition: CommitPackageCacheReadAhead.cc:139
zypp::PoolItem
Combining sat::Solvable and ResStatus.
Definition: PoolItem.h:50
zypp::target::CommitPackageCache::Impl
Base for CommitPackageCache implementations (implements no chache).
Definition: CommitPackageCacheImpl.h:39
TmpPath.h
zypp::target::CommitPackageCacheReadAhead
Definition: CommitPackageCacheReadAhead.h:83
zypp::target::IMediaKey::_repo
Repository _repo
Definition: CommitPackageCacheReadAhead.h:71
zypp::target::IMediaKey::_mediaNr
DefaultIntegral< unsigned, 0 > _mediaNr
Definition: CommitPackageCacheReadAhead.h:72
zypp::target::IMediaKey
Helper storing a source id and media number.
Definition: CommitPackageCacheReadAhead.h:36
zypp::target::IMediaKey::IMediaKey
IMediaKey(const Repository &repo, unsigned mediaNr_r)
Definition: CommitPackageCacheReadAhead.h:53
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::CommitPackageCacheReadAhead::_lastInteractive
IMediaKey _lastInteractive
Definition: CommitPackageCacheReadAhead.h:109
zypp::target::CommitPackageCacheReadAhead::_dbgChanges
DefaultIntegral< unsigned, 0 > _dbgChanges
Definition: CommitPackageCacheReadAhead.h:108
zypp::ResObject::constPtr
TraitsType::constPtrType constPtr
Definition: ResObject.h:43
zypp::target::CommitPackageCacheReadAhead::cacheLastInteractive
void cacheLastInteractive(const PoolItem &citem_r)
Fill the cache.
Definition: CommitPackageCacheReadAhead.cc:77
zypp::target::IMediaKey::IMediaKey
IMediaKey(const ResObject::constPtr &obj_r)
Definition: CommitPackageCacheReadAhead.h:48
Exception.h
zypp::target::operator<<
std::ostream & operator<<(std::ostream &str, const CommitPackageCache &obj)
Definition: CommitPackageCache.cc:155
zypp::target::IMediaKey::IMediaKey
IMediaKey(const PoolItem &obj_r)
Definition: CommitPackageCacheReadAhead.h:42
CommitPackageCacheImpl.h
Logger.h
zypp::Repository::id
IdType id() const
Expert backdoor.
Definition: Repository.h:316
zypp
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:1
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::IMediaKey::operator==
bool operator==(const IMediaKey &rhs) const
Definition: CommitPackageCacheReadAhead.h:58
zypp::target::CommitPackageCacheReadAhead::CommitPackageCacheReadAhead
CommitPackageCacheReadAhead(const PackageProvider &packageProvider_r)
Definition: CommitPackageCacheReadAhead.cc:53
zypp::DefaultIntegral< unsigned, 0 >
zypp::AutoDispose
Reference counted access to a Tp object calling a custom Dispose function when the last AutoDispose h...
Definition: AutoDispose.h:92
Repository.h
zypp::target::IMediaKey::operator<
bool operator<(const IMediaKey &rhs) const
Definition: CommitPackageCacheReadAhead.h:64
str
String related utilities and Regular expression matching.
zypp::Repository
Definition: Repository.h:39
zypp::target::CommitPackageCacheReadAhead::doCacheLastInteractive
void doCacheLastInteractive(const PoolItem &citem_r)
cacheLastInteractive helper .
Definition: CommitPackageCacheReadAhead.cc:96
DefaultIntegral.h