move 'systemCheck' to toplevel directory
[platform/upstream/libzypp.git] / zypp / repo / ScriptProvider.h
1 /*---------------------------------------------------------------------\
2 |                          ____ _   __ __ ___                          |
3 |                         |__  / \ / / . \ . \                         |
4 |                           / / \ V /|  _/  _/                         |
5 |                          / /__ | | | | | |                           |
6 |                         /_____||_| |_| |_|                           |
7 |                                                                      |
8 \---------------------------------------------------------------------*/
9 /** \file       zypp/repo/ScriptProvider.h
10  *
11 */
12 #ifndef ZYPP_REPO_SCRIPTPROVIDER_H
13 #define ZYPP_REPO_SCRIPTPROVIDER_H
14
15 #include <iosfwd>
16
17 #include "zypp/base/NonCopyable.h"
18 #include "zypp/base/PtrTypes.h"
19
20 #include "zypp/repo/RepoProvideFile.h"
21 #include "zypp/ManagedFile.h"
22 #include "zypp/ResTraits.h"
23
24 ///////////////////////////////////////////////////////////////////
25 namespace zypp
26 { /////////////////////////////////////////////////////////////////
27   ///////////////////////////////////////////////////////////////////
28   namespace repo
29   { /////////////////////////////////////////////////////////////////
30
31     class RepoMediaAccess;
32
33     ///////////////////////////////////////////////////////////////////
34     //
35     //  CLASS NAME : ScriptProvider
36     //
37     /** */
38     class ScriptProvider : private base::NonCopyable
39     {
40     public:
41       /** Ctor */
42       ScriptProvider( repo::RepoMediaAccess & access_r );
43       /** Dtor */
44       ~ScriptProvider();
45
46     public:
47       /** Provide a script in a local file.*/
48       ManagedFile provideScript( const Script_constPtr & script_r, bool do_r ) const
49       { return( do_r ? provideDoScript( script_r ) : provideUndoScript( script_r ) ); }
50
51       /** Provide the do-script in a local file.
52        * Returns an empty path if no script is available.
53       */
54       ManagedFile provideDoScript( const Script_constPtr & script_r ) const;
55
56       /** Provide the do-script in a local file.
57        * Returns an empty path if no script is available.
58       */
59       ManagedFile provideUndoScript( const Script_constPtr & script_r ) const;
60
61     private:
62       RepoMediaAccess & _access;
63     };
64     ///////////////////////////////////////////////////////////////////
65
66     /////////////////////////////////////////////////////////////////
67   } // namespace repo
68   ///////////////////////////////////////////////////////////////////
69   /////////////////////////////////////////////////////////////////
70 } // namespace zypp
71 ///////////////////////////////////////////////////////////////////
72 #endif // ZYPP_REPO_SCRIPTPROVIDER_H