| libzypp 17.36.7
    | 
 
  
| Public Member Functions | |
| multifetchworker (int no, multifetchrequest &request, const Url &url) | |
| multifetchworker (const multifetchworker &)=delete | |
| multifetchworker (multifetchworker &&)=delete | |
| multifetchworker & | operator= (const multifetchworker &)=delete | 
| multifetchworker & | operator= (multifetchworker &&)=delete | 
| ~multifetchworker () override | |
| void | nextjob () | 
| void | runjob () | 
| bool | continueJob () | 
| bool | recheckChecksum (off_t blockIdx) | 
| void | disableCompetition () | 
| void | checkdns () | 
| void | adddnsfd (std::vector< GPollFD > &waitFds) | 
| void | dnsevent (const std::vector< GPollFD > &waitFds) | 
|  Public Member Functions inherited from zyppng::CurlMultiPartDataReceiver | |
| virtual | ~CurlMultiPartDataReceiver ()=default | 
| virtual void | notifyErrorCodeChanged () | 
| Public Attributes | |
| const int | _workerno | 
| MultiFetchWorkerState | _state = WORKER_STARTING | 
| bool | _competing = false | 
| std::vector< MultiByteHandler::Range > | _blocks | 
| std::vector< off_t > | _rangeToStripeBlock | 
| MultiByteHandler::ProtocolMode | _protocolMode = MultiByteHandler::ProtocolMode::Basic | 
| std::unique_ptr< MultiByteHandler > | _multiByteHandler | 
| off_t | _stripe = 0 | 
| size_t | _datasize = 0 | 
| double | _starttime = 0 | 
| size_t | _datareceived = 0 | 
| off_t | _received = 0 | 
| double | _avgspeed = 0 | 
| double | _maxspeed = 0 | 
| double | _sleepuntil = 0 | 
| Private Member Functions | |
| void | run () | 
| void | stealjob () | 
| bool | setupHandle () | 
| MultiByteHandler::Range | rangeFromBlock (off_t blockNo) const | 
| size_t | writefunction (char *ptr, std::optional< off_t > offset, size_t bytes) override | 
| size_t | headerfunction (char *ptr, size_t bytes) override | 
| bool | beginRange (off_t range, std::string &cancelReason) override | 
| bool | finishedRange (off_t range, bool validated, std::string &cancelReason) override | 
|  Private Member Functions inherited from zypp::media::MediaCurl | |
| ZYPP_DECLARE_FLAGS (RequestOptions, RequestOption) | |
| MediaCurl (const Url &url_r, const Pathname &attach_point_hint_r) | |
| ~MediaCurl () override | |
| Url | clearQueryString (const Url &url) const | 
| void | attachTo (bool next=false) override | 
| Call concrete handler to attach the media. | |
| void | releaseFrom (const std::string &ejectDev) override | 
| Call concrete handler to release the media. | |
| void | getFile (const OnMediaLocation &file) const override | 
| Call concrete handler to provide file below attach point. | |
| void | getDir (const Pathname &dirname, bool recurse_r) const override | 
| Call concrete handler to provide directory content (not recursive!) below attach point. | |
| void | getDirInfo (std::list< std::string > &retlist, const Pathname &dirname, bool dots=true) const override | 
| Call concrete handler to provide a content list of directory on media via retlist. | |
| void | getDirInfo (filesystem::DirContent &retlist, const Pathname &dirname, bool dots=true) const override | 
| Basically the same as getDirInfo above. | |
| bool | getDoesFileExist (const Pathname &filename) const override | 
| Repeatedly calls doGetDoesFileExist() until it successfully returns, fails unexpectedly, or user cancels the operation. | |
| virtual bool | doGetDoesFileExist (const Pathname &filename) const | 
| void | disconnectFrom () override | 
| void | getFileCopy (const OnMediaLocation &srcFile, const Pathname &targetFilename) const override | 
| virtual void | doGetFileCopy (const OnMediaLocation &srcFile, const Pathname &targetFilename, callback::SendReport< DownloadProgressReport > &_report, RequestOptions options=OPTION_NONE) const | 
| bool | checkAttachPoint (const Pathname &apoint) const override | 
| Verify if the specified directory as attach point (root) as requires by the particular media handler implementation. | |
| void | checkProtocol (const Url &url) const | 
| check the url is supported by the curl library | |
| virtual void | setupEasy () | 
| initializes the curl easy handle with the data from the url | |
| void | evaluateCurlCode (const zypp::Pathname &filename, CURLcode code, bool timeout) const | 
| Evaluates a curl return code and throws the right MediaException filenameFilename being downloadedcodeCode curl returnestimeoutWhether we reached timeout, which we need to differentiate in case the codes aborted-by-callback or timeout are returned by curl Otherwise we can't differentiate abort from timeout. | |
| void | doGetFileCopyFile (const OnMediaLocation &srcFile, const Pathname &dest, FILE *file, callback::SendReport< DownloadProgressReport > &report, RequestOptions options=OPTION_NONE) const | 
| const char * | curlError () const | 
| void | setCurlError (const char *error) | 
|  Private Member Functions inherited from zypp::media::MediaNetworkCommonHandler | |
| MediaNetworkCommonHandler (const Url &url_r, const Pathname &attach_point_r, const Pathname &urlpath_below_attachpoint_r, const bool does_download_r) | |
| TransferSettings & | settings () | 
| Url | getFileUrl (const Pathname &filename) const | 
| concatenate the attach url and the filename to a complete download url | |
|  Private Member Functions inherited from zypp::media::MediaHandler | |
| bool | dependsOnParent (MediaAccessId parentId, bool exactIdMatch) | 
| Check if the current media handler depends on an another handler specified by media access id. | |
| bool | dependsOnParent () | 
| void | resetParentId () | 
| Called in case, where the media manager takes over the destruction of the parent id (e.g. | |
| Pathname | attachPoint () const | 
| Return the currently used attach point. | |
| void | setAttachPoint (const Pathname &path, bool temp) | 
| Set a new attach point. | |
| void | setAttachPoint (const AttachPointRef &ref) | 
| Set a (shared) attach point. | |
| AttachPoint | attachPointHint () const | 
| Get the actual attach point hint. | |
| void | attachPointHint (const Pathname &path, bool temp) | 
| Set the attach point hint as specified by the user. | |
| Pathname | createAttachPoint () const | 
| Try to create a default / temporary attach point. | |
| Pathname | createAttachPoint (const Pathname &attach_root) const | 
| Try to create a temporary attach point in specified root. | |
| void | removeAttachPoint () | 
| Remove unused attach point. | |
| bool | isUseableAttachPoint (const Pathname &path, bool mtab=true) const | 
| Ask media manager, if the specified path is already used as attach point or if there are another attach points bellow of it. | |
| std::string | mediaSourceName () const | 
| Get the media source name or an empty string. | |
| void | setMediaSource (const MediaSourceRef &ref) | 
| Set new media source reference. | |
| AttachedMedia | findAttachedMedia (const MediaSourceRef &media) const | 
| Ask the media manager if specified media source is already attached. | |
| AttachedMedia | attachedMedia () const | 
| Returns the attached media. | |
| bool | isSharedMedia () const | 
| Returns a hint if the media is shared or not. | |
| bool | checkAttached (bool matchMountFs) const | 
| Check actual mediaSource attachment against the current mount table of the system. | |
| void | forceRelaseAllMedia (bool matchMountFs) | 
| Call to this function will try to release all media matching the currenlty attached media source, that it is able to find in the mount table. | |
| void | forceRelaseAllMedia (const MediaSourceRef &ref, bool matchMountFs) | 
| MediaHandler (Url url_r, const Pathname &attach_point_r, Pathname urlpath_below_attachpoint_r, const bool does_download_r) | |
| If the concrete media handler provides a nonempty attach_point, it must be an existing directory. | |
| virtual | ~MediaHandler () | 
| Contolling MediaAccess takes care, that attached media is released prior to deleting this. | |
| bool | downloads () const | 
| Hint if files are downloaded or not. | |
| std::string | protocol () const | 
| Protocol hint for MediaAccess. | |
| Url | url () const | 
| Url used. | |
| void | attach (bool next) | 
| Use concrete handler to attach the media. | |
| virtual bool | isAttached () const | 
| True if media is attached. | |
| Pathname | localRoot () const | 
| Return the local directory that corresponds to medias url, no matter if media isAttached or not. | |
| Pathname | localPath (const Pathname &pathname) const | 
| Files provided will be available at 'localPath(filename)'. | |
| void | disconnect () | 
| Use concrete handler to isconnect media. | |
| void | release (const std::string &ejectDev="") | 
| Use concrete handler to release the media. | |
| void | provideFile (const OnMediaLocation &file) const | 
| Use concrete handler to provide file denoted by path below 'localRoot'. | |
| void | provideFileCopy (const OnMediaLocation &srcFile, const Pathname &targetFilename) const | 
| Call concrete handler to provide a copy of a file under a different place in the file system (usually not under attach point) as a copy. | |
| void | provideDir (const Pathname &dirname) const | 
| Use concrete handler to provide directory denoted by path below 'localRoot' (not recursive!). | |
| void | provideDirTree (const Pathname &dirname) const | 
| Use concrete handler to provide directory tree denoted by path below 'localRoot' (recursive! | |
| void | releaseFile (const Pathname &filename) const | 
| Remove filename below localRoot IFF handler downloads files to the local filesystem. | |
| void | releaseDir (const Pathname &dirname) const | 
| Remove directory tree below localRoot IFF handler downloads files to the local filesystem. | |
| void | releasePath (const Pathname &pathname) const | 
| Remove pathname below localRoot IFF handler downloads files to the local filesystem. | |
| void | dirInfo (std::list< std::string > &retlist, const Pathname &dirname, bool dots=true) const | 
| Return content of directory on media via retlist. | |
| void | dirInfo (filesystem::DirContent &retlist, const Pathname &dirname, bool dots=true) const | 
| Basically the same as dirInfo above. | |
| bool | doesFileExist (const Pathname &filename) const | 
| check if a file exists | |
| virtual bool | hasMoreDevices () | 
| Check if the media has one more device available for attach(true). | |
| virtual void | getDetectedDevices (std::vector< std::string > &devices, unsigned int &index) const | 
| Fill in a vector of detected ejectable devices and the index of the currently attached device within the vector. | |
| virtual void | precacheFiles (const std::vector< OnMediaLocation > &files) | 
| Tries to fetch the given files and precaches them. | |
| virtual void | forceEject (const std::string &device) | 
| Call concrete handler to physically eject the media (i.e. | |
| void | getDirectoryYast (std::list< std::string > &retlist, const Pathname &dirname, bool dots=true) const | 
| Retrieve and if available scan dirname/directory.yast. | |
| void | getDirectoryYast (filesystem::DirContent &retlist, const Pathname &dirname, bool dots=true) const | 
| Retrieve and if available scan dirname/directory.yast. | |
| Private Attributes | |
| multifetchrequest * | _request = nullptr | 
| int | _pass = 0 | 
| std::string | _urlbuf | 
| pid_t | _pid = 0 | 
| int | _dnspipe = -1 | 
|  Private Attributes inherited from zypp::media::MediaCurl | |
| CURL * | _curl | 
| curl_slist * | _customHeaders | 
|  Private Attributes inherited from zypp::media::MediaNetworkCommonHandler | |
| TransferSettings | _settings | 
| Url | _redirTarget | 
|  Private Attributes inherited from zypp::media::MediaHandler | |
| const Url | _url | 
| Url to handle. | |
| MediaAccessId | _parentId | 
| Access Id of media handler we depend on. | |
| Friends | |
| class | multifetchrequest | 
| Additional Inherited Members | |
|  Private Types inherited from zypp::media::MediaCurl | |
| enum | RequestOption { OPTION_NONE = 0x0 , OPTION_RANGE = 0x1 , OPTION_HEAD = 0x02 , OPTION_NO_IFMODSINCE = 0x04 , OPTION_NO_REPORT_START = 0x08 } | 
|  Private Types inherited from zypp::media::MediaHandler | |
| using | Ptr = shared_ptr<MediaHandler> | 
| using | constPtr = shared_ptr<const MediaHandler> | 
|  Static Private Member Functions inherited from zypp::media::MediaCurl | |
| static void | setCookieFile (const Pathname &) | 
| static int | aliveCallback (void *clientp, curl_off_t dltotal, curl_off_t dlnow, curl_off_t ultotal, curl_off_t ulnow) | 
| Callback sending just an alive trigger to the UI, without stats (e.g. | |
| static int | progressCallback (void *clientp, curl_off_t dltotal, curl_off_t dlnow, curl_off_t ultotal, curl_off_t ulnow) | 
| Callback reporting download progress. | |
| static CURL * | progressCallback_getcurl (void *clientp) | 
| static void | resetExpectedFileSize (void *clientp, const ByteCount &expectedFileSize) | 
| MediaMultiCurl needs to reset the expected filesize in case a metalink file is downloaded otherwise this function should not be called. | |
|  Static Private Member Functions inherited from zypp::media::MediaNetworkCommonHandler | |
| static const char * | anonymousIdHeader () | 
| static const char * | distributionFlavorHeader () | 
| static const char * | agentString () | 
| static zypp::Url | findGeoIPRedirect (const zypp::Url &url) | 
| Rewrites the baseURL to the geoIP target if one is found in the metadata cache, otherwise simply returns the url again. | |
|  Static Private Member Functions inherited from zypp::media::MediaHandler | |
| static bool | setAttachPrefix (const Pathname &attach_prefix) | 
| static std::string | getRealPath (const std::string &path) | 
| static Pathname | getRealPath (const Pathname &path) | 
| static bool | checkAttachPoint (const Pathname &apoint, bool empty_dir, bool writeable) | 
| Verify if the specified directory as attach point (root) using requested checks. | |
Definition at line 142 of file MediaMultiCurl.cc.
| zypp::media::multifetchworker::multifetchworker | ( | int | no, | 
| multifetchrequest & | request, | ||
| const Url & | url ) | 
Definition at line 442 of file MediaMultiCurl.cc.
| 
 | delete | 
| 
 | delete | 
| 
 | override | 
Definition at line 505 of file MediaMultiCurl.cc.
| 
 | delete | 
| 
 | delete | 
| void zypp::media::multifetchworker::nextjob | ( | ) | 
Fetches the next job from the parent request, then calls runjob to execute it
Definition at line 869 of file MediaMultiCurl.cc.
| void zypp::media::multifetchworker::runjob | ( | ) | 
Fetches all jobs from the currently claimed stripe or calls nextjob() if the current stripe has all blocks marked as FINALIZED
Definition at line 884 of file MediaMultiCurl.cc.
| bool zypp::media::multifetchworker::continueJob | ( | ) | 
Continues a running job, only called by the dispatcher if the multibyte handler indicates it has more work to trigger fetching the next range batch
Definition at line 920 of file MediaMultiCurl.cc.
| bool zypp::media::multifetchworker::recheckChecksum | ( | off_t | blockIdx | ) | 
Rechecks the checksum of the given block at blockIdx. The index is relative to the workers blocklist
Definition at line 679 of file MediaMultiCurl.cc.
| void zypp::media::multifetchworker::disableCompetition | ( | ) | 
Stop all competing workers and set them to WORKER_DISCARD
Definition at line 853 of file MediaMultiCurl.cc.
| void zypp::media::multifetchworker::checkdns | ( | ) | 
Starts the dns check
Definition at line 551 of file MediaMultiCurl.cc.
| void zypp::media::multifetchworker::adddnsfd | ( | std::vector< GPollFD > & | waitFds | ) | 
Definition at line 629 of file MediaMultiCurl.cc.
| void zypp::media::multifetchworker::dnsevent | ( | const std::vector< GPollFD > & | waitFds | ) | 
Definition at line 643 of file MediaMultiCurl.cc.
| 
 | private | 
Definition at line 945 of file MediaMultiCurl.cc.
| 
 | private | 
Definition at line 749 of file MediaMultiCurl.cc.
| 
 | private | 
Definition at line 467 of file MediaMultiCurl.cc.
| 
 | private | 
Calculates the range information for the given blkNo ( actual block index in the request blocklist, NOT the stripe or worker index )
Definition at line 723 of file MediaMultiCurl.cc.
| 
 | overrideprivatevirtual | 
Data callback func, this is called whenever there is actual data to be written to the file. If offset is set, usually when starting to write a new range, it means to continue to write on the current file pointer position, otherwise seek to the given one.
Implements zyppng::CurlMultiPartDataReceiver.
Definition at line 333 of file MediaMultiCurl.cc.
| 
 | overrideprivatevirtual | 
Called for all received header data, after it was processed by the CurlMultiPartHandler.
Implements zyppng::CurlMultiPartDataReceiver.
Definition at line 420 of file MediaMultiCurl.cc.
| 
 | overrideprivatevirtual | 
Called everytime a new range is about to be written, returning false from the function will immediately cancel the request and not write anything to the file.
| range | The index of the range that is to be started | 
| cancelReason | Set to indicate why the request was cancelled. | 
Reimplemented from zyppng::CurlMultiPartDataReceiver.
Definition at line 372 of file MediaMultiCurl.cc.
| 
 | overrideprivatevirtual | 
Called everytime a range was finished, returning false from the function will cancel the request.
| range | The index of the range that was finished | 
| validated | Indicates of the range data could be validated against its given checksum | 
| cancelReason | Set to indicate why the request was cancelled. | 
Reimplemented from zyppng::CurlMultiPartDataReceiver.
Definition at line 388 of file MediaMultiCurl.cc.
| 
 | friend | 
Definition at line 143 of file MediaMultiCurl.cc.
| const int zypp::media::multifetchworker::_workerno | 
Definition at line 190 of file MediaMultiCurl.cc.
| MultiFetchWorkerState zypp::media::multifetchworker::_state = WORKER_STARTING | 
Definition at line 192 of file MediaMultiCurl.cc.
| bool zypp::media::multifetchworker::_competing = false | 
Definition at line 193 of file MediaMultiCurl.cc.
| std::vector<MultiByteHandler::Range> zypp::media::multifetchworker::_blocks | 
Definition at line 195 of file MediaMultiCurl.cc.
| std::vector<off_t> zypp::media::multifetchworker::_rangeToStripeBlock | 
Definition at line 196 of file MediaMultiCurl.cc.
| MultiByteHandler::ProtocolMode zypp::media::multifetchworker::_protocolMode = MultiByteHandler::ProtocolMode::Basic | 
Definition at line 198 of file MediaMultiCurl.cc.
| std::unique_ptr<MultiByteHandler> zypp::media::multifetchworker::_multiByteHandler | 
Definition at line 199 of file MediaMultiCurl.cc.
| off_t zypp::media::multifetchworker::_stripe = 0 | 
Definition at line 201 of file MediaMultiCurl.cc.
| size_t zypp::media::multifetchworker::_datasize = 0 | 
Definition at line 202 of file MediaMultiCurl.cc.
| double zypp::media::multifetchworker::_starttime = 0 | 
Definition at line 204 of file MediaMultiCurl.cc.
| size_t zypp::media::multifetchworker::_datareceived = 0 | 
Definition at line 205 of file MediaMultiCurl.cc.
| off_t zypp::media::multifetchworker::_received = 0 | 
Definition at line 206 of file MediaMultiCurl.cc.
| double zypp::media::multifetchworker::_avgspeed = 0 | 
Definition at line 208 of file MediaMultiCurl.cc.
| double zypp::media::multifetchworker::_maxspeed = 0 | 
Definition at line 209 of file MediaMultiCurl.cc.
| double zypp::media::multifetchworker::_sleepuntil = 0 | 
Definition at line 211 of file MediaMultiCurl.cc.
| 
 | private | 
Definition at line 224 of file MediaMultiCurl.cc.
| 
 | private | 
Definition at line 225 of file MediaMultiCurl.cc.
| 
 | private | 
Definition at line 226 of file MediaMultiCurl.cc.
| 
 | private | 
Definition at line 228 of file MediaMultiCurl.cc.
| 
 | private | 
Definition at line 229 of file MediaMultiCurl.cc.