backend: provide more information about backend device.

Pass Device object, not just deviceNode string when opening Core Backend Device
This commit is contained in:
Andrius Štikonas 2017-12-06 21:33:31 +00:00
parent 0bfb7094df
commit 41473119b1
18 changed files with 37 additions and 37 deletions

View File

@ -120,7 +120,7 @@ public:
* an instance is returned, it's the caller's responsibility to delete the * an instance is returned, it's the caller's responsibility to delete the
* object. * object.
*/ */
virtual CoreBackendDevice* openDevice(const QString& deviceNode) = 0; virtual CoreBackendDevice* openDevice(const Device& d) = 0;
/** /**
* Open a device in exclusive mode for writing. * Open a device in exclusive mode for writing.
@ -129,7 +129,7 @@ public:
* an instance is returned, it's the caller's responsibility to delete the * an instance is returned, it's the caller's responsibility to delete the
* object. * object.
*/ */
virtual CoreBackendDevice* openDeviceExclusive(const QString& deviceNode) = 0; virtual CoreBackendDevice* openDeviceExclusive(const Device& d) = 0;
/** /**
* Close a CoreBackendDevice that has previously been opened. * Close a CoreBackendDevice that has previously been opened.

View File

@ -51,7 +51,7 @@ CopySourceDevice::~CopySourceDevice()
*/ */
bool CopySourceDevice::open() bool CopySourceDevice::open()
{ {
m_BackendDevice = CoreBackendManager::self()->backend()->openDeviceExclusive(device().deviceNode()); m_BackendDevice = CoreBackendManager::self()->backend()->openDeviceExclusive(device());
return m_BackendDevice != nullptr; return m_BackendDevice != nullptr;
} }

View File

@ -49,7 +49,7 @@ CopyTargetDevice::~CopyTargetDevice()
*/ */
bool CopyTargetDevice::open() bool CopyTargetDevice::open()
{ {
m_BackendDevice = CoreBackendManager::self()->backend()->openDeviceExclusive(device().deviceNode()); m_BackendDevice = CoreBackendManager::self()->backend()->openDeviceExclusive(device());
return m_BackendDevice != nullptr; return m_BackendDevice != nullptr;
} }

View File

@ -60,7 +60,7 @@ bool CreateFileSystemJob::run(Report& parent)
createResult = partition().fileSystem().create(*report, partition().deviceNode()); createResult = partition().fileSystem().create(*report, partition().deviceNode());
if (createResult) { if (createResult) {
if (device().type() == Device::Disk_Device) { if (device().type() == Device::Disk_Device) {
CoreBackendDevice* backendDevice = CoreBackendManager::self()->backend()->openDevice(device().deviceNode()); CoreBackendDevice* backendDevice = CoreBackendManager::self()->backend()->openDevice(device());
if (backendDevice) { if (backendDevice) {
CoreBackendPartitionTable* backendPartitionTable = backendDevice->openPartitionTable(); CoreBackendPartitionTable* backendPartitionTable = backendDevice->openPartitionTable();

View File

@ -51,7 +51,7 @@ bool CreatePartitionJob::run(Report& parent)
Report* report = jobStarted(parent); Report* report = jobStarted(parent);
if (device().type() == Device::Disk_Device) { if (device().type() == Device::Disk_Device) {
CoreBackendDevice* backendDevice = CoreBackendManager::self()->backend()->openDevice(device().deviceNode()); CoreBackendDevice* backendDevice = CoreBackendManager::self()->backend()->openDevice(device());
if (backendDevice) { if (backendDevice) {
CoreBackendPartitionTable* backendPartitionTable = backendDevice->openPartitionTable(); CoreBackendPartitionTable* backendPartitionTable = backendDevice->openPartitionTable();

View File

@ -45,7 +45,7 @@ bool CreatePartitionTableJob::run(Report& parent)
Report* report = jobStarted(parent); Report* report = jobStarted(parent);
if (device().type() == Device::Disk_Device) { if (device().type() == Device::Disk_Device) {
CoreBackendDevice* backendDevice = CoreBackendManager::self()->backend()->openDevice(device().deviceNode()); CoreBackendDevice* backendDevice = CoreBackendManager::self()->backend()->openDevice(device());
if (backendDevice != nullptr) { if (backendDevice != nullptr) {
Q_ASSERT(device().partitionTable()); Q_ASSERT(device().partitionTable());

View File

@ -74,7 +74,7 @@ bool DeleteFileSystemJob::run(Report& parent)
return false; return false;
} }
CoreBackendDevice* backendDevice = CoreBackendManager::self()->backend()->openDevice(device().deviceNode()); CoreBackendDevice* backendDevice = CoreBackendManager::self()->backend()->openDevice(device());
if (backendDevice) { if (backendDevice) {
CoreBackendPartitionTable* backendPartitionTable = backendDevice->openPartitionTable(); CoreBackendPartitionTable* backendPartitionTable = backendDevice->openPartitionTable();

View File

@ -58,7 +58,7 @@ bool DeletePartitionJob::run(Report& parent)
Report* report = jobStarted(parent); Report* report = jobStarted(parent);
if (device().type() == Device::Disk_Device) { if (device().type() == Device::Disk_Device) {
CoreBackendDevice* backendDevice = CoreBackendManager::self()->backend()->openDevice(device().deviceNode()); CoreBackendDevice* backendDevice = CoreBackendManager::self()->backend()->openDevice(device());
if (backendDevice) { if (backendDevice) {
CoreBackendPartitionTable* backendPartitionTable = backendDevice->openPartitionTable(); CoreBackendPartitionTable* backendPartitionTable = backendDevice->openPartitionTable();

View File

@ -112,7 +112,7 @@ bool ResizeFileSystemJob::resizeFileSystemBackend(Report& report)
{ {
bool rval = false; bool rval = false;
CoreBackendDevice* backendDevice = CoreBackendManager::self()->backend()->openDevice(device().deviceNode()); CoreBackendDevice* backendDevice = CoreBackendManager::self()->backend()->openDevice(device());
if (backendDevice) { if (backendDevice) {
CoreBackendPartitionTable* backendPartitionTable = backendDevice->openPartitionTable(); CoreBackendPartitionTable* backendPartitionTable = backendDevice->openPartitionTable();

View File

@ -80,7 +80,7 @@ bool RestoreFileSystemJob::run(Report& parent)
// create a new file system for what was restored with the length of the image file // create a new file system for what was restored with the length of the image file
const qint64 newLastSector = targetPartition().firstSector() + copySource.length() - 1; const qint64 newLastSector = targetPartition().firstSector() + copySource.length() - 1;
CoreBackendDevice* backendDevice = CoreBackendManager::self()->backend()->openDevice(targetDevice().deviceNode()); CoreBackendDevice* backendDevice = CoreBackendManager::self()->backend()->openDevice(targetDevice());
FileSystem::Type t = FileSystem::Unknown; FileSystem::Type t = FileSystem::Unknown;

View File

@ -56,7 +56,7 @@ bool SetPartFlagsJob::run(Report& parent)
Report* report = jobStarted(parent); Report* report = jobStarted(parent);
CoreBackendDevice* backendDevice = CoreBackendManager::self()->backend()->openDevice(device().deviceNode()); CoreBackendDevice* backendDevice = CoreBackendManager::self()->backend()->openDevice(device());
if (backendDevice) { if (backendDevice) {
CoreBackendPartitionTable* backendPartitionTable = backendDevice->openPartitionTable(); CoreBackendPartitionTable* backendPartitionTable = backendDevice->openPartitionTable();

View File

@ -56,7 +56,7 @@ bool SetPartGeometryJob::run(Report& parent)
Report* report = jobStarted(parent); Report* report = jobStarted(parent);
if(device().type() == Device::Disk_Device) { if(device().type() == Device::Disk_Device) {
CoreBackendDevice* backendDevice = CoreBackendManager::self()->backend()->openDevice(device().deviceNode()); CoreBackendDevice* backendDevice = CoreBackendManager::self()->backend()->openDevice(device());
if (backendDevice) { if (backendDevice) {
CoreBackendPartitionTable* backendPartitionTable = backendDevice->openPartitionTable(); CoreBackendPartitionTable* backendPartitionTable = backendDevice->openPartitionTable();

View File

@ -57,9 +57,9 @@ QList<Device*> DummyBackend::scanDevices(bool excludeLoop)
return result; return result;
} }
Device* DummyBackend::scanDevice(const QString& device_node) Device* DummyBackend::scanDevice(const QString& deviceNode)
{ {
DiskDevice* d = new DiskDevice(QStringLiteral("Dummy Device"), QStringLiteral("/tmp") + device_node, 255, 30, 63, 512); DiskDevice* d = new DiskDevice(QStringLiteral("Dummy Device"), QStringLiteral("/tmp") + deviceNode, 255, 30, 63, 512);
CoreBackend::setPartitionTableForDevice(*d, new PartitionTable(PartitionTable::msdos_sectorbased, 2048, d->totalSectors() - 2048)); CoreBackend::setPartitionTableForDevice(*d, new PartitionTable(PartitionTable::msdos_sectorbased, 2048, d->totalSectors() - 2048));
CoreBackend::setPartitionTableMaxPrimaries(*d->partitionTable(), 128); CoreBackend::setPartitionTableMaxPrimaries(*d->partitionTable(), 128);
d->partitionTable()->updateUnallocated(*d); d->partitionTable()->updateUnallocated(*d);
@ -77,9 +77,9 @@ FileSystem::Type DummyBackend::detectFileSystem(const QString& deviceNode)
return FileSystem::Unknown; return FileSystem::Unknown;
} }
CoreBackendDevice* DummyBackend::openDevice(const QString& device_node) CoreBackendDevice* DummyBackend::openDevice(const Device& d)
{ {
DummyDevice* device = new DummyDevice(device_node); DummyDevice* device = new DummyDevice(d.deviceNode());
if (device == nullptr || !device->open()) { if (device == nullptr || !device->open()) {
delete device; delete device;
@ -89,9 +89,9 @@ CoreBackendDevice* DummyBackend::openDevice(const QString& device_node)
return device; return device;
} }
CoreBackendDevice* DummyBackend::openDeviceExclusive(const QString& device_node) CoreBackendDevice* DummyBackend::openDeviceExclusive(const Device& d)
{ {
DummyDevice* device = new DummyDevice(device_node); DummyDevice* device = new DummyDevice(d.deviceNode());
if (device == nullptr || !device->openExclusive()) { if (device == nullptr || !device->openExclusive()) {
delete device; delete device;
@ -101,9 +101,9 @@ CoreBackendDevice* DummyBackend::openDeviceExclusive(const QString& device_node)
return device; return device;
} }
bool DummyBackend::closeDevice(CoreBackendDevice* core_device) bool DummyBackend::closeDevice(CoreBackendDevice* coreDevice)
{ {
return core_device->close(); return coreDevice->close();
} }
#include "dummybackend.moc" #include "dummybackend.moc"

View File

@ -45,10 +45,10 @@ public:
void initFSSupport() override; void initFSSupport() override;
QList<Device*> scanDevices(bool excludeReadOnly = false) override; QList<Device*> scanDevices(bool excludeReadOnly = false) override;
CoreBackendDevice* openDevice(const QString& device_node) override; CoreBackendDevice* openDevice(const Device& d) override;
CoreBackendDevice* openDeviceExclusive(const QString& device_node) override; CoreBackendDevice* openDeviceExclusive(const Device& d) override;
bool closeDevice(CoreBackendDevice* core_device) override; bool closeDevice(CoreBackendDevice* coreDevice) override;
Device* scanDevice(const QString& device_node) override; Device* scanDevice(const QString& deviceNode) override;
FileSystem::Type detectFileSystem(const QString& deviceNode) override; FileSystem::Type detectFileSystem(const QString& deviceNode) override;
}; };

View File

@ -524,9 +524,9 @@ FileSystem::Type LibPartedBackend::detectFileSystem(const QString& partitionPath
return rval; return rval;
} }
CoreBackendDevice* LibPartedBackend::openDevice(const QString& deviceNode) CoreBackendDevice* LibPartedBackend::openDevice(const Device& d)
{ {
LibPartedDevice* device = new LibPartedDevice(deviceNode); LibPartedDevice* device = new LibPartedDevice(d.deviceNode());
if (device == nullptr || !device->open()) { if (device == nullptr || !device->open()) {
delete device; delete device;
@ -536,9 +536,9 @@ CoreBackendDevice* LibPartedBackend::openDevice(const QString& deviceNode)
return device; return device;
} }
CoreBackendDevice* LibPartedBackend::openDeviceExclusive(const QString& deviceNode) CoreBackendDevice* LibPartedBackend::openDeviceExclusive(const Device& d)
{ {
LibPartedDevice* device = new LibPartedDevice(deviceNode); LibPartedDevice* device = new LibPartedDevice(d.deviceNode());
if (device == nullptr || !device->openExclusive()) { if (device == nullptr || !device->openExclusive()) {
delete device; delete device;

View File

@ -61,8 +61,8 @@ private:
public: public:
void initFSSupport() override; void initFSSupport() override;
CoreBackendDevice* openDevice(const QString& deviceNode) override; CoreBackendDevice* openDevice(const Device& d) override;
CoreBackendDevice* openDeviceExclusive(const QString& deviceNode) override; CoreBackendDevice* openDeviceExclusive(const Device& d) override;
bool closeDevice(CoreBackendDevice* core_device) override; bool closeDevice(CoreBackendDevice* core_device) override;
DiskDevice* scanDevice(const QString& deviceNode) override; DiskDevice* scanDevice(const QString& deviceNode) override;
QList<Device*> scanDevices(bool excludeReadOnly = false) override; QList<Device*> scanDevices(bool excludeReadOnly = false) override;

View File

@ -363,9 +363,9 @@ PartitionTable::Flags SfdiskBackend::availableFlags(PartitionTable::TableType ty
return flags; return flags;
} }
CoreBackendDevice* SfdiskBackend::openDevice(const QString& deviceNode) CoreBackendDevice* SfdiskBackend::openDevice(const Device& d)
{ {
SfdiskDevice* device = new SfdiskDevice(deviceNode); SfdiskDevice* device = new SfdiskDevice(d.deviceNode());
if (device == nullptr || !device->open()) { if (device == nullptr || !device->open()) {
delete device; delete device;
@ -375,9 +375,9 @@ CoreBackendDevice* SfdiskBackend::openDevice(const QString& deviceNode)
return device; return device;
} }
CoreBackendDevice* SfdiskBackend::openDeviceExclusive(const QString& deviceNode) CoreBackendDevice* SfdiskBackend::openDeviceExclusive(const Device& d)
{ {
SfdiskDevice* device = new SfdiskDevice(deviceNode); SfdiskDevice* device = new SfdiskDevice(d.deviceNode());
if (device == nullptr || !device->openExclusive()) { if (device == nullptr || !device->openExclusive()) {
delete device; delete device;

View File

@ -47,8 +47,8 @@ public:
void initFSSupport() override; void initFSSupport() override;
QList<Device*> scanDevices(bool excludeReadOnly = false) override; QList<Device*> scanDevices(bool excludeReadOnly = false) override;
CoreBackendDevice* openDevice(const QString& deviceNode) override; CoreBackendDevice* openDevice(const Device& d) override;
CoreBackendDevice* openDeviceExclusive(const QString& deviceNode) override; CoreBackendDevice* openDeviceExclusive(const Device& d) override;
bool closeDevice(CoreBackendDevice* coreDevice) override; bool closeDevice(CoreBackendDevice* coreDevice) override;
Device* scanDevice(const QString& deviceNode) override; Device* scanDevice(const QString& deviceNode) override;
FileSystem::Type detectFileSystem(const QString& partitionPath) override; FileSystem::Type detectFileSystem(const QString& partitionPath) override;