libzypp  17.24.1
RepoType.cc
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
9 
10 #include <iostream>
11 #include <zypp/base/NamedValue.h>
13 #include "RepoType.h"
14 
15 namespace zypp
16 {
17 namespace repo
18 {
20  namespace
21  {
22  static NamedValue<RepoType::Type> & table()
23  {
24  static NamedValue<RepoType::Type> & _t( *new NamedValue<RepoType::Type> );
25  if ( _t.empty() )
26  {
27  _t( RepoType::RPMMD_e ) | "rpm-md" | "rpm"|"rpmmd"|"repomd"|"yum"|"up2date";
28  _t( RepoType::YAST2_e ) | "yast2" | "yast"|"susetags";
29  _t( RepoType::RPMPLAINDIR_e ) | "plaindir";
30  _t( RepoType::NONE_e ) | "NONE" | "none";
31  }
32  return _t;
33  }
34  } // namespace
36 
37  const RepoType RepoType::RPMMD ( RepoType::RPMMD_e );
38  const RepoType RepoType::YAST2 ( RepoType::YAST2_e );
40  const RepoType RepoType::NONE ( RepoType::NONE_e );
41 
42  RepoType::RepoType(const std::string & strval_r)
43  : _type(parse(strval_r))
44  {}
45 
46  RepoType::Type RepoType::parse( const std::string & strval_r )
47  {
48  RepoType::Type type;
49  if ( ! table().getValue( str::toLower( strval_r ), type ) )
50  {
51  ZYPP_THROW( RepoUnknownTypeException( "Unknown repository type '" + strval_r + "'") );
52  }
53  return type;
54  }
55 
56  const std::string & RepoType::asString() const
57  {
58  return table().getName( _type );
59  }
60 
61 
62  } // ns repo
63 } // ns zypp
64 
65 // vim: set ts=2 sts=2 sw=2 et ai:
RepoType.h
zypp::repo::RepoType::RPMMD_e
Definition: RepoType.h:37
zypp::repo::RepoType::parse
RepoType::Type parse(const std::string &strval_r)
Definition: RepoType.cc:46
zypp::repo::RepoUnknownTypeException
thrown when it was impossible to determine this repo type.
Definition: RepoException.h:142
zypp::repo::RepoType::asString
const std::string & asString() const
Definition: RepoType.cc:56
ZYPP_THROW
#define ZYPP_THROW(EXCPT)
Drops a logline and throws the Exception.
Definition: Exception.h:392
zypp::repo::RepoType::NONE_e
Definition: RepoType.h:36
zypp::repo::RepoType::NONE
static const RepoType NONE
Definition: RepoType.h:32
zypp::repo::RepoType::RPMPLAINDIR_e
Definition: RepoType.h:39
zypp::repo::RepoType::YAST2
static const RepoType YAST2
Definition: RepoType.h:30
zypp::repo::RepoType::Type
Type
Definition: RepoType.h:34
zypp::repo::RepoType::YAST2_e
Definition: RepoType.h:38
zypp
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:1
zypp::str::toLower
std::string toLower(const std::string &s)
Return lowercase version of s.
Definition: String.cc:172
zypp::repo::RepoType::RPMMD
static const RepoType RPMMD
Definition: RepoType.h:29
zypp::repo::RepoType::RPMPLAINDIR
static const RepoType RPMPLAINDIR
Definition: RepoType.h:31
NamedValue.h
zypp::repo::RepoType::RepoType
RepoType()
Definition: RepoType.h:42
zypp::repo::RepoType::_type
Type _type
Definition: RepoType.h:54
RepoException.h