Merge pull request #23 from openSUSE/drop_package_manager
[platform/upstream/libzypp.git] / zypp / DownloadMode.cc
1 /*---------------------------------------------------------------------\
2 |                          ____ _   __ __ ___                          |
3 |                         |__  / \ / / . \ . \                         |
4 |                           / / \ V /|  _/  _/                         |
5 |                          / /__ | | | | | |                           |
6 |                         /_____||_| |_| |_|                           |
7 |                                                                      |
8 \---------------------------------------------------------------------*/
9 /** \file       zypp/DownloadMode.cc
10  *
11 */
12 #include <iostream>
13
14 #include "zypp/base/String.h"
15 #include "zypp/DownloadMode.h"
16
17 using std::endl;
18
19 ///////////////////////////////////////////////////////////////////
20 namespace zypp
21 { /////////////////////////////////////////////////////////////////
22
23   bool deserialize( const std::string & str_r, DownloadMode & result_r )
24   {
25 #define OUTS(VAL) if ( str::compareCI( str_r, #VAL ) == 0 ) { result_r = VAL; return true; }
26     OUTS( DownloadOnly );
27     OUTS( DownloadInAdvance );
28     OUTS( DownloadInHeaps );
29     OUTS( DownloadAsNeeded );
30 #undef OUTS
31     return false;
32   }
33
34   std::ostream & operator<<( std::ostream & str, DownloadMode obj )
35   {
36     switch ( obj )
37     {
38 #define OUTS(VAL) case VAL: return str << #VAL; break
39       OUTS( DownloadDefault );
40       OUTS( DownloadOnly );
41       OUTS( DownloadInAdvance );
42       OUTS( DownloadInHeaps );
43       OUTS( DownloadAsNeeded );
44 #undef OUTS
45     }
46     return str << "DownloadMode(" << int(obj) << ")";
47   }
48
49
50   /////////////////////////////////////////////////////////////////
51 } // namespace zypp
52 ///////////////////////////////////////////////////////////////////