libzypp 17.37.10

zypp::media::MediaHandler Class Referenceabstract

Abstract base class for 'physical' MediaHandler like MediaCD, etc. More...

`#include <zypp/media/MediaHandler.h>`

Inheritance diagram for zypp::media::MediaHandler:

## Public Types
using | Ptr = shared_ptr<MediaHandler>
using | constPtr = shared_ptr<const MediaHandler>

## Public Member Functions
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.
virtual bool | checkAttachPoint (const Pathname &apoint) const
| Verify if the specified directory as attach point (root) as requires by the particular media handler implementation.
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 (MirroredOrigin origin_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
| Primary Url used.
OriginEndpoint | originEndpoint () const
| Primary OriginEndpoint 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.

## Static Public Member Functions
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.

## Protected Member Functions
virtual void | attachTo (bool next=false)=0
| Call concrete handler to attach the media.
virtual void | disconnectFrom ()
| Call concrete handler to disconnect media.
virtual void | releaseFrom (const std::string &ejectDev="")=0
| Call concrete handler to release the media.
virtual void | forceEject (const std::string &device)
| Call concrete handler to physically eject the media (i.e.
virtual void | getFile (const OnMediaLocation &file) const
| Call concrete handler to provide file below attach point.
virtual void | getFileCopy (const OnMediaLocation &file, const Pathname &targetFilename) const
| Call concrete handler to provide a file under a different place in the file system (usually not under attach point) as a copy.
virtual void | getDir (const Pathname &dirname, bool recurse_r) const =0
| Call concrete handler to provide directory content (not recursive!) below attach point.
virtual void | getDirInfo (std::list< std::string > &retlist, const Pathname &dirname, bool dots=true) const =0
| Call concrete handler to provide a content list of directory on media via retlist.
virtual void | getDirInfo (filesystem::DirContent &retlist, const Pathname &dirname, bool dots=true) const =0
| Basically the same as getDirInfo above.
virtual bool | getDoesFileExist (const Pathname &filename) const =0
| check if a file exists
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.

## Protected Attributes
MirroredOrigin | _origin
| Contains the authority URL and mirrors.
MediaAccessId | _parentId
| Access Id of media handler we depend on.

## Private Attributes
MediaSourceRef | _mediaSource
| The attached media source description reference.
AttachPointRef | _attachPoint
| This is where the media will be actually attached ("mounted").
AttachPoint | _attachPointHint
| The user provided attach preferred point.
Pathname | _relativeRoot
| The relative root directory of the data on the media.
bool | _does_download
| True if concrete handler downloads files to the local filesystem.
time_t | _attach_mtime
| timestamp of the the last attach verification

## Static Private Attributes
static Pathname | _attachPrefix
| User defined default attach point prefix.

## Friends
std::ostream & | operator<< (std::ostream &str, const MediaHandler &obj)

## Detailed Description

Abstract base class for 'physical' MediaHandler like MediaCD, etc.

Handles the requests forwarded by MediaAccess. The public interface contains nonvirtual methods, which should do common sanitychecks and logging. For the real action they call virtual methods overloaded by the concrete handler.

Definition at line 50 of file MediaHandler.h.

## Member Typedef Documentation

## ◆ Ptr

using zypp::media::MediaHandler::Ptr = shared_ptr<MediaHandler>

Definition at line 54 of file MediaHandler.h.

## ◆ constPtr

using zypp::media::MediaHandler::constPtr = shared_ptr<const MediaHandler>

Definition at line 55 of file MediaHandler.h.

## Constructor & Destructor Documentation

## ◆ MediaHandler()

zypp::media::MediaHandler::MediaHandler | ( | MirroredOrigin | origin_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.

On an empty attach_point, MediaHandler will create a temporay directory, which will be erased from destructor.

On any error, the attach_point is set to an empty Pathname, which should lead to E_bad_attachpoint.

Definition at line 55 of file MediaHandler.cc.

## ◆ ~MediaHandler()

zypp::media::MediaHandler::~MediaHandler | ( |  | ) |
| virtual

Contolling MediaAccess takes care, that attached media is released prior to deleting this.

Definition at line 106 of file MediaHandler.cc.

## Member Function Documentation

## ◆ setAttachPrefix()

bool zypp::media::MediaHandler::setAttachPrefix | ( | const Pathname & | attach_prefix | ) |
| static

Definition at line 283 of file MediaHandler.cc.

## ◆ getRealPath() [1/2]

std::string zypp::media::MediaHandler::getRealPath | ( | const std::string & | path | ) |
| static

Definition at line 122 of file MediaHandler.cc.

## ◆ getRealPath() [2/2]

zypp::Pathname zypp::media::MediaHandler::getRealPath | ( | const Pathname & | path | ) |
| static

Definition at line 128 of file MediaHandler.cc.

## ◆ dependsOnParent() [1/2]

bool zypp::media::MediaHandler::dependsOnParent | ( | MediaAccessId | parentId,
|  | bool | exactIdMatch )

Check if the current media handler depends on an another handler specified by media access id.

Parameters

  parentId | The id of the parent handler to check against.

Returns
  true if it depends, false if not.

Definition at line 928 of file MediaHandler.cc.

## ◆ dependsOnParent() [2/2]

bool zypp::media::MediaHandler::dependsOnParent | ( |  | ) |

Definition at line 922 of file MediaHandler.cc.

## ◆ resetParentId()

void zypp::media::MediaHandler::resetParentId | ( |  | ) |

Called in case, where the media manager takes over the destruction of the parent id (e.g.

while destruction of the media manager).

Definition at line 116 of file MediaHandler.cc.

## ◆ attachPoint()

Pathname zypp::media::MediaHandler::attachPoint | ( |  | ) | const

Return the currently used attach point.

Definition at line 185 of file MediaHandler.cc.

## ◆ setAttachPoint() [1/2]

void zypp::media::MediaHandler::setAttachPoint | ( | const Pathname & | path,
|  | bool | temp )

Set a new attach point.

Parameters

  path | The attach point directory path.
  temp | If to remove the attach point while cleanup.

Definition at line 200 of file MediaHandler.cc.

## ◆ setAttachPoint() [2/2]

void zypp::media::MediaHandler::setAttachPoint | ( | const AttachPointRef & | ref | ) |

Set a (shared) attach point.

Parameters

  ref | New attach point reference.

Definition at line 223 of file MediaHandler.cc.

## ◆ attachPointHint() [1/2]

AttachPoint zypp::media::MediaHandler::attachPointHint | ( |  | ) | const

Get the actual attach point hint.

Definition at line 255 of file MediaHandler.cc.

## ◆ attachPointHint() [2/2]

void zypp::media::MediaHandler::attachPointHint | ( | const Pathname & | path,
|  | bool | temp )

Set the attach point hint as specified by the user.

Parameters

  path | The attach point directory path.
  temp | If to remove the attach point while cleanup.

Definition at line 240 of file MediaHandler.cc.

## ◆ createAttachPoint() [1/2]

Pathname zypp::media::MediaHandler::createAttachPoint | ( |  | ) | const

Try to create a default / temporary attach point.

It tries to create it in attachPrefix if avaliable, then in built-in directories.

Exceptions

  MediaBadAttachPointException | if no attach point can be created

Returns
  The name of the new attach point

Definition at line 312 of file MediaHandler.cc.

## ◆ createAttachPoint() [2/2]

Pathname zypp::media::MediaHandler::createAttachPoint | ( | const Pathname & | attach_root | ) | const

Try to create a temporary attach point in specified root.

Parameters

  attach_root | The attach root dir where to create the attach point in.

Returns
  The name of the new attach point or empty path name.

Definition at line 348 of file MediaHandler.cc.

## ◆ removeAttachPoint()

void zypp::media::MediaHandler::removeAttachPoint | ( |  | ) |

Remove unused attach point.

If the attach point is temporary, the attach point directory and all it content will be removed.

Definition at line 143 of file MediaHandler.cc.

## ◆ checkAttachPoint() [1/2]

bool zypp::media::MediaHandler::checkAttachPoint | ( | const Pathname & | apoint | ) | const
| virtual

Verify if the specified directory as attach point (root) as requires by the particular media handler implementation.

Parameters

  apoint | The directory to check.

Returns
  True, if the directory checks succeeded.

Reimplemented in zypp::media::MediaNetworkCommonHandler.

Definition at line 848 of file MediaHandler.cc.

## ◆ checkAttachPoint() [2/2]

bool zypp::media::MediaHandler::checkAttachPoint | ( | const Pathname & | apoint,
|  | bool | empty_dir,
|  | bool | writeable )
| static

Verify if the specified directory as attach point (root) using requested checks.

Parameters

  apoint | The directory to check.
  empty_dir | Check if the directory is empty.
  writeable | Check if the directory is writeable.

Returns
  True, if the directory checks succeeded.

Definition at line 855 of file MediaHandler.cc.

## ◆ isUseableAttachPoint()

bool zypp::media::MediaHandler::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.

Parameters

  path | The attach point path to check.
  mtab | Whether to check against the mtab, too.

Returns
  True, if the path can be used as attach point.

Definition at line 416 of file MediaHandler.cc.

## ◆ mediaSourceName()

std::string zypp::media::MediaHandler::mediaSourceName | ( |  | ) | const
| inline

Get the media source name or an empty string.

Returns
  media source name or empty string.

Definition at line 225 of file MediaHandler.h.

## ◆ setMediaSource()

void zypp::media::MediaHandler::setMediaSource | ( | const MediaSourceRef & | ref | ) |

Set new media source reference.

Parameters

  ref | The new reference.

Definition at line 432 of file MediaHandler.cc.

## ◆ findAttachedMedia()

AttachedMedia zypp::media::MediaHandler::findAttachedMedia | ( | const MediaSourceRef & | media | ) | const

Ask the media manager if specified media source is already attached.

Definition at line 269 of file MediaHandler.cc.

## ◆ attachedMedia()

AttachedMedia zypp::media::MediaHandler::attachedMedia | ( |  | ) | const

Returns the attached media.

Used by MediaManager to find other handlers using the same source.

Note
  This function increments reference counters on the mediaSource and attachPoint references it contains, for the life time of the returned object. That is, it enables a (temporary) sharing of them.

Returns
  The AttachedMedia struct containing (shared) references to media source and attach point.

Definition at line 448 of file MediaHandler.cc.

## ◆ isSharedMedia()

bool zypp::media::MediaHandler::isSharedMedia | ( |  | ) | const

Returns a hint if the media is shared or not.

Returns
  true, if media is shared.

Definition at line 465 of file MediaHandler.cc.

## ◆ checkAttached()

bool zypp::media::MediaHandler::checkAttached | ( | bool | matchMountFs | ) | const

Check actual mediaSource attachment against the current mount table of the system.

Used to implement isAttached().

Parameters

  matchMountFs | If to use the filesystem type from the mount table (nfs, smb and cifs) or from mediaSource while compare of a mount entry with mediaSource.

Returns
  true, if the media appears in the mount table.

Definition at line 479 of file MediaHandler.cc.

## ◆ forceRelaseAllMedia() [1/2]

void zypp::media::MediaHandler::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.

This means also foreign (user) mounts!

Parameters

  matchMountFs | If to use the filesystem type from the mount table (nfs, smb and cifs) or from mediaSource while compare of a mount entry with mediaSource.

Definition at line 778 of file MediaHandler.cc.

## ◆ forceRelaseAllMedia() [2/2]

void zypp::media::MediaHandler::forceRelaseAllMedia | ( | const MediaSourceRef & | ref,
|  | bool | matchMountFs )

Definition at line 783 of file MediaHandler.cc.

## ◆ attachTo()

virtual void zypp::media::MediaHandler::attachTo | ( | bool | next = false | ) |
| protected pure virtual

Call concrete handler to attach the media.

Asserted that not already attached, and attachPoint is a directory.

Parameters

  next | try next available device in turn until end of device list is reached (for media which are accessible through multiple devices like cdroms).

Exceptions

  MediaException |

Implemented in zypp::media::MediaCD, zypp::media::MediaCIFS, zypp::media::MediaDIR, zypp::media::MediaDISK, zypp::media::MediaISO, zypp::media::MediaNetworkCommonHandler, zypp::media::MediaNFS, and zypp::media::MediaPlugin.

## ◆ disconnectFrom()

virtual void zypp::media::MediaHandler::disconnectFrom | ( |  | ) |
| inline protected virtual

Call concrete handler to disconnect media.

Asserted that media is attached.

This is useful for media which e.g. holds open a connection to a server like FTP. After calling disconnect() the media object still is valid and files are present.

After calling disconnect(), it's not possible to call provideFile() or provideDir() anymore.

Exceptions

  MediaException |

Reimplemented in zypp::media::MediaCurl2, and zypp::media::MediaCurl.

Definition at line 321 of file MediaHandler.h.

## ◆ releaseFrom()

virtual void zypp::media::MediaHandler::releaseFrom | ( | const std::string & | ejectDev = "" | ) |
| protected pure virtual

Call concrete handler to release the media.

If eject is true, and the media is used in one handler instance only, physically eject the media (i.e. CD-ROM).

Asserted that media is attached.

Parameters

  ejectDev | Device to eject. None if empty.

Exceptions

  MediaException |

Implemented in zypp::media::MediaCD, zypp::media::MediaCIFS, zypp::media::MediaCurl2, zypp::media::MediaCurl, zypp::media::MediaDIR, zypp::media::MediaDISK, zypp::media::MediaISO, zypp::media::MediaNFS, and zypp::media::MediaPlugin.

## ◆ forceEject()

virtual void zypp::media::MediaHandler::forceEject | ( | const std::string & | device | ) |
| inline protected virtual

Call concrete handler to physically eject the media (i.e.

CD-ROM) in case the media is not attached..

Asserted that media is not attached.

Reimplemented in zypp::media::MediaCD.

Definition at line 343 of file MediaHandler.h.

## ◆ getFile()

void zypp::media::MediaHandler::getFile | ( | const OnMediaLocation & | file | ) | const
| protected virtual

Call concrete handler to provide file below attach point.

Default implementation provided, that returns whether a file is located at 'localRoot + filename'.

Asserted that media is attached.

Exceptions

  MediaException |

Reimplemented in zypp::media::MediaCD, zypp::media::MediaCIFS, zypp::media::MediaDIR, zypp::media::MediaDISK, zypp::media::MediaISO, zypp::media::MediaNetworkCommonHandler, zypp::media::MediaNFS, and zypp::media::MediaPlugin.

Definition at line 1188 of file MediaHandler.cc.

## ◆ getFileCopy()

void zypp::media::MediaHandler::getFileCopy | ( | const OnMediaLocation & | file,
|  | const Pathname & | targetFilename ) const
| protected virtual

Call concrete handler to provide a file under a different place in the file system (usually not under attach point) as a copy.

Media must be attached before by callee.

Default implementation provided that calls getFile(srcFilename) and copies the result around.

Exceptions

  MediaException |

Reimplemented in zypp::media::MediaCurl2, and zypp::media::MediaCurl.

Definition at line 1201 of file MediaHandler.cc.

## ◆ getDir()

void zypp::media::MediaHandler::getDir | ( | const Pathname & | dirname,
|  | bool | recurse_r ) const
| protected pure virtual

Call concrete handler to provide directory content (not recursive!) below attach point.

Return E_not_supported_by_media if media does not support retrieval of directory content.

Default implementation provided, that returns whether a directory is located at 'localRoot + dirname'.

Asserted that media is attached.

Exceptions

  MediaException |

Implemented in zypp::media::MediaCD, zypp::media::MediaCIFS, zypp::media::MediaDIR, zypp::media::MediaDISK, zypp::media::MediaISO, zypp::media::MediaNetworkCommonHandler, zypp::media::MediaNFS, and zypp::media::MediaPlugin.

Definition at line 1219 of file MediaHandler.cc.

## ◆ getDirInfo() [1/2]

void zypp::media::MediaHandler::getDirInfo | ( | std::list< std::string > & | retlist,
|  | const Pathname & | dirname,
|  | bool | dots = true ) const
| protected pure virtual

Call concrete handler to provide a content list of directory on media via retlist.

If dots is false entries starting with '.' are not reported.

Return E_not_supported_by_media if media does not support retrieval of directory content.

Default implementation provided, that returns the content of a directory at 'localRoot + dirnname' retrieved via 'readdir'.

Asserted that media is attached and retlist is empty.

Exceptions

  MediaException |

Implemented in zypp::media::MediaCD, zypp::media::MediaCIFS, zypp::media::MediaDIR, zypp::media::MediaDISK, zypp::media::MediaISO, zypp::media::MediaNetworkCommonHandler, zypp::media::MediaNFS, and zypp::media::MediaPlugin.

Definition at line 1241 of file MediaHandler.cc.

## ◆ getDirInfo() [2/2]

void zypp::media::MediaHandler::getDirInfo | ( | filesystem::DirContent & | retlist,
|  | const Pathname & | dirname,
|  | bool | dots = true ) const
| protected pure virtual

Basically the same as getDirInfo above.

The content list is returned as filesystem::DirContent, which includes name and filetype of each directory entry. Retrieving the filetype usg. requires an additional ::stat call for each entry, thus it's more expensive than a simple readdir.

Asserted that media is attached and retlist is empty.

Exceptions

  MediaException |

Implemented in zypp::media::MediaCD, zypp::media::MediaCIFS, zypp::media::MediaDIR, zypp::media::MediaDISK, zypp::media::MediaISO, zypp::media::MediaNetworkCommonHandler, zypp::media::MediaNFS, and zypp::media::MediaPlugin.

Definition at line 1285 of file MediaHandler.cc.

## ◆ getDoesFileExist()

bool zypp::media::MediaHandler::getDoesFileExist | ( | const Pathname & | filename | ) | const
| protected pure virtual

check if a file exists

Asserted that url is a file and not a dir.

Exceptions

  MediaException |

Implemented in zypp::media::MediaCD, zypp::media::MediaCIFS, zypp::media::MediaCurl2, zypp::media::MediaCurl, zypp::media::MediaDIR, zypp::media::MediaDISK, zypp::media::MediaISO, zypp::media::MediaNFS, and zypp::media::MediaPlugin.

Definition at line 1326 of file MediaHandler.cc.

## ◆ getDirectoryYast() [1/2]

void zypp::media::MediaHandler::getDirectoryYast | ( | std::list< std::string > & | retlist,
|  | const Pathname & | dirname,
|  | bool | dots = true ) const
| protected

Retrieve and if available scan dirname/directory.yast.

Asserted that media is attached.

Exceptions

  MediaException |

Definition at line 1114 of file MediaHandler.cc.

## ◆ getDirectoryYast() [2/2]

void zypp::media::MediaHandler::getDirectoryYast | ( | filesystem::DirContent & | retlist,
|  | const Pathname & | dirname,
|  | bool | dots = true ) const
| protected

Retrieve and if available scan dirname/directory.yast.

Asserted that media is attached.

Exceptions

  MediaException |

Definition at line 1134 of file MediaHandler.cc.

## ◆ downloads()

bool zypp::media::MediaHandler::downloads | ( |  | ) | const
| inline

Hint if files are downloaded or not.

Definition at line 492 of file MediaHandler.h.

## ◆ protocol()

std::string zypp::media::MediaHandler::protocol | ( |  | ) | const
| inline

Protocol hint for MediaAccess.

Definition at line 497 of file MediaHandler.h.

## ◆ url()

Url zypp::media::MediaHandler::url | ( |  | ) | const
| inline

Primary Url used.

Definition at line 502 of file MediaHandler.h.

## ◆ originEndpoint()

OriginEndpoint zypp::media::MediaHandler::originEndpoint | ( |  | ) | const
| inline

Primary OriginEndpoint used.

Definition at line 507 of file MediaHandler.h.

## ◆ attach()

void zypp::media::MediaHandler::attach | ( | bool | next | ) |

Use concrete handler to attach the media.

Parameters

  next | try next available device in turn until end of device list is reached (for media which are accessible through multiple devices like cdroms).

Exceptions

  MediaException |

Definition at line 633 of file MediaHandler.cc.

## ◆ isAttached()

virtual bool zypp::media::MediaHandler::isAttached | ( |  | ) | const
| inline virtual

True if media is attached.

Reimplemented in zypp::media::MediaCD, zypp::media::MediaCIFS, zypp::media::MediaDISK, zypp::media::MediaISO, and zypp::media::MediaNFS.

Definition at line 524 of file MediaHandler.h.

## ◆ localRoot()

Pathname zypp::media::MediaHandler::localRoot | ( |  | ) | const

Return the local directory that corresponds to medias url, no matter if media isAttached or not.

Files requested will be available at 'localRoot() + filename' or better 'localPath( filename )'.

Returns empty pathname if E_bad_attachpoint

Definition at line 206 of file MediaHandler.cc.

## ◆ localPath()

Pathname zypp::media::MediaHandler::localPath | ( | const Pathname & | pathname | ) | const

Files provided will be available at 'localPath(filename)'.

Returns empty pathname if E_bad_attachpoint

Definition at line 664 of file MediaHandler.cc.

## ◆ disconnect()

void zypp::media::MediaHandler::disconnect | ( |  | ) |

Use concrete handler to isconnect media.

This is useful for media which e.g. holds open a connection to a server like FTP. After calling disconnect() the media object still is valid and files are present.

After calling disconnect(), it's not possible to call provideFile() or provideDir() anymore.

Exceptions

  MediaException |

Definition at line 687 of file MediaHandler.cc.

## ◆ release()

void zypp::media::MediaHandler::release | ( | const std::string & | ejectDev = "" | ) |

Use concrete handler to release the media.

Parameters

  eject | Device to physically eject. None if empty.

Exceptions

  MediaException |

Definition at line 704 of file MediaHandler.cc.

## ◆ provideFile()

void zypp::media::MediaHandler::provideFile | ( | const OnMediaLocation & | file | ) | const

Use concrete handler to provide file denoted by path below 'localRoot'.

Filename is interpreted relative to the attached url and a path prefix is preserved.

Exceptions

  MediaException |

Definition at line 969 of file MediaHandler.cc.

## ◆ provideFileCopy()

void zypp::media::MediaHandler::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.

Media must be attached before by callee.

Parameters

  srcFilename | Filename of source file on the media
  targetFilename | Filename for the target in the file system

Exceptions

  MediaException |

Definition at line 957 of file MediaHandler.cc.

## ◆ provideDir()

void zypp::media::MediaHandler::provideDir | ( | const Pathname & | dirname | ) | const

Use concrete handler to provide directory denoted by path below 'localRoot' (not recursive!).

dirname is interpreted relative to the attached url and a path prefix is preserved.

Exceptions

  MediaException |

Definition at line 989 of file MediaHandler.cc.

## ◆ provideDirTree()

void zypp::media::MediaHandler::provideDirTree | ( | const Pathname & | dirname | ) | const

Use concrete handler to provide directory tree denoted by path below 'localRoot' (recursive!

!). dirname is interpreted relative to the attached url and a path prefix is preserved.

Exceptions

  MediaException |

Definition at line 1008 of file MediaHandler.cc.

## ◆ releaseFile()

void zypp::media::MediaHandler::releaseFile | ( | const Pathname & | filename | ) | const
| inline

Remove filename below localRoot IFF handler downloads files to the local filesystem.

Never remove anything from media.

Exceptions

  MediaException |

Definition at line 618 of file MediaHandler.h.

## ◆ releaseDir()

void zypp::media::MediaHandler::releaseDir | ( | const Pathname & | dirname | ) | const
| inline

Remove directory tree below localRoot IFF handler downloads files to the local filesystem.

Never remove anything from media.

Exceptions

  MediaException |

Definition at line 627 of file MediaHandler.h.

## ◆ releasePath()

void zypp::media::MediaHandler::releasePath | ( | const Pathname & | pathname | ) | const

Remove pathname below localRoot IFF handler downloads files to the local filesystem.

Never remove anything from media.

If pathname denotes a directory it is recursively removed. If pathname is empty or '/' everything below the localRoot is recursively removed. If pathname denotes a file it is unlinked.

Exceptions

  MediaException |

Definition at line 1027 of file MediaHandler.cc.

## ◆ dirInfo() [1/2]

void zypp::media::MediaHandler::dirInfo | ( | std::list< std::string > & | retlist,
|  | const Pathname & | dirname,
|  | bool | dots = true ) const

Return content of directory on media via retlist.

If dots is false entries starting with '.' are not reported.

The request is forwarded to the concrete handler, which may atempt to retieve the content e.g. via 'readdir'

Caution: This is not supported by all media types. Be prepared to handle E_not_supported_by_media.

Exceptions

  MediaException |

Definition at line 1053 of file MediaHandler.cc.

## ◆ dirInfo() [2/2]

void zypp::media::MediaHandler::dirInfo | ( | filesystem::DirContent & | retlist,
|  | const Pathname & | dirname,
|  | bool | dots = true ) const

Basically the same as dirInfo above.

The content is returned as filesystem::DirContent, which includes name and filetype of each directory entry. Retrieving the filetype usg. requires an additional ::stat call for each entry, thus it's more expensive than a simple readdir.

Caution: This is not supported by all media types. Be prepared to handle E_not_supported_by_media.

Exceptions

  MediaException |

Definition at line 1075 of file MediaHandler.cc.

## ◆ doesFileExist()

bool zypp::media::MediaHandler::doesFileExist | ( | const Pathname & | filename | ) | const

check if a file exists

Asserted that url is a file and not a dir.

Exceptions

  MediaException |

Definition at line 1097 of file MediaHandler.cc.

## ◆ hasMoreDevices()

bool zypp::media::MediaHandler::hasMoreDevices | ( |  | ) |
| virtual

Check if the media has one more device available for attach(true).

Reimplemented in zypp::media::MediaCD.

Definition at line 1335 of file MediaHandler.cc.

## ◆ getDetectedDevices()

void zypp::media::MediaHandler::getDetectedDevices | ( | std::vector< std::string > & | devices,
|  | unsigned int & | index ) const
| virtual

Fill in a vector of detected ejectable devices and the index of the currently attached device within the vector.

The contents of the vector are the device names (/dev/cdrom and such).

Parameters

  devices | vector to load with the device names
  index | index of the currently used device in the devices vector

Reimplemented in zypp::media::MediaCD.

Definition at line 1340 of file MediaHandler.cc.

## ◆ precacheFiles()

void zypp::media::MediaHandler::precacheFiles | ( | const std::vector< OnMediaLocation > & | files | ) |
| virtual

Tries to fetch the given files and precaches them.

Those files need to be queried using provideFile and can be read from the cache directly. The implementation is not allowed to block but needs to use seperate means to download the files concurrently. A backend can choose to completely ignore this functionaly, the default implementation does nothing.

Parameters

  files | List of files that should be precached, the OnMediaLocation needs to belong to the handler it is passed to

Definition at line 1351 of file MediaHandler.cc.

## Friends And Related Symbol Documentation

## ◆ operator<<

std::ostream & operator<< | ( | std::ostream & | str,
|  | const MediaHandler & | obj )
| friend

Definition at line 1181 of file MediaHandler.cc.

## Member Data Documentation

## ◆ _attachPrefix

Pathname zypp::media::MediaHandler::_attachPrefix
| static private

User defined default attach point prefix.

Definition at line 65 of file MediaHandler.h.

## ◆ _mediaSource

MediaSourceRef zypp::media::MediaHandler::_mediaSource
| mutable private

The attached media source description reference.

Definition at line 71 of file MediaHandler.h.

## ◆ _attachPoint

AttachPointRef zypp::media::MediaHandler::_attachPoint
| private

This is where the media will be actually attached ("mounted").

All files are provided bellow this + _relativeRoot directory.

Definition at line 77 of file MediaHandler.h.

## ◆ _attachPointHint

AttachPoint zypp::media::MediaHandler::_attachPointHint
| private

The user provided attach preferred point.

It may contain following values:

     "",  true  => create temporary attach point bellow of
                   _attachPrefix or a built-in default and
                   remove it if not needed any more.

     dir, false => user specified attach point (not removed)

Definition at line 89 of file MediaHandler.h.

## ◆ _relativeRoot

Pathname zypp::media::MediaHandler::_relativeRoot
| private

The relative root directory of the data on the media.

See also localRoot() and urlpath_below_attachpoint_r constructor argument.

Definition at line 96 of file MediaHandler.h.

## ◆ _does_download

bool zypp::media::MediaHandler::_does_download
| private

True if concrete handler downloads files to the local filesystem.

If true releaseFile/Dir will delete them.

Definition at line 102 of file MediaHandler.h.

## ◆ _attach_mtime

time_t zypp::media::MediaHandler::_attach_mtime
| mutable private

timestamp of the the last attach verification

Definition at line 105 of file MediaHandler.h.

## ◆ _origin

MirroredOrigin zypp::media::MediaHandler::_origin
| protected

Contains the authority URL and mirrors.

Definition at line 112 of file MediaHandler.h.

## ◆ _parentId

MediaAccessId zypp::media::MediaHandler::_parentId
| protected

Access Id of media handler we depend on.

Definition at line 117 of file MediaHandler.h.

The documentation for this class was generated from the following files:

- zypp/media/MediaHandler.h
- zypp/media/MediaHandler.cc