libzypp  17.8.0
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 
15 namespace 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
36  _table["ris"] = ServiceType::RIS_e;
37  _table["RIS"] = ServiceType::RIS_e;
38  _table["nu"] = ServiceType::RIS_e;
39  _table["NU"] = ServiceType::RIS_e;
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
#define ZYPP_THROW(EXCPT)
Drops a logline and throws the Exception.
Definition: Exception.h:392
ServiceType::Type parse(const std::string &strval_r)
Definition: ServiceType.cc:31
static const ServiceType RIS
Repository Index Service (RIS) (formerly known as &#39;Novell Update&#39; (NU) service)
Definition: ServiceType.h:32
const std::string & asString() const
Definition: ServiceType.cc:56
static const ServiceType NONE
No service set.
Definition: ServiceType.h:34
Service type enumeration.
Definition: ServiceType.h:26
static const ServiceType PLUGIN
Plugin services are scripts installed on your system that provide the package manager with repositori...
Definition: ServiceType.h:43
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:1