haiku/headers/private/storage/DiskDevice.h
Ingo Weinhold 1573b62671 * Removed the BDiskDeviceJob class. Jobs won't be generated and executed
in the kernel anymore. The respective functionality will be moved into
  the userland. Depending on how we want the API user to interface with
  it, we may want to reintroduce a similar class later.
* Cleared remaining references to shadow partitions.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22606 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-17 22:56:23 +00:00

67 lines
1.7 KiB
C++

/*
* Copyright 2003-2007, Ingo Weinhold, ingo_weinhold@gmx.de.
* Copyright 2003, Tyler Akidau, haiku@akidau.net.
* Distributed under the terms of the MIT License.
*/
#ifndef _DISK_DEVICE_H
#define _DISK_DEVICE_H
#include <Partition.h>
struct user_disk_device_data;
class BDiskDevice : public BPartition {
public:
BDiskDevice();
virtual ~BDiskDevice();
bool HasMedia() const;
bool IsRemovableMedia() const;
bool IsReadOnlyMedia() const;
bool IsWriteOnceMedia() const;
status_t Eject(bool update = false);
status_t SetTo(partition_id id);
status_t Update(bool* updated = NULL);
void Unset();
status_t InitCheck() const;
virtual status_t GetPath(BPath* path) const;
bool IsModified() const;
status_t PrepareModifications();
status_t CommitModifications(bool synchronously = true,
BMessenger progressMessenger = BMessenger(),
bool receiveCompleteProgressUpdates = true);
status_t CancelModifications();
private:
friend class BDiskDeviceList;
friend class BDiskDeviceRoster;
BDiskDevice(const BDiskDevice&);
BDiskDevice& operator=(const BDiskDevice&);
static status_t _GetData(partition_id id, bool deviceOnly,
size_t neededSize,
user_disk_device_data** data);
status_t _SetTo(partition_id id, bool deviceOnly,
size_t neededSize);
status_t _SetTo(user_disk_device_data* data);
status_t _Update(bool* updated);
status_t _Update(user_disk_device_data* data,
bool* updated);
static void _ClearUserData(user_partition_data* data);
virtual bool _AcceptVisitor(BDiskDeviceVisitor* visitor,
int32 level);
user_disk_device_data* fDeviceData;
};
#endif // _DISK_DEVICE_H