libzypp  10.5.0
RepoProvideFile.h
Go to the documentation of this file.
00001 /*---------------------------------------------------------------------\
00002 |                          ____ _   __ __ ___                          |
00003 |                         |__  / \ / / . \ . \                         |
00004 |                           / / \ V /|  _/  _/                         |
00005 |                          / /__ | | | | | |                           |
00006 |                         /_____||_| |_| |_|                           |
00007 |                                                                      |
00008 \---------------------------------------------------------------------*/
00012 #ifndef ZYPP_REPO_REPOPROVIDEFILE_H
00013 #define ZYPP_REPO_REPOPROVIDEFILE_H
00014 
00015 #include <iosfwd>
00016 
00017 #include "zypp/base/PtrTypes.h"
00018 #include "zypp/base/Function.h"
00019 #include "zypp/base/Functional.h"
00020 #include "zypp/RepoInfo.h"
00021 #include "zypp/ManagedFile.h"
00022 #include "zypp/OnMediaLocation.h"
00023 #include "zypp/ProvideFilePolicy.h"
00024 
00026 namespace zypp
00027 { 
00028 
00029   namespace repo
00030   { 
00031 
00033     //
00034     //  provideFile
00035     //
00037 
00046     ManagedFile provideFile( RepoInfo repo_r,
00047                              const OnMediaLocation & loc_r,
00048                              const ProvideFilePolicy & policy_r = ProvideFilePolicy() );
00049 
00060     class RepoMediaAccess
00061     {
00062     public:
00064       RepoMediaAccess( const ProvideFilePolicy & defaultPolicy_r = ProvideFilePolicy() );
00065       ~RepoMediaAccess();
00066 
00076       ManagedFile provideFile( RepoInfo repo_r,
00077                                const OnMediaLocation & loc_r,
00078                                const ProvideFilePolicy & policy_r );
00079 
00081       ManagedFile provideFile( RepoInfo repo_r, const OnMediaLocation & loc_r )
00082       { return provideFile( repo_r, loc_r, defaultPolicy() ); }
00083 
00084     public:
00086       void setDefaultPolicy( const ProvideFilePolicy & policy_r );
00087 
00089       const ProvideFilePolicy & defaultPolicy() const;
00090 
00091    private:
00092       class Impl;
00093        RW_pointer<Impl> _impl;
00094     };
00095 
00097   } // namespace repo
00100 } // namespace zypp
00102 #endif // ZYPP_REPO_REPOPROVIDEFILE_H