libzypp 17.35.15
RepoInfo.h
Go to the documentation of this file.
1/*---------------------------------------------------------------------\
2| ____ _ __ __ ___ |
3| |__ / \ / / . \ . \ |
4| / / \ V /| _/ _/ |
5| / /__ | | | | | | |
6| /_____||_| |_| |_| |
7| |
8\---------------------------------------------------------------------*/
12#ifndef ZYPP2_REPOSITORYINFO_H
13#define ZYPP2_REPOSITORYINFO_H
14
15#include <list>
16#include <set>
17
18#include <zypp/base/Iterator.h>
19#include <zypp-core/Globals.h>
20
21#include <zypp/Url.h>
22#include <zypp/Locale.h>
23#include <zypp/TriBool.h>
24#include <zypp/repo/RepoType.h>
26
28
30namespace zypp
31{
32
34 //
35 // CLASS NAME : RepoInfo
36 //
72 {
73 friend std::ostream & operator<<( std::ostream & str, const RepoInfo & obj );
74
75 public:
76 RepoInfo();
77 ~RepoInfo() override;
78
79 RepoInfo(const RepoInfo &) = default;
80 RepoInfo(RepoInfo &&) = default;
81 RepoInfo &operator=(const RepoInfo &) = default;
82 RepoInfo &operator=(RepoInfo &&) = default;
83
85 static const RepoInfo noRepo;
86
87 public:
91 static unsigned defaultPriority();
95 static unsigned noPriority();
100 unsigned priority() const;
106 void setPriority( unsigned newval_r );
107
108 using url_set = std::list<Url>;
109 using urls_size_type = url_set::size_type;
110 using urls_const_iterator = transform_iterator<repo::RepoVariablesUrlReplacer, url_set::const_iterator>;
114 bool baseUrlsEmpty() const;
119 bool baseUrlSet() const;
123 urls_size_type baseUrlsSize() const;
127 urls_const_iterator baseUrlsBegin() const;
131 urls_const_iterator baseUrlsEnd() const;
132
136 Url url() const
137 { return( baseUrlsEmpty() ? Url() : *baseUrlsBegin()); }
141 Url rawUrl() const;
142
149 url_set baseUrls() const;
153 url_set rawBaseUrls() const;
154
162 void addBaseUrl( Url url );
166 void setBaseUrl( Url url );
170 void setBaseUrls( url_set urls );
171
192 Pathname path() const;
197 void setPath( const Pathname &path );
198
202 Url mirrorListUrl() const;
206 Url rawMirrorListUrl() const;
211 void setMirrorListUrl( const Url &url );
213 void setMirrorListUrls( url_set urls );
214
216 void setMetalinkUrl( const Url &url );
218 void setMetalinkUrls( url_set urls );
219
224 repo::RepoType type() const;
231 void setProbedType( const repo::RepoType &t ) const;
236 void setType( const repo::RepoType &t );
237
244 Pathname metadataPath() const;
271 void setMetadataPath( const Pathname &path );
272
274 bool usesAutoMetadataPaths() const;
275
279 Pathname packagesPath() const;
285 void setPackagesPath( const Pathname &path );
286
287
345 bool gpgCheck() const;
347 void setGpgCheck( TriBool value_r );
349 void setGpgCheck( bool value_r );
350
352 bool repoGpgCheck() const;
354 bool repoGpgCheckIsMandatory() const;
356 void setRepoGpgCheck( TriBool value_r );
357
359 bool pkgGpgCheck() const;
361 bool pkgGpgCheckIsMandatory() const;
363 void setPkgGpgCheck( TriBool value_r );
364
368 TriBool validRepoSignature() const;
370 void setValidRepoSignature( TriBool value_r );
371
373 enum class GpgCheck {
374 indeterminate, //< not specified
375 On, //< 1** --gpgcheck
376 Strict, //< 111 --gpgcheck-strict
377 AllowUnsigned, //< 100 --gpgcheck-allow-unsigned
378 AllowUnsignedRepo, //< 10* --gpgcheck-allow-unsigned-repo
379 AllowUnsignedPackage, //< 1*0 --gpgcheck-allow-unsigned-package
380 Default, //< *** --default-gpgcheck
381 Off, //< 0** --no-gpgcheck
382 };
383
388 bool setGpgCheck( GpgCheck mode_r );
390
391
393 bool gpgKeyUrlsEmpty() const;
395 urls_size_type gpgKeyUrlsSize() const;
396
398 url_set gpgKeyUrls() const;
400 url_set rawGpgKeyUrls() const;
402 void setGpgKeyUrls( url_set urls );
403
405 Url gpgKeyUrl() const;
407 Url rawGpgKeyUrl() const;
409 void setGpgKeyUrl( const Url &gpgkey );
410
412 Pathname provideKey(const std::string &keyID_r, const Pathname &targetDirectory_r ) const;
413
417 bool keepPackages() const;
427 void setKeepPackages( bool keep );
428
433 std::string service() const;
437 void setService( const std::string& name );
438
442 std::string targetDistribution() const;
448 void setTargetDistribution(const std::string & targetDistribution);
449
450
452 const std::set<std::string> & contentKeywords() const;
453
455 void addContent( const std::string & keyword_r );
457 template <class TIterator>
458 void addContentFrom( TIterator begin_r, TIterator end_r )
459 { for_( it, begin_r, end_r ) addContent( *it ); }
461 template <class TContainer>
462 void addContentFrom( const TContainer & container_r )
463 { addContentFrom( container_r.begin(), container_r.end() ); }
464
468 bool hasContent() const;
470 bool hasContent( const std::string & keyword_r ) const;
472 template <class TIterator>
473 bool hasContentAll( TIterator begin_r, TIterator end_r ) const
474 { for_( it, begin_r, end_r ) if ( ! hasContent( *it ) ) return false; return true; }
476 template <class TContainer>
477 bool hasContentAll( const TContainer & container_r ) const
478 { return hasContentAll( container_r.begin(), container_r.end() ); }
480 template <class TIterator>
481 bool hasContentAny( TIterator begin_r, TIterator end_r ) const
482 { for_( it, begin_r, end_r ) if ( hasContent( *it ) ) return true; return false; }
484 template <class TContainer>
485 bool hasContentAny( const TContainer & container_r ) const
486 { return hasContentAny( container_r.begin(), container_r.end() ); }
487
488 public:
502 bool hasLicense() const;
504 bool hasLicense( const std::string & name_r ) const;
505
509 bool needToAcceptLicense() const;
511 bool needToAcceptLicense( const std::string & name_r ) const;
512
514 std::string getLicense( const Locale & lang_r = Locale() ) const;
516 std::string getLicense( const Locale & lang_r = Locale() ); // LEGACY API
518 std::string getLicense( const std::string & name_r, const Locale & lang_r = Locale() ) const;
519
524 LocaleSet getLicenseLocales() const;
526 LocaleSet getLicenseLocales( const std::string & name_r ) const;
528
533 bool requireStatusWithMediaFile () const;
534
535 public:
540 std::ostream & dumpOn( std::ostream & str ) const override;
541
546 std::ostream & dumpAsIniOn( std::ostream & str ) const override;
547
556 std::ostream & dumpAsXmlOn( std::ostream & str, const std::string & content = "" ) const override;
557
561 void getRawGpgChecks( TriBool & g_r, TriBool & r_r, TriBool & p_r ) const;
562
563 struct Impl;
564 private:
565 friend class RepoManager;
566
569 };
571
573 using RepoInfo_Ptr = shared_ptr<RepoInfo>;
575 using RepoInfo_constPtr = shared_ptr<const RepoInfo>;
577 using RepoInfoList = std::list<RepoInfo>;
578
580 std::ostream & operator<<( std::ostream & str, const RepoInfo & obj ) ZYPP_API;
581
583 std::ostream & operator<<( std::ostream & str, const RepoInfo::GpgCheck & obj ) ZYPP_API;
584
586} // namespace zypp
588#endif // ZYPP2_REPOSITORYINFO_H
'Language[_Country]' codes.
Definition Locale.h:51
What is known about a repository.
Definition RepoInfo.h:72
bool hasContentAny(const TContainer &container_r) const
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition RepoInfo.h:485
RepoInfo(RepoInfo &&)=default
url_set::size_type urls_size_type
Definition RepoInfo.h:109
shared_ptr< RepoInfo > RepoInfo_Ptr
Definition RepoInfo.h:573
void addContentFrom(TIterator begin_r, TIterator end_r)
Definition RepoInfo.h:458
GpgCheck
Some predefined settings.
Definition RepoInfo.h:373
transform_iterator< repo::RepoVariablesUrlReplacer, url_set::const_iterator > urls_const_iterator
Definition RepoInfo.h:110
std::list< RepoInfo > RepoInfoList
Definition RepoInfo.h:577
RepoInfo & operator=(const RepoInfo &)=default
Url url() const
Pars pro toto: The first repository url.
Definition RepoInfo.h:136
static const RepoInfo noRepo
Represents no Repository (one with an empty alias).
Definition RepoInfo.h:85
bool hasContentAny(TIterator begin_r, TIterator end_r) const
Definition RepoInfo.h:481
RepoInfo(const RepoInfo &)=default
void addContentFrom(const TContainer &container_r)
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition RepoInfo.h:462
RWCOW_pointer< Impl > _pimpl
Pointer to implementation.
Definition RepoInfo.h:568
bool hasContentAll(const TContainer &container_r) const
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition RepoInfo.h:477
shared_ptr< const RepoInfo > RepoInfo_constPtr
Definition RepoInfo.h:575
bool hasContentAll(TIterator begin_r, TIterator end_r) const
Definition RepoInfo.h:473
std::list< Url > url_set
Definition RepoInfo.h:108
RepoInfo & operator=(RepoInfo &&)=default
creates and provides information about known sources.
Definition RepoManager.h:59
Url manipulation class.
Definition Url.h:92
Base class implementing common features of RepoInfo and ServiceInfo.
String related utilities and Regular expression matching.
Easy-to use interface to the ZYPP dependency resolver.
std::unordered_set< Locale > LocaleSet
Definition Locale.h:29
@ Default
Request the standard behavior (as defined in zypp.conf or 'Job')
boost::logic::tribool TriBool
3-state boolean logic (true, false and indeterminate).
Definition String.h:30
std::ostream & dumpOn(std::ostream &str, const Capability &obj)
std::ostream & operator<<(std::ostream &str, const SerialNumber &obj)
std::ostream & dumpAsXmlOn(std::ostream &str, const Repository &obj)
const Arch Arch_armv7hnl Arch_armv7nhl ZYPP_API
Definition Arch.h:247
RW_pointer supporting 'copy on write' functionality.
Definition PtrTypes.h:469
Repository type enumeration.
Definition RepoType.h:29
Provides API related macros.
#define for_(IT, BEG, END)
Convenient for-loops using iterator.
Definition Easy.h:28