1 /*---------------------------------------------------------------------\
3 | |__ / \ / / . \ . \ |
8 \---------------------------------------------------------------------*/
9 /** \file zypp/ZYppCommitPolicy.cc
15 #include "zypp/base/String.h"
17 #include "zypp/ZConfig.h"
18 #include "zypp/ZYppCommitPolicy.h"
20 ///////////////////////////////////////////////////////////////////
22 { /////////////////////////////////////////////////////////////////
24 std::ostream & operator<<( std::ostream & str, DownloadMode obj )
28 #define OUTS(VAL) case VAL: return str << #VAL; break
30 OUTS( DownloadInAdvance );
31 OUTS( DownloadInHeaps );
32 OUTS( DownloadAsNeeded );
35 return str << "DownloadMode(" << int(obj) << ")";
38 ///////////////////////////////////////////////////////////////////
40 // CLASS NAME : ZYppCommitPolicy::Impl
42 ///////////////////////////////////////////////////////////////////
44 class ZYppCommitPolicy::Impl
48 : _restrictToMedia ( 0 )
50 , _downloadMode ( DownloadAsNeeded )
51 , _rpmInstFlags ( ZConfig::instance().rpmInstallFlags() )
52 , _syncPoolAfterCommit ( true )
56 unsigned _restrictToMedia;
58 DownloadMode _downloadMode;
59 target::rpm::RpmInstFlags _rpmInstFlags;
60 bool _syncPoolAfterCommit;
63 friend Impl * rwcowClone<Impl>( const Impl * rhs );
64 /** clone for RWCOW_pointer */
65 Impl * clone() const { return new Impl( *this ); }
68 ///////////////////////////////////////////////////////////////////
70 // CLASS NAME : ZYppCommitPolicy
72 ///////////////////////////////////////////////////////////////////
74 ZYppCommitPolicy::ZYppCommitPolicy()
79 ZYppCommitPolicy & ZYppCommitPolicy::restrictToMedia( unsigned mediaNr_r )
80 { _pimpl->_restrictToMedia = ( mediaNr_r == 1 ) ? 1 : 0; return *this; }
82 unsigned ZYppCommitPolicy::restrictToMedia() const
83 { return _pimpl->_restrictToMedia; }
86 ZYppCommitPolicy & ZYppCommitPolicy::dryRun( bool yesNo_r )
87 { _pimpl->_dryRun = yesNo_r; return *this; }
89 bool ZYppCommitPolicy::dryRun() const
90 { return _pimpl->_dryRun; }
93 ZYppCommitPolicy & ZYppCommitPolicy::downloadMode( DownloadMode val_r )
94 { _pimpl->_downloadMode = val_r; return *this; }
96 DownloadMode ZYppCommitPolicy::downloadMode() const
97 { return _pimpl->_downloadMode; }
100 ZYppCommitPolicy & ZYppCommitPolicy::rpmInstFlags( target::rpm::RpmInstFlags newFlags_r )
101 { _pimpl->_rpmInstFlags = newFlags_r; return *this; }
103 ZYppCommitPolicy & ZYppCommitPolicy::rpmNoSignature( bool yesNo_r )
104 { _pimpl->_rpmInstFlags.setFlag( target::rpm::RPMINST_NOSIGNATURE, yesNo_r ); return *this; }
106 ZYppCommitPolicy & ZYppCommitPolicy::rpmExcludeDocs( bool yesNo_r )
107 { _pimpl->_rpmInstFlags.setFlag( target::rpm::RPMINST_EXCLUDEDOCS, yesNo_r ); return *this; }
109 target::rpm::RpmInstFlags ZYppCommitPolicy::rpmInstFlags() const
110 { return _pimpl->_rpmInstFlags; }
112 bool ZYppCommitPolicy::rpmNoSignature() const
113 { return _pimpl->_rpmInstFlags.testFlag( target::rpm::RPMINST_NOSIGNATURE ); }
115 bool ZYppCommitPolicy::rpmExcludeDocs() const
116 { return _pimpl->_rpmInstFlags.testFlag( target::rpm::RPMINST_EXCLUDEDOCS ); }
119 ZYppCommitPolicy & ZYppCommitPolicy::syncPoolAfterCommit( bool yesNo_r )
120 { _pimpl->_syncPoolAfterCommit = yesNo_r; return *this; }
122 bool ZYppCommitPolicy::syncPoolAfterCommit() const
123 { return _pimpl->_syncPoolAfterCommit; }
126 std::ostream & operator<<( std::ostream & str, const ZYppCommitPolicy & obj )
128 str << "CommitPolicy(";
129 if ( obj.restrictToMedia() )
130 str << " restrictToMedia:" << obj.restrictToMedia();
133 str << " " << obj.downloadMode();
134 if ( obj.syncPoolAfterCommit() )
135 str << " syncPoolAfterCommit";
136 if ( obj.rpmInstFlags() )
137 str << " rpmInstFlags{" << str::hexstring(obj.rpmInstFlags()) << "}";
141 /////////////////////////////////////////////////////////////////
143 ///////////////////////////////////////////////////////////////////