Headers for the disk device manager. Very early state.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3454 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
// KDiskDeviceJob.h
|
||||
|
||||
#ifndef _K_DISK_DEVICE_JOB_H
|
||||
#define _K_DISK_DEVICE_JOB_H
|
||||
|
||||
#include "disk_device_manager.h"
|
||||
|
||||
struct user_disk_device_job_info;
|
||||
|
||||
namespace BPrivate {
|
||||
namespace DiskDevice {
|
||||
|
||||
class KDiskDeviceJob {
|
||||
public:
|
||||
KDiskDeviceJob(partition_id partition, partition_id scope = -1);
|
||||
virtual ~KDiskDeviceJob();
|
||||
|
||||
disk_job_id ID() const;
|
||||
|
||||
void SetStatus(uint32 status);
|
||||
uint32 Status() const;
|
||||
|
||||
void SetDescription(const char *description);
|
||||
const char *Description() const;
|
||||
// Maybe better just a virtual void GetDescription(char*)?
|
||||
|
||||
void SetPartitionID(partition_id partitionID);
|
||||
// Probably not needed, since passed to the constructor.
|
||||
partition_id PartitionID() const;
|
||||
partition_id ScopeID() const;
|
||||
|
||||
virtual void UpdateProgress(float progress);
|
||||
// may trigger a notification
|
||||
// virtual, since some jobs are composed of several tasks (e.g. Move).
|
||||
// We might want to explicitly support subtasks in the base class, or
|
||||
// even in the userland API.
|
||||
void UpdateExtraProgress(const char *info);
|
||||
// triggers a notification
|
||||
float Progress() const;
|
||||
|
||||
status_t GetInfo(user_disk_device_job_info *info);
|
||||
|
||||
virtual status_t Do();
|
||||
|
||||
// TODO: Do we want to add a Cancel() here? We probably can't tell the
|
||||
// disk system directly anyway. That is, if the job is in progress,
|
||||
// the disk system would have to check the job status periodically
|
||||
// to find out, if the job had been canceled. But then a
|
||||
// SetStatus(B_DISK_DEVICE_JOB_CANCELED) would be sufficient.
|
||||
};
|
||||
|
||||
} // namespace DiskDevice
|
||||
} // namespace BPrivate
|
||||
|
||||
using BPrivate::DiskDevice::KDiskDeviceJob;
|
||||
|
||||
#endif // _DISK_DEVICE_JOB_H
|
||||
Reference in New Issue
Block a user