#ifndef _K_FILE_DISK_DEVICE_H
#define _K_FILE_DISK_DEVICE_H
#include <OS.h>
#include "KDiskDevice.h"
namespace BPrivate {
namespace DiskDevice {
class KPath;
class KFileDiskDevice : public KDiskDevice {
public:
KFileDiskDevice(partition_id id = -1);
virtual ~KFileDiskDevice();
status_t SetTo(const char *filePath, const char *devicePath = NULL);
void Unset();
virtual status_t InitCheck() const;
const char *FilePath() const;
protected:
virtual status_t GetMediaStatus(status_t *mediaStatus);
virtual status_t GetGeometry(device_geometry *geometry);
private:
static status_t _GetDirectoryPath(partition_id id, KPath *path);
static status_t _RegisterDevice(const char *file, const char *device);
static status_t _UnregisterDevice(const char *device);
private:
char *fFilePath;
};
}
}
using BPrivate::DiskDevice::KFileDiskDevice;
#endif