CommitPackageCache.cc

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------\
00002 |                          ____ _   __ __ ___                          |
00003 |                         |__  / \ / / . \ . \                         |
00004 |                           / / \ V /|  _/  _/                         |
00005 |                          / /__ | | | | | |                           |
00006 |                         /_____||_| |_| |_|                           |
00007 |                                                                      |
00008 \---------------------------------------------------------------------*/
00012 #include <iostream>
00013 #include "zypp/base/Logger.h"
00014 #include "zypp/base/Exception.h"
00015 
00016 #include "zypp/target/CommitPackageCache.h"
00017 #include "zypp/target/CommitPackageCacheImpl.h"
00018 #include "zypp/target/CommitPackageCacheReadAhead.h"
00019 
00020 using std::endl;
00021 
00023 namespace zypp
00024 { 
00025 
00026   namespace target
00027   { 
00028 
00030     //
00031     //  CLASS NAME : CommitPackageCache
00032     //
00034 
00036     //
00037     //  METHOD NAME : CommitPackageCache::CommitPackageCache
00038     //  METHOD TYPE : Ctor
00039     //
00040     CommitPackageCache::CommitPackageCache( Impl * pimpl_r )
00041     : _pimpl( pimpl_r )
00042     {
00043       assert( _pimpl );
00044     }
00045 
00047     //
00048     //  METHOD NAME : CommitPackageCache::CommitPackageCache
00049     //  METHOD TYPE : Ctor
00050     //
00051     CommitPackageCache::CommitPackageCache( const_iterator          begin_r,
00052                                             const_iterator          end_r,
00053                                             const Pathname &        rootDir_r,
00054                                             const PackageProvider & packageProvider_r )
00055     {
00056       if ( getenv("ZYPP_COMMIT_NO_PACKAGE_CACHE") )
00057         {
00058           MIL << "$ZYPP_COMMIT_NO_PACKAGE_CACHE is set." << endl;
00059           _pimpl.reset( new Impl( packageProvider_r ) ); // no cache
00060         }
00061       else
00062         {
00063           _pimpl.reset( new CommitPackageCacheReadAhead( begin_r, end_r,
00064                                                          rootDir_r, packageProvider_r ) );
00065         }
00066       assert( _pimpl );
00067     }
00068 
00070     //
00071     //  METHOD NAME : CommitPackageCache::~CommitPackageCache
00072     //  METHOD TYPE : Dtor
00073     //
00074     CommitPackageCache::~CommitPackageCache()
00075     {}
00076 
00078     //
00079     //  METHOD NAME : CommitPackageCache::~CommitPackageCache
00080     //  METHOD TYPE : Dtor
00081     //
00082     ManagedFile CommitPackageCache::get( const_iterator citem_r )
00083     { return _pimpl->get( citem_r ); }
00084 
00085     /******************************************************************
00086     **
00087     **  FUNCTION NAME : operator<<
00088     **  FUNCTION TYPE : std::ostream &
00089     */
00090     std::ostream & operator<<( std::ostream & str, const CommitPackageCache & obj )
00091     { return str << *obj._pimpl; }
00092 
00094   } // namespace target
00097 } // namespace zypp

doxygen