libzypp 17.31.23
ServiceType.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 "ServiceType.h"
14
15namespace zypp
16{
17 namespace repo
18 {
19
20
21 static std::map<std::string,ServiceType::Type> _table;
22
26
27 ServiceType::ServiceType(const std::string & strval_r)
28 : _type(parse(strval_r))
29 {}
30
31 ServiceType::Type ServiceType::parse(const std::string & strval_r)
32 {
33 if (_table.empty())
34 {
35 // initialize it
40 _table["plugin"] = ServiceType::PLUGIN_e;
41 _table["PLUGIN"] = ServiceType::PLUGIN_e;
42 _table["NONE"] = _table["none"] = ServiceType::NONE_e;
43 }
44
45 std::map<std::string,ServiceType::Type>::const_iterator it
46 = _table.find(strval_r);
47 if (it == _table.end())
48 {
50 "Unknown service type '" + strval_r + "'"));
51 }
52 return it->second;
53 }
54
55
56 const std::string & ServiceType::asString() const
57 {
58 static std::map<Type, std::string> _table;
59 if ( _table.empty() )
60 {
61 // initialize it
62 _table[RIS_e] = "ris";
63 _table[PLUGIN_e] = "plugin";
64 _table[NONE_e] = "NONE";
65 }
66 return _table[_type];
67 }
68
69
70 } // ns repo
71} // ns zypp
72
73// vim: set ts=2 sts=2 sw=2 et ai:
thrown when it was impossible to determine this repo type.
static std::map< std::string, ServiceType::Type > _table
Definition: ServiceType.cc:21
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:2
Service type enumeration.
Definition: ServiceType.h:27
static const ServiceType NONE
No service set.
Definition: ServiceType.h:34
ServiceType::Type parse(const std::string &strval_r)
Definition: ServiceType.cc:31
const std::string & asString() const
Definition: ServiceType.cc:56
static const ServiceType RIS
Repository Index Service (RIS) (formerly known as 'Novell Update' (NU) service)
Definition: ServiceType.h:32
static const ServiceType PLUGIN
Plugin services are scripts installed on your system that provide the package manager with repositori...
Definition: ServiceType.h:43
#define ZYPP_THROW(EXCPT)
Drops a logline and throws the Exception.
Definition: Exception.h:428