Imported Upstream version 14.45.0
[platform/upstream/libzypp.git] / zypp / ProvideFilePolicy.h
1 /*---------------------------------------------------------------------\
2 |                          ____ _   __ __ ___                          |
3 |                         |__  / \ / / . \ . \                         |
4 |                           / / \ V /|  _/  _/                         |
5 |                          / /__ | | | | | |                           |
6 |                         /_____||_| |_| |_|                           |
7 |                                                                      |
8 \---------------------------------------------------------------------*/
9
10 #ifndef ZYPP_PROVIDEFILEPOLICY_H
11 #define ZYPP_PROVIDEFILEPOLICY_H
12
13 #include <iosfwd>
14
15 #include "zypp/base/Function.h"
16 #include "zypp/base/Functional.h"
17
18 ///////////////////////////////////////////////////////////////////
19 namespace zypp
20 { /////////////////////////////////////////////////////////////////
21 ///////////////////////////////////////////////////////////////////
22 // CLASS NAME : ProvideFilePolicy
23   
24   /** Policy for \ref provideFile.
25     * Provides callback hook for progress reporting.
26     */
27   class ProvideFilePolicy
28   {
29   public:
30     /** Progress callback signature. */
31     typedef function<bool ( int )> ProgressCB;
32
33     /** Set callback. */
34     ProvideFilePolicy & progressCB( ProgressCB progressCB_r )
35     { _progressCB = progressCB_r; return *this; }
36
37     /** Evaluate callback. */
38     bool progress( int value ) const;
39
40   public:
41     typedef function<bool ()> FailOnChecksumErrorCB;    ///< Legacy to remain bincompat
42   private:
43     FailOnChecksumErrorCB _failOnChecksumErrorCB;       ///< Legacy to remain bincompat
44     ProgressCB            _progressCB;
45   };
46
47 } // namespace zypp
48 ///////////////////////////////////////////////////////////////////
49 #endif // ZYPP_PROVIDEFILEPOLICY_H