libzypp: zypp/ServiceInfo.h Source File

libzypp 17.36.6

ServiceInfo.h
Go to the documentation of this file.
1/*---------------------------------------------------------------------\
2| ____ _ __ __ ___ |
3| |__ / \ / / . \ . \ |
4| / / \ V /| _/ _/ |
5| / /__ | | | | | | |
6| /_____||_| |_| |_| |
7| |
8\---------------------------------------------------------------------*/
12#ifndef ZYPP_SERVICE_H
13#define ZYPP_SERVICE_H
14
15#include <set>
16#include <string>
17
18#include <zypp/Url.h>
19
20#include <zypp/base/Iterable.h>
21#include <zypp/repo/ServiceType.h>
22#include <zypp/RepoInfo.h>
23#include <zypp/Date.h>
24
26namespace zypp
27{
28
36 class ZYPP_API ServiceInfo : public repo::RepoInfoBase
37 {
38 public:
40 ServiceInfo();
41
47 ServiceInfo( const std::string & alias );
48
55 ServiceInfo( const std::string & alias, const Url& url );
56
57 ~ServiceInfo() override;
58
59 public:
61 static const ServiceInfo noService ZYPP_API;
62
63 public:
64
66 Url url() const;
67
69 Url rawUrl() const;
70
72 void setUrl( const Url& url );
73
74
76 repo::ServiceType type() const;
77
79 void setType( const repo::ServiceType & type );
80
82 void setProbedType( const repo::ServiceType & t ) const;
83
88
92 Date::Duration ttl() const;
93
95 void setTtl( Date::Duration ttl_r );
96
98 void setProbedTtl( Date::Duration ttl_r ) const;
99
101 Date lrf() const;
102
104 void setLrf( Date lrf_r );
106 //
114
115 using ReposToEnable = std::set<std::string>;
116 bool reposToEnableEmpty() const;
117 ReposToEnable::size_type reposToEnableSize() const;
118 ReposToEnable::const_iterator reposToEnableBegin() const;
119 ReposToEnable::const_iterator reposToEnableEnd() const;
120 Iterable<ReposToEnable::const_iterator> reposToEnable() const
121 { return makeIterable( reposToEnableBegin(), reposToEnableEnd() ); }
122
124 bool repoToEnableFind( const std::string & alias_r ) const;
125
127 void addRepoToEnable( const std::string & alias_r );
129 void delRepoToEnable( const std::string & alias_r );
131 void clearReposToEnable();
133
140
141 using ReposToDisable = std::set<std::string>;
142 bool reposToDisableEmpty() const;
143 ReposToDisable::size_type reposToDisableSize() const;
144 ReposToDisable::const_iterator reposToDisableBegin() const;
145 ReposToDisable::const_iterator reposToDisableEnd() const;
146 Iterable<ReposToDisable::const_iterator> reposToDisable() const
147 { return makeIterable( reposToDisableBegin(), reposToDisableEnd() ); }
148
150 bool repoToDisableFind( const std::string & alias_r ) const;
151
153 void addRepoToDisable( const std::string & alias_r );
155 void delRepoToDisable( const std::string & alias_r );
157 void clearReposToDisable();
159
167 struct RepoState
168 {
169 bool enabled;
170 bool autorefresh;
171 unsigned priority;
172
173 RepoState()
174 : enabled( false ), autorefresh( true ), priority( RepoInfo::defaultPriority() )
175 {}
176 RepoState( const RepoInfo & repo_r )
177 : enabled( repo_r.enabled() ), autorefresh( repo_r.autorefresh() ), priority( repo_r.priority() )
178 {}
179 bool operator==( const RepoState & rhs ) const
180 { return( enabled==rhs.enabled && autorefresh==rhs.autorefresh && priority==rhs.priority ); }
181 bool operator!=( const RepoState & rhs ) const
182 { return ! operator==( rhs ); }
183 friend std::ostream & operator<<( std::ostream & str, const RepoState & obj );
184 };
185 using RepoStates = std::map<std::string, RepoState>;
186
188 const RepoStates & repoStates() const;
189
191 void setRepoStates( RepoStates newStates_r );
193
194 public:
200 std::ostream & dumpAsIniOn( std::ostream & str ) const override;
201
209 std::ostream & dumpAsXmlOn( std::ostream & str, const std::string & content = "" ) const override;
210
211 struct Impl;
212
213 private:
214 RWCOW_pointer<Impl> _pimpl;
215 };
216
217
219 using ServiceInfo_Ptr = shared_ptr<ServiceInfo>;
221 using ServiceInfo_constPtr = shared_ptr<const ServiceInfo>;
223 using ServiceInfoList = std::list<ServiceInfo>;
224
226 std::ostream & operator<<( std::ostream & str, const ServiceInfo & obj ) ZYPP_API;
227
228
230} // namespace zypp
232#endif // ZYPP_SAT_REPOSITORY_H
operator<<
std::ostream & operator<<(std::ostream &str, const zypp::sat::detail::CDataiterator *obj)
Definition LookupAttr.cc:808
RepoInfo.h
ServiceType.h
shared_ptr
zypp::Date
Store and operate on date (time_t).
Definition Date.h:33
zypp::Date::Duration
time_t Duration
Definition Date.h:39
zypp::Iterable
Definition Iterable.h:37
zypp::Iterable::makeIterable
Iterable< TIterator > makeIterable(TIterator &&begin_r, TIterator &&end_r)
convenient construction.
Definition Iterable.h:88
zypp::RepoInfo
What is known about a repository.
Definition RepoInfo.h:72
zypp::ServiceInfo::setProbedTtl
void setProbedTtl(Date::Duration ttl_r) const
Lazy init sugested TTL.
Definition ServiceInfo.cc:117
zypp::ServiceInfo::reposToEnableSize
ReposToEnable::size_type reposToEnableSize() const
Definition ServiceInfo.cc:123
zypp::ServiceInfo::type
repo::ServiceType type() const
Service type.
Definition ServiceInfo.cc:111
zypp::ServiceInfo::reposToEnableBegin
ReposToEnable::const_iterator reposToEnableBegin() const
Definition ServiceInfo.cc:124
zypp::ServiceInfo::ttl
Date::Duration ttl() const
Sugested TTL between two metadata auto-refreshs.
Definition ServiceInfo.cc:115
zypp::ServiceInfo::setLrf
void setLrf(Date lrf_r)
Set date of last refresh.
Definition ServiceInfo.cc:120
zypp::ServiceInfo::setType
void setType(const repo::ServiceType &type)
Set service type.
Definition ServiceInfo.cc:112
zypp::ServiceInfo::reposToEnable
Iterable< ReposToEnable::const_iterator > reposToEnable() const
Definition ServiceInfo.h:120
zypp::ServiceInfo::lrf
Date lrf() const
Date of last refresh (if known).
Definition ServiceInfo.cc:119
zypp::ServiceInfo::repoStates
const RepoStates & repoStates() const
Access the remembered repository states.
Definition ServiceInfo.cc:164
zypp::ServiceInfo::reposToDisableEnd
ReposToDisable::const_iterator reposToDisableEnd() const
Definition ServiceInfo.cc:146
zypp::ServiceInfo::ServiceInfo
ServiceInfo()
Default ctor creates noService.
Definition ServiceInfo.cc:89
zypp::ServiceInfo::ServiceInfoList
std::list< ServiceInfo > ServiceInfoList
Definition ServiceInfo.h:223
zypp::ServiceInfo::reposToEnableEnd
ReposToEnable::const_iterator reposToEnableEnd() const
Definition ServiceInfo.cc:125
zypp::ServiceInfo::ReposToDisable
std::set< std::string > ReposToDisable
Container of repos.
Definition ServiceInfo.h:141
zypp::ServiceInfo::reposToDisable
Iterable< ReposToDisable::const_iterator > reposToDisable() const
Definition ServiceInfo.h:146
zypp::ServiceInfo::RepoStates
std::map< std::string, RepoState > RepoStates
Definition ServiceInfo.h:185
zypp::ServiceInfo::reposToEnableEmpty
bool reposToEnableEmpty() const
Definition ServiceInfo.cc:122
zypp::ServiceInfo::url
Url url() const
The service url.
Definition ServiceInfo.cc:102
zypp::ServiceInfo::_pimpl
RWCOW_pointer< Impl > _pimpl
Definition ServiceInfo.h:214
zypp::ServiceInfo::dumpAsIniOn
std::ostream & dumpAsIniOn(std::ostream &str) const override
Writes ServiceInfo to stream in ".service" format.
Definition ServiceInfo.cc:176
zypp::ServiceInfo::setProbedType
void setProbedType(const repo::ServiceType &t) const
Lazy init service type.
Definition ServiceInfo.cc:113
zypp::ServiceInfo::setTtl
void setTtl(Date::Duration ttl_r)
Set sugested TTL.
Definition ServiceInfo.cc:116
zypp::ServiceInfo::rawUrl
Url rawUrl() const
The service raw url (no variables replaced)
Definition ServiceInfo.cc:105
zypp::ServiceInfo::ServiceInfo_Ptr
shared_ptr< ServiceInfo > ServiceInfo_Ptr
Definition ServiceInfo.h:219
zypp::ServiceInfo::ReposToEnable
std::set< std::string > ReposToEnable
Container of repos.
Definition ServiceInfo.h:115
zypp::ServiceInfo::ZYPP_API
static const ServiceInfo noService ZYPP_API
Represents an empty service.
Definition ServiceInfo.h:61
zypp::ServiceInfo::ServiceInfo_constPtr
shared_ptr< const ServiceInfo > ServiceInfo_constPtr
Definition ServiceInfo.h:221
zypp::ServiceInfo::setUrl
void setUrl(const Url &url)
Set the service url (raw value)
Definition ServiceInfo.cc:108
zypp::ServiceInfo::reposToDisableBegin
ReposToDisable::const_iterator reposToDisableBegin() const
Definition ServiceInfo.cc:145
zypp::ServiceInfo::reposToDisableSize
ReposToDisable::size_type reposToDisableSize() const
Definition ServiceInfo.cc:144
zypp::ServiceInfo::setRepoStates
void setRepoStates(RepoStates newStates_r)
Remember a new set of repository states.
Definition ServiceInfo.cc:165
zypp::ServiceInfo::reposToDisableEmpty
bool reposToDisableEmpty() const
Definition ServiceInfo.cc:143
zypp::Url
Url manipulation class.
Definition Url.h:93
zypp::repo::RepoInfoBase
Base class implementing common features of RepoInfo and ServiceInfo.
Definition RepoInfoBase.h:40
zypp::repo::RepoInfoBase::alias
std::string alias() const
unique identifier for this source.
Definition RepoInfoBase.cc:111
str
String related utilities and Regular expression matching.
zypp
Easy-to use interface to the ZYPP dependency resolver.
Definition Application.cc:20
zypp::operator<<
std::ostream & operator<<(std::ostream &str, const SerialNumber &obj)
Definition SerialNumber.cc:52
zypp::dumpAsXmlOn
std::ostream & dumpAsXmlOn(std::ostream &str, const Repository &obj)
Definition Repository.cc:407
zypp::RWCOW_pointer
RW_pointer supporting 'copy on write' functionality.
Definition PtrTypes.h:469
zypp::ServiceInfo::Impl
Definition ServiceInfo.cc:34
zypp::ServiceInfo::RepoState
Definition ServiceInfo.h:168
zypp::ServiceInfo::RepoState::operator==
bool operator==(const RepoState &rhs) const
Definition ServiceInfo.h:179
zypp::ServiceInfo::RepoState::priority
unsigned priority
Definition ServiceInfo.h:171
zypp::ServiceInfo::RepoState::RepoState
RepoState(const RepoInfo &repo_r)
Definition ServiceInfo.h:176
zypp::ServiceInfo::RepoState::RepoState
RepoState()
Definition ServiceInfo.h:173
zypp::ServiceInfo::RepoState::autorefresh
bool autorefresh
Definition ServiceInfo.h:170
zypp::ServiceInfo::RepoState::operator!=
bool operator!=(const RepoState &rhs) const
Definition ServiceInfo.h:181
zypp::ServiceInfo::RepoState::enabled
bool enabled
Definition ServiceInfo.h:169
zypp::repo::ServiceType
Service type enumeration.
Definition ServiceType.h:27
Date.h
Url.h
Iterable.h