libzypp 17.31.23
RepoType.cc
Go to the documentation of this file.
1/*---------------------------------------------------------------------\
2| ____ _ __ __ ___ |
3| |__ / \ / / . \ . \ |
4| / / \ V /| _/ _/ |
5| / /__ | | | | | | |
6| /_____||_| |_| |_| |
7| |
8\---------------------------------------------------------------------*/
9
10#include <iostream>
13#include "RepoType.h"
14
15namespace zypp
16{
17namespace 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:
thrown when it was impossible to determine this repo type.
std::string toLower(const std::string &s)
Return lowercase version of s.
Definition: String.cc:177
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:2
RepoType::Type parse(const std::string &strval_r)
Definition: RepoType.cc:46
static const RepoType YAST2
Definition: RepoType.h:30
const std::string & asString() const
Definition: RepoType.cc:56
static const RepoType RPMMD
Definition: RepoType.h:29
static const RepoType NONE
Definition: RepoType.h:32
static const RepoType RPMPLAINDIR
Definition: RepoType.h:31
#define ZYPP_THROW(EXCPT)
Drops a logline and throws the Exception.
Definition: Exception.h:428