// KPartition.h #ifndef _K_DISK_DEVICE_PHYSICAL_PARTITION_H #define _K_DISK_DEVICE_PHYSICAL_PARTITION_H #include 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 UnsetShadowPartition(bool doDelete); virtual KShadowPartition *ShadowPartition() const; virtual bool IsShadowPartition() const; virtual KPhysicalPartition *PhysicalPartition() const; // 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