libzypp  17.37.10
providespec.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
11 #ifndef ZYPP_MEDIA_PROVIDESPEC_H_INCLUDED
12 #define ZYPP_MEDIA_PROVIDESPEC_H_INCLUDED
13 
14 #include <iosfwd>
15 
16 #include <zypp-core/Url.h>
17 #include <zypp-core/ByteCount.h>
18 #include <zypp-core/CheckSum.h>
19 #include <zypp-core/TriBool.h>
20 #include <zypp-core/OnMediaLocation>
21 #include <zypp-media/ng/ProvideFwd>
22 #include <zypp-media/ng/HeaderValueMap>
23 #include <boost/iterator/iterator_adaptor.hpp>
24 
25 namespace zyppng
26 {
27 
29  {
30  public:
31 
32  ProvideMediaSpec(std::string label="", zypp::Pathname verifyData = zypp::Pathname(), unsigned medianr = 1 );
33 
37  const std::string &label() const;
38 
42  ProvideMediaSpec &setLabel( const std::string &label );
43 
47  unsigned medianr() const;
48 
52  ProvideMediaSpec & setMedianr( unsigned medianr );
53 
58  zypp::Pathname mediaFile () const;
59 
64 
70  const HeaderValueMap &customHeaders() const;
71 
75  ProvideMediaSpec &setCustomHeaderValue ( const std::string &key, const HeaderValueMap::Value &val );
76 
80  ProvideMediaSpec &addCustomHeaderValue ( const std::string &key, const HeaderValueMap::Value &val );
81 
82  zypp::TriBool isSameMedium ( const ProvideMediaSpec &other ) const;
83 
84  public:
85  class Impl;
86  private:
88  };
89 
90 
92  {
93  friend std::ostream & operator<<( std::ostream &str, const ProvideFileSpec &obj );
94  friend std::ostream & dumpOn( std::ostream &str, const ProvideFileSpec &obj );
95 
96  public:
98 
100 
101  ProvideFileSpec(const ProvideFileSpec &) = default;
102  ProvideFileSpec(ProvideFileSpec &&) noexcept = default;
103 
104  ProvideFileSpec &operator=(const ProvideFileSpec &) = default;
105  ProvideFileSpec &operator=(ProvideFileSpec &&) noexcept = default;
106 
109 
110  template <typename... T>
111  static ProvideFileSpecRef create ( T... args ) {
112  return std::make_shared<ProvideFileSpec>( std::forward<T>(args)... );
113  }
114 
120  const zypp::Pathname &destFilenameHint() const;
122 
123  bool checkExistsOnly () const;
124  ProvideFileSpec & setCheckExistsOnly( const bool set = true );
125 
126 
131  bool optional() const;
133  ProvideFileSpec & setOptional( bool val );
134 
136  const zypp::ByteCount &downloadSize() const;
139 
141  const zypp::CheckSum &checksum() const;
143  ProvideFileSpec &setChecksum( const zypp::CheckSum &val_r );
144 
145 
147  const zypp::ByteCount &openSize() const;
150 
152  const zypp::CheckSum &openChecksum() const;
155 
157  const zypp::ByteCount &headerSize() const;
160 
162  const zypp::CheckSum &headerChecksum() const;
165 
167  const zypp::Pathname &deltafile() const;
170 
172  bool mirrorsAllowed() const;
173 
175  ProvideFileSpec &setMirrorsAllowed( bool set = true );
176 
184  const HeaderValueMap &customHeaders() const;
185 
189  ProvideFileSpec &setCustomHeaderValue ( const std::string &key, const HeaderValueMap::Value &val );
190 
194  ProvideFileSpec &addCustomHeaderValue ( const std::string &key, const HeaderValueMap::Value &val );
195 
196  zypp::OnMediaLocation asOnMediaLocation ( const zypp::Pathname &path, unsigned int mediaNr ) const;
197 
198  public:
199  class Impl;
200  private:
202  };
203 
205  std::ostream & operator<<( std::ostream &str, const ProvideFileSpec &obj );
206 
208  std::ostream & dumpOn( std::ostream &str, const ProvideFileSpec &obj );
209 
210 } // namespace zypp
211 
212 #endif // ZYPP_MEDIA_PROVIDESPEC_H_INCLUDED
ProvideFileSpec & setHeaderChecksum(const zypp::CheckSum &val_r)
Set the headerChecksum.
Definition: providespec.cc:243
boost::logic::tribool TriBool
3-state boolean logic (true, false and indeterminate).
Definition: String.h:31
ProvideFileSpec & setOptional(bool val)
Set whether the resource is optional.
Definition: providespec.cc:207
Describes a resource file located on a medium.
const zypp::ByteCount & openSize() const
The size of the resource once it has been uncompressed or unpacked.
Definition: providespec.cc:222
zypp::RWCOW_pointer< Impl > _pimpl
Implementation class.
Definition: providespec.h:85
Store and operate with byte count.
Definition: ByteCount.h:31
const zypp::CheckSum & openChecksum() const
The checksum of the resource once it has been uncompressed or unpacked.
Definition: providespec.cc:228
static ProvideFileSpecRef create(T... args)
Definition: providespec.h:111
std::ostream & dumpOn(std::ostream &str, const ProvideFileSpec &obj)
Definition: providespec.cc:293
zypp::RWCOW_pointer< Impl > _pimpl
Implementation class.
Definition: providespec.h:199
ProvideFileSpec & operator=(const ProvideFileSpec &)=default
ProvideMediaSpec & setMedianr(unsigned medianr)
Definition: providespec.cc:113
String related utilities and Regular expression matching.
const zypp::Pathname & deltafile() const
The existing deltafile that can be used to reduce download size ( zchunk or metalink ) ...
Definition: providespec.cc:246
const std::string & label() const
Definition: providespec.cc:101
ProvideFileSpec & setOpenChecksum(const zypp::CheckSum &val_r)
Set the openChecksum.
Definition: providespec.cc:231
zypp::OnMediaLocation asOnMediaLocation(const zypp::Pathname &path, unsigned int mediaNr) const
Definition: providespec.cc:276
ProvideFileSpec & setDestFilenameHint(const zypp::Pathname &filename)
Definition: providespec.cc:195
unsigned medianr() const
Definition: providespec.cc:110
const zypp::CheckSum & checksum() const
The checksum of the resource on the server.
Definition: providespec.cc:216
zypp::Pathname mediaFile() const
Definition: providespec.cc:119
ProvideFileSpec & setDeltafile(const zypp::Pathname &path)
Set the deltafile.
Definition: providespec.cc:249
ProvideFileSpec & setMirrorsAllowed(bool set=true)
Enables or disables the use of mirrors when fetching this file.
Definition: providespec.cc:255
const zypp::CheckSum & headerChecksum() const
The checksum of the header prepending the resource (e.g.
Definition: providespec.cc:240
ProvideFileSpec & setHeaderSize(const zypp::ByteCount &val_r)
Set the headerSize.
Definition: providespec.cc:237
ProvideFileSpec & addCustomHeaderValue(const std::string &key, const HeaderValueMap::Value &val)
Definition: providespec.cc:270
const zypp::ByteCount & downloadSize() const
The size of the resource on the server.
Definition: providespec.cc:210
const zypp::Pathname & destFilenameHint() const
Definition: providespec.cc:192
ProvideFileSpec & setOpenSize(const zypp::ByteCount &val_r)
Set the openSize.
Definition: providespec.cc:225
ProvideMediaSpec & addCustomHeaderValue(const std::string &key, const HeaderValueMap::Value &val)
Definition: providespec.cc:140
zypp::TriBool isSameMedium(const ProvideMediaSpec &other) const
Definition: providespec.cc:146
HeaderValueMap & customHeaders()
Definition: providespec.cc:128
ProvideFileSpec & setChecksum(const zypp::CheckSum &val_r)
Set the checksum.
Definition: providespec.cc:219
ProvideMediaSpec & setLabel(const std::string &label)
Definition: providespec.cc:104
ProvideMediaSpec & setCustomHeaderValue(const std::string &key, const HeaderValueMap::Value &val)
Definition: providespec.cc:134
friend std::ostream & dumpOn(std::ostream &str, const ProvideFileSpec &obj)
Definition: providespec.cc:293
ProvideMediaSpec & setMediaFile(const zypp::Pathname &pName)
Definition: providespec.cc:122
ProvideFileSpec & setDownloadSize(const zypp::ByteCount &val_r)
Set the downloadSize.
Definition: providespec.cc:213
bool optional() const
Whether this is an optional resource.
Definition: providespec.cc:204
bool mirrorsAllowed() const
The requested file is allowed to be fetched via mirrors ( defaults to true )
Definition: providespec.cc:252
ProvideFileSpec & setCheckExistsOnly(const bool set=true)
Definition: providespec.cc:201
friend std::ostream & operator<<(std::ostream &str, const ProvideFileSpec &obj)
Definition: providespec.cc:290
std::ostream & operator<<(std::ostream &str, zypp::RepoManagerFlags::RawMetadataRefreshPolicy obj)
Definition: repomanager.cc:101
ProvideFileSpec & setCustomHeaderValue(const std::string &key, const HeaderValueMap::Value &val)
Definition: providespec.cc:264
const zypp::ByteCount & headerSize() const
The size of the header prepending the resource (e.g.
Definition: providespec.cc:234
HeaderValueMap & customHeaders()
Definition: providespec.cc:258
ProvideMediaSpec(std::string label="", zypp::Pathname verifyData=zypp::Pathname(), unsigned medianr=1)
Definition: providespec.cc:95
bool checkExistsOnly() const
Definition: providespec.cc:198