Made KPartition abstract and derived two classes, KPhysicalPartition
and KShadowPartition from it. KPhysicalPartition represents a partition that exists on-disk, while KShadowPartition is a partition edited by the API user, but not yet written to disk. Related changes in other classes. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3851 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
// KPartition.h
|
||||
|
||||
#ifndef _K_DISK_DEVICE_PHYSICAL_PARTITION_H
|
||||
#define _K_DISK_DEVICE_PHYSICAL_PARTITION_H
|
||||
|
||||
#include <KPartition.h>
|
||||
|
||||
namespace BPrivate {
|
||||
namespace DiskDevice {
|
||||
|
||||
class KDiskDevice;
|
||||
class KDiskSystem;
|
||||
class KShadowPartition;
|
||||
|
||||
class KPhysicalPartition : public KPartition {
|
||||
public:
|
||||
KPhysicalPartition(partition_id id = -1);
|
||||
virtual ~KPhysicalPartition();
|
||||
|
||||
virtual bool PrepareForRemoval();
|
||||
|
||||
virtual status_t Open(int flags, int *fd);
|
||||
virtual status_t PublishDevice();
|
||||
virtual status_t UnpublishDevice();
|
||||
|
||||
virtual status_t Mount(uint32 mountFlags, const char *parameters);
|
||||
virtual status_t Unmount();
|
||||
|
||||
// Hierarchy
|
||||
|
||||
virtual status_t CreateChild(partition_id id, int32 index,
|
||||
KPartition **child = NULL);
|
||||
|
||||
// Shadow Partition
|
||||
|
||||
virtual status_t CreateShadowPartition(); // creates a complete tree
|
||||
virtual void DeleteShadowPartition(); // deletes ...
|
||||
virtual KShadowPartition *ShadowPartition();
|
||||
virtual bool IsShadowPartition() const;
|
||||
virtual KPhysicalPartition *PhysicalPartition();
|
||||
|
||||
// DiskSystem
|
||||
|
||||
virtual void Dump(bool deep, int32 level);
|
||||
|
||||
protected:
|
||||
KShadowPartition *fShadowPartition;
|
||||
};
|
||||
|
||||
} // namespace DiskDevice
|
||||
} // namespace BPrivate
|
||||
|
||||
using BPrivate::DiskDevice::KPhysicalPartition;
|
||||
|
||||
#endif // _K_DISK_DEVICE_PHYSICAL_PARTITION_H
|
||||
Reference in New Issue
Block a user