Deprecate MediaAccess::downloads (accidentally deleted)
[platform/upstream/libzypp.git] / zypp / ZYppCommitPolicy.cc
1 /*---------------------------------------------------------------------\
2 |                          ____ _   __ __ ___                          |
3 |                         |__  / \ / / . \ . \                         |
4 |                           / / \ V /|  _/  _/                         |
5 |                          / /__ | | | | | |                           |
6 |                         /_____||_| |_| |_|                           |
7 |                                                                      |
8 \---------------------------------------------------------------------*/
9 /** \file       zypp/ZYppCommitPolicy.cc
10  *
11 */
12
13 #include <iostream>
14
15 #include "zypp/base/String.h"
16
17 #include "zypp/ZConfig.h"
18 #include "zypp/ZYppCommitPolicy.h"
19
20 ///////////////////////////////////////////////////////////////////
21 namespace zypp
22 { /////////////////////////////////////////////////////////////////
23
24   std::ostream & operator<<( std::ostream & str, DownloadMode obj )
25   {
26     switch ( obj )
27     {
28 #define OUTS(VAL) case VAL: return str << #VAL; break
29       OUTS( DownloadOnly );
30       OUTS( DownloadInAdvance );
31       OUTS( DownloadInHeaps );
32       OUTS( DownloadAsNeeded );
33 #undef OUTS
34     }
35     return str << "DownloadMode(" << int(obj) << ")";
36   }
37
38   ///////////////////////////////////////////////////////////////////
39   //
40   //    CLASS NAME : ZYppCommitPolicy::Impl
41   //
42   ///////////////////////////////////////////////////////////////////
43
44   class ZYppCommitPolicy::Impl
45   {
46     public:
47       Impl()
48       : _restrictToMedia        ( 0 )
49       , _dryRun                 ( false )
50       , _downloadMode           ( DownloadAsNeeded )
51       , _rpmInstFlags           ( ZConfig::instance().rpmInstallFlags() )
52       , _syncPoolAfterCommit    ( true )
53       {}
54
55     public:
56       unsigned                  _restrictToMedia;
57       bool                      _dryRun;
58       DownloadMode              _downloadMode;
59       target::rpm::RpmInstFlags _rpmInstFlags;
60       bool                      _syncPoolAfterCommit;
61
62     private:
63       friend Impl * rwcowClone<Impl>( const Impl * rhs );
64       /** clone for RWCOW_pointer */
65       Impl * clone() const { return new Impl( *this ); }
66   };
67
68   ///////////////////////////////////////////////////////////////////
69   //
70   //    CLASS NAME : ZYppCommitPolicy
71   //
72   ///////////////////////////////////////////////////////////////////
73
74   ZYppCommitPolicy::ZYppCommitPolicy()
75   : _pimpl( new Impl )
76   {}
77
78
79   ZYppCommitPolicy & ZYppCommitPolicy::restrictToMedia( unsigned mediaNr_r )
80   { _pimpl->_restrictToMedia = ( mediaNr_r == 1 ) ? 1 : 0; return *this; }
81
82   unsigned ZYppCommitPolicy::restrictToMedia() const
83   { return _pimpl->_restrictToMedia; }
84
85
86   ZYppCommitPolicy & ZYppCommitPolicy::dryRun( bool yesNo_r )
87   { _pimpl->_dryRun = yesNo_r; return *this; }
88
89   bool ZYppCommitPolicy::dryRun() const
90   { return _pimpl->_dryRun; }
91
92
93   ZYppCommitPolicy & ZYppCommitPolicy::downloadMode( DownloadMode val_r )
94   { _pimpl->_downloadMode = val_r; return *this; }
95
96   DownloadMode ZYppCommitPolicy::downloadMode() const
97   { return _pimpl->_downloadMode; }
98
99
100   ZYppCommitPolicy &  ZYppCommitPolicy::rpmInstFlags( target::rpm::RpmInstFlags newFlags_r )
101   { _pimpl->_rpmInstFlags = newFlags_r; return *this; }
102
103   ZYppCommitPolicy & ZYppCommitPolicy::rpmNoSignature( bool yesNo_r )
104   { _pimpl->_rpmInstFlags.setFlag( target::rpm::RPMINST_NOSIGNATURE, yesNo_r ); return *this; }
105
106   ZYppCommitPolicy & ZYppCommitPolicy::rpmExcludeDocs( bool yesNo_r )
107   { _pimpl->_rpmInstFlags.setFlag( target::rpm::RPMINST_EXCLUDEDOCS, yesNo_r ); return *this; }
108
109   target::rpm::RpmInstFlags ZYppCommitPolicy::rpmInstFlags() const
110   { return _pimpl->_rpmInstFlags; }
111
112   bool ZYppCommitPolicy::rpmNoSignature() const
113   { return _pimpl->_rpmInstFlags.testFlag( target::rpm::RPMINST_NOSIGNATURE ); }
114
115   bool ZYppCommitPolicy::rpmExcludeDocs() const
116   { return _pimpl->_rpmInstFlags.testFlag( target::rpm::RPMINST_EXCLUDEDOCS ); }
117
118
119   ZYppCommitPolicy & ZYppCommitPolicy::syncPoolAfterCommit( bool yesNo_r )
120   { _pimpl->_syncPoolAfterCommit = yesNo_r; return *this; }
121
122   bool ZYppCommitPolicy::syncPoolAfterCommit() const
123   { return _pimpl->_syncPoolAfterCommit; }
124
125
126   std::ostream & operator<<( std::ostream & str, const ZYppCommitPolicy & obj )
127   {
128     str << "CommitPolicy(";
129     if ( obj.restrictToMedia() )
130       str << " restrictToMedia:" << obj.restrictToMedia();
131     if ( obj.dryRun() )
132       str << " dryRun";
133     str << " " << obj.downloadMode();
134     if ( obj.syncPoolAfterCommit() )
135       str << " syncPoolAfterCommit";
136     if ( obj.rpmInstFlags() )
137       str << " rpmInstFlags{" << str::hexstring(obj.rpmInstFlags()) << "}";
138     return str << " )";
139   }
140
141   /////////////////////////////////////////////////////////////////
142 } // namespace zypp
143 ///////////////////////////////////////////////////////////////////