libzypp 17.37.17
|
#include <zypp-media/ng/worker/devicedriver.h>
Public Member Functions | |
DeviceDriver (WorkerCaps::WorkerType wType) | |
void | setProvider (ProvideWorkerWeakRef workerRef) |
virtual AttachResult | mountDevice (const uint32_t id, const zypp::Url &mediaUrl, const std::string &attachId, const std::string &label, const HeaderValueMap &extras)=0 |
virtual zyppng::expected< WorkerCaps > | initialize (const zyppng::worker::Configuration &conf) |
bool | detachMedia (const std::string &attachId) |
void | releaseIdleDevices () |
virtual void | detectDevices () |
std::vector< std::shared_ptr< Device > > & | knownDevices () |
const std::vector< std::shared_ptr< Device > > & | knownDevices () const |
std::unordered_map< std::string, AttachedMedia > & | attachedMedia () |
virtual bool | isVolatile () const |
void | setAttachRoot (const zypp::Pathname &root) |
zypp::Pathname | attachRoot () const |
virtual void | immediateShutdown () |
ProvideWorkerRef | parentWorker () const |
const zyppng::worker::Configuration & | config () const |
Public Member Functions inherited from zyppng::Base | |
Base () | |
virtual | ~Base () |
WeakPtr | parent () const |
void | addChild (const Base::Ptr &child) |
void | removeChild (const Ptr &child) |
const std::unordered_set< Ptr > & | children () const |
std::thread::id | threadId () const |
template<typename T> | |
std::vector< std::weak_ptr< T > > | findChildren () const |
template<typename T> | |
std::shared_ptr< T > | shared_this () const |
template<typename T> | |
std::shared_ptr< T > | shared_this () |
template<typename T> | |
std::weak_ptr< T > | weak_this () const |
template<typename T> | |
std::weak_ptr< T > | weak_this () |
template<typename SenderFunc, typename ReceiverFunc> | |
auto | connect (SenderFunc &&sFun, typename internal::MemberFunction< ReceiverFunc >::ClassType &recv, ReceiverFunc &&rFunc) |
template<typename SenderFunc, typename ReceiverFunc, typename ... Tracker> | |
std::enable_if_t< std::is_member_function_pointer_v< SenderFunc >, connection > | connectFunc (SenderFunc &&sFun, ReceiverFunc &&rFunc, const Tracker &...trackers) |
Protected Member Functions | |
virtual void | unmountDevice (Device &dev) |
zyppng::expected< void > | isDesiredMedium (const zypp::Url &deviceUrl, const zypp::Pathname &mountPoint, const zyppng::MediaDataVerifierRef &verifier, uint mediaNr=1) |
zypp::Pathname | createAttachPoint (const zypp::Pathname &attach_root) const |
void | removeAttachPoint (const zypp::Pathname &attach_pt) const |
bool | checkAttached (const zypp::Pathname &mountPoint, const std::function< bool(const zypp::media::MountEntry &)> predicate) |
Protected Member Functions inherited from zyppng::Base | |
Base (BasePrivate &dd) |
Static Protected Member Functions | |
static const std::function< bool(const zypp::media::MountEntry &)> | devicePredicate (unsigned int majNr, unsigned int minNr) |
static const std::function< bool(const zypp::media::MountEntry &)> | fstypePredicate (const std::string &src, const std::vector< std::string > &fstypes) |
static const std::function< bool(const zypp::media::MountEntry &)> | bindMountPredicate (const std::string &src) |
Private Attributes | |
WorkerCaps::WorkerType | _wType |
ProviderConfiguration | _config |
time_t | _attach_mtime = 0 |
zypp::Pathname | _attachRoot |
std::vector< std::shared_ptr< Device > > | _sysDevs |
std::unordered_map< std::string, AttachedMedia > | _attachedMedia |
ProvideWorkerWeakRef | _parentWorker |
Additional Inherited Members | |
Public Types inherited from zyppng::Base | |
using | Ptr = std::shared_ptr<Base> |
using | WeakPtr = std::weak_ptr<Base> |
Static Public Member Functions inherited from zyppng::Base | |
template<typename Obj, typename Functor> | |
static decltype(auto) | make_base_slot (Obj *o, Functor &&f) |
template<typename SenderFunc, typename ReceiverFunc> | |
static auto | connect (typename internal::MemberFunction< SenderFunc >::ClassType &s, SenderFunc &&sFun, typename internal::MemberFunction< ReceiverFunc >::ClassType &recv, ReceiverFunc &&rFunc) |
template<typename SenderFunc, typename ReceiverFunc, typename ... Tracker> | |
static auto | connectFunc (typename internal::MemberFunction< SenderFunc >::ClassType &s, SenderFunc &&sFun, ReceiverFunc &&rFunc, const Tracker &...trackers) |
Protected Attributes inherited from zyppng::Base | |
std::unique_ptr< BasePrivate > | d_ptr |
Abstract base class to be used together with the
Definition at line 65 of file devicedriver.h.
zyppng::worker::DeviceDriver::DeviceDriver | ( | WorkerCaps::WorkerType | wType | ) |
Definition at line 25 of file devicedriver.cc.
void zyppng::worker::DeviceDriver::setProvider | ( | ProvideWorkerWeakRef | workerRef | ) |
Tells the driver which provide worker to use when requiring auth data or media changes
Definition at line 29 of file devicedriver.cc.
|
pure virtual |
Called by the provide loop whenever a attach request is received.
|
virtual |
Definition at line 34 of file devicedriver.cc.
bool zyppng::worker::DeviceDriver::detachMedia | ( | const std::string & | attachId | ) |
Detaches the medium referenced by attachId. Returns false if the medium could not be found
Definition at line 59 of file devicedriver.cc.
void zyppng::worker::DeviceDriver::releaseIdleDevices | ( | ) |
Physically detaches all devices that are not referenced by a attachment anymore
Definition at line 69 of file devicedriver.cc.
|
virtual |
Called by the parent to populate the device array every time a provide request arrives, only relevant for workers that operate on detectable devices. The base implementation does nothing
Definition at line 84 of file devicedriver.cc.
std::vector< std::shared_ptr< Device > > & zyppng::worker::DeviceDriver::knownDevices | ( | ) |
Returns a list of all currently known devices, a subclass should always make sure that all currently mounted devices are present in that list.
Definition at line 89 of file devicedriver.cc.
const std::vector< std::shared_ptr< Device > > & zyppng::worker::DeviceDriver::knownDevices | ( | ) | const |
Returns a list of all currently known devices, a subclass should always make sure that all currently mounted devices are present in that list.
Definition at line 94 of file devicedriver.cc.
std::unordered_map< std::string, AttachedMedia > & zyppng::worker::DeviceDriver::attachedMedia | ( | ) |
Returns the list of currently attached medias
Definition at line 99 of file devicedriver.cc.
|
virtual |
Returns true if the worker handles volatile devices ( e.g. DVDs ). The default impl returns false.
Definition at line 138 of file devicedriver.cc.
void zyppng::worker::DeviceDriver::setAttachRoot | ( | const zypp::Pathname & | root | ) |
Changes the attach root to a specific path, otherwise realpath(".") is used.
Definition at line 143 of file devicedriver.cc.
zypp::Pathname zyppng::worker::DeviceDriver::attachRoot | ( | ) | const |
Returns the attachRoot as dictated by the controller
Definition at line 148 of file devicedriver.cc.
|
virtual |
The system is shutting down, release all ressources
Definition at line 104 of file devicedriver.cc.
ProvideWorkerRef zyppng::worker::DeviceDriver::parentWorker | ( | ) | const |
Returns the parent worker if set
Definition at line 118 of file devicedriver.cc.
const zyppng::worker::Configuration & zyppng::worker::DeviceDriver::config | ( | ) | const |
Returns the configuration that was sent by the controller
Definition at line 157 of file devicedriver.cc.
|
protectedvirtual |
Forcefully unmounts the device, this does not check if there any attached medias still relying on it
Definition at line 123 of file devicedriver.cc.
|
protected |
Checks if the medium deviceUrl mounted on path matches the verifier and mediaNr
Definition at line 162 of file devicedriver.cc.
|
protected |
Definition at line 209 of file devicedriver.cc.
|
protected |
Definition at line 268 of file devicedriver.cc.
|
protected |
Definition at line 283 of file devicedriver.cc.
|
staticprotected |
Returns a predicate for the checkAttached function that looks for a real device in the mount table
Definition at line 315 of file devicedriver.cc.
|
staticprotected |
Returns a predicate for the checkAttached function that looks for a virtual mount ( like smb or nfs ) in the mount table
Definition at line 331 of file devicedriver.cc.
|
staticprotected |
Returns a predicate for the checkAttached function that looks for a bind mount in the mount table
Definition at line 347 of file devicedriver.cc.
|
private |
Definition at line 188 of file devicedriver.h.
|
private |
Definition at line 189 of file devicedriver.h.
|
private |
Definition at line 190 of file devicedriver.h.
|
private |
Definition at line 191 of file devicedriver.h.
|
private |
Definition at line 192 of file devicedriver.h.
|
private |
Definition at line 193 of file devicedriver.h.
|
private |
Definition at line 194 of file devicedriver.h.