libzypp
11.13.5
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
PluginServices.cc
Go to the documentation of this file.
1
/*---------------------------------------------------------------------\
2
| ____ _ __ __ ___ |
3
| |__ / \ / / . \ . \ |
4
| / / \ V /| _/ _/ |
5
| / /__ | | | | | | |
6
| /_____||_| |_| |_| |
7
| |
8
\---------------------------------------------------------------------*/
9
#include <iostream>
10
#include <sstream>
11
#include "
zypp/base/Logger.h
"
12
#include "
zypp/base/Gettext.h
"
13
#include "
zypp/base/String.h
"
14
#include "
zypp/base/InputStream.h
"
15
#include "
zypp/base/UserRequestException.h
"
16
17
#include "
zypp/repo/PluginServices.h
"
18
#include "
zypp/ServiceInfo.h
"
19
#include "
zypp/RepoInfo.h
"
20
#include "
zypp/PathInfo.h
"
21
22
using
std::endl;
23
using
std::stringstream;
24
26
namespace
zypp
27
{
28
29
namespace
repo
30
{
31
32
class
PluginServices::Impl
33
{
34
public
:
35
static
void
loadServices
(
const
Pathname &path,
36
const
PluginServices::ProcessService
&callback );
37
};
38
39
void
PluginServices::Impl::loadServices
(
const
Pathname &path,
40
const
PluginServices::ProcessService
& callback
/*,
41
const ProgressData::ReceiverFnc &progress*/
)
42
{
43
std::list<Pathname> entries;
44
if
(PathInfo(path).isExist())
45
{
46
if
(
filesystem::readdir
( entries, path,
false
) != 0 )
47
{
48
// TranslatorExplanation '%s' is a pathname
49
ZYPP_THROW
(
Exception
(
str::form
(
_
(
"Failed to read directory '%s'"
), path.c_str())));
50
}
51
52
//str::regex allowedServiceExt("^\\.service(_[0-9]+)?$");
53
for_
(it, entries.begin(), entries.end() )
54
{
55
ServiceInfo
service_info;
56
service_info.
setAlias
((*it).basename());
57
Url
url
;
58
url.
setPathName
((*it).asString());
59
url.
setScheme
(
"file"
);
60
service_info.
setUrl
(url);
61
service_info.
setType
(
ServiceType::PLUGIN
);
62
service_info.
setAutorefresh
(
true
);
63
DBG
<<
"Plugin Service: "
<< service_info << endl;
64
callback(service_info);
65
}
66
67
}
68
}
69
70
PluginServices::PluginServices
(
const
Pathname &path,
71
const
ProcessService
& callback
/*,
72
const ProgressData::ReceiverFnc &progress */
)
73
{
74
Impl::loadServices
(path, callback
/*, progress*/
);
75
}
76
77
PluginServices::~PluginServices
()
78
{}
79
80
std::ostream &
operator<<
( std::ostream & str,
const
PluginServices
& obj )
81
{
82
return
str;
83
}
84
86
}
// namespace repo
89
}
// namespace zypp
zypp
repo
PluginServices.cc
Generated by
1.8.1