libzypp  17.32.5
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 
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 
178  const HeaderValueMap &customHeaders() const;
179 
183  ProvideFileSpec &setCustomHeaderValue ( const std::string &key, const HeaderValueMap::Value &val );
184 
188  ProvideFileSpec &addCustomHeaderValue ( const std::string &key, const HeaderValueMap::Value &val );
189 
190  zypp::OnMediaLocation asOnMediaLocation ( const zypp::Pathname &path, unsigned int mediaNr ) const;
191 
192  public:
193  class Impl;
194  private:
196  };
197 
199  std::ostream & operator<<( std::ostream &str, const ProvideFileSpec &obj );
200 
202  std::ostream & dumpOn( std::ostream &str, const ProvideFileSpec &obj );
203 
204 } // namespace zypp
205 
206 #endif // ZYPP_MEDIA_PROVIDESPEC_H_INCLUDED
ProvideFileSpec & setHeaderChecksum(const zypp::CheckSum &val_r)
Set the headerChecksum.
Definition: providespec.cc:242
boost::logic::tribool TriBool
3-state boolean logic (true, false and indeterminate).
Definition: String.h:30
ProvideFileSpec & setOptional(bool val)
Set whether the resource is optional.
Definition: providespec.cc:206
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:221
zypp::RWCOW_pointer< Impl > _pimpl
Implementation class.
Definition: providespec.h:85
Store and operate with byte count.
Definition: ByteCount.h:30
const zypp::CheckSum & openChecksum() const
The checksum of the resource once it has been uncompressed or unpacked.
Definition: providespec.cc:227
static ProvideFileSpecRef create(T... args)
Definition: providespec.h:111
std::ostream & dumpOn(std::ostream &str, const ProvideFileSpec &obj)
Definition: providespec.cc:285
zypp::RWCOW_pointer< Impl > _pimpl
Implementation class.
Definition: providespec.h:193
ProvideFileSpec & operator=(const ProvideFileSpec &)=default
ProvideMediaSpec & setMedianr(unsigned medianr)
Definition: providespec.cc:112
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:245
const std::string & label() const
Definition: providespec.cc:100
ProvideFileSpec & setOpenChecksum(const zypp::CheckSum &val_r)
Set the openChecksum.
Definition: providespec.cc:230
zypp::OnMediaLocation asOnMediaLocation(const zypp::Pathname &path, unsigned int mediaNr) const
Definition: providespec.cc:269
ProvideFileSpec & setDestFilenameHint(const zypp::Pathname &filename)
Definition: providespec.cc:194
std::ostream & operator<<(std::ostream &str, const MediaDataVerifierRef &obj)
unsigned medianr() const
Definition: providespec.cc:109
const zypp::CheckSum & checksum() const
The checksum of the resource on the server.
Definition: providespec.cc:215
zypp::Pathname mediaFile() const
Definition: providespec.cc:118
ProvideFileSpec & setDeltafile(const zypp::Pathname &path)
Set the deltafile.
Definition: providespec.cc:248
zypp::TriBool isSameMedium(const ProvideMediaSpec &other)
Definition: providespec.cc:145
const zypp::CheckSum & headerChecksum() const
The checksum of the header prepending the resource (e.g.
Definition: providespec.cc:239
ProvideFileSpec & setHeaderSize(const zypp::ByteCount &val_r)
Set the headerSize.
Definition: providespec.cc:236
ProvideFileSpec & addCustomHeaderValue(const std::string &key, const HeaderValueMap::Value &val)
Definition: providespec.cc:263
const zypp::ByteCount & downloadSize() const
The size of the resource on the server.
Definition: providespec.cc:209
const zypp::Pathname & destFilenameHint() const
Definition: providespec.cc:191
ProvideFileSpec & setOpenSize(const zypp::ByteCount &val_r)
Set the openSize.
Definition: providespec.cc:224
ProvideMediaSpec & addCustomHeaderValue(const std::string &key, const HeaderValueMap::Value &val)
Definition: providespec.cc:139
HeaderValueMap & customHeaders()
Definition: providespec.cc:127
ProvideFileSpec & setChecksum(const zypp::CheckSum &val_r)
Set the checksum.
Definition: providespec.cc:218
ProvideMediaSpec & setLabel(const std::string &label)
Definition: providespec.cc:103
ProvideMediaSpec & setCustomHeaderValue(const std::string &key, const HeaderValueMap::Value &val)
Definition: providespec.cc:133
friend std::ostream & dumpOn(std::ostream &str, const ProvideFileSpec &obj)
Definition: providespec.cc:285
ProvideMediaSpec & setMediaFile(const zypp::Pathname &pName)
Definition: providespec.cc:121
ProvideFileSpec & setDownloadSize(const zypp::ByteCount &val_r)
Set the downloadSize.
Definition: providespec.cc:212
bool optional() const
Whether this is an optional resource.
Definition: providespec.cc:203
ProvideFileSpec & setCheckExistsOnly(const bool set=true)
Definition: providespec.cc:200
friend std::ostream & operator<<(std::ostream &str, const ProvideFileSpec &obj)
Definition: providespec.cc:282
ProvideFileSpec & setCustomHeaderValue(const std::string &key, const HeaderValueMap::Value &val)
Definition: providespec.cc:257
const zypp::ByteCount & headerSize() const
The size of the header prepending the resource (e.g.
Definition: providespec.cc:233
HeaderValueMap & customHeaders()
Definition: providespec.cc:251
ProvideMediaSpec(std::string label="", zypp::Pathname verifyData=zypp::Pathname(), unsigned medianr=1)
Definition: providespec.cc:94
bool checkExistsOnly() const
Definition: providespec.cc:197