libzypp  11.13.5
RepoType.cc
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
9 
10 #include <iostream>
11 #include <map>
13 #include "RepoType.h"
14 
15 namespace zypp
16 {
17 namespace repo
18 {
19 
20  static std::map<std::string,RepoType::Type> _table;
21 
26 
27  RepoType::RepoType(const std::string & strval_r)
28  : _type(parse(strval_r))
29  {}
30 
31  RepoType::Type RepoType::parse(const std::string & strval_r)
32  {
33  if (_table.empty())
34  {
35  // initialize it
36  _table["repomd"]
37  = _table["rpmmd"]
38  = _table["rpm-md"]
39  = _table["yum"]
40  = _table["YUM"]
41  = _table["up2date"]
43 
44  _table["susetags"]
45  = _table["yast"]
46  = _table["YaST"]
47  = _table["YaST2"]
48  = _table["YAST"]
49  = _table["YAST2"]
50  = _table["yast2"]
52 
53  _table["plaindir"]
54  = _table["Plaindir"]
56 
57  _table["NONE"]
58  = _table["none"]
60  }
61 
62  std::map<std::string,RepoType::Type>::const_iterator it
63  = _table.find(strval_r);
64  if (it == _table.end())
65  {
67  "Unknown repository type '" + strval_r + "'"));
68  }
69  return it->second;
70  }
71 
72 
73  const std::string & RepoType::asString() const
74  {
75  static std::map<Type, std::string> _table;
76  if ( _table.empty() )
77  {
78  // initialize it
79  _table[RPMMD_e] = "rpm-md";
80  _table[YAST2_e] = "yast2";
81  _table[RPMPLAINDIR_e] = "plaindir";
82  _table[NONE_e] = "NONE";
83  }
84  return _table[_type];
85  }
86 
87 
88  } // ns repo
89 } // ns zypp
90 
91 // vim: set ts=2 sts=2 sw=2 et ai: