backend: provide more information about backend device.
Pass Device object, not just deviceNode string when opening Core Backend Device
This commit is contained in:
parent
0bfb7094df
commit
41473119b1
|
@ -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.
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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());
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue