2022-02-13 05:10:06 +00:00
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
//
|
2022-03-14 02:16:21 +00:00
|
|
|
// SCSI Target Emulator RaSCSI (*^..^*)
|
|
|
|
// for Raspberry Pi
|
2022-02-13 05:10:06 +00:00
|
|
|
//
|
2022-03-14 02:16:21 +00:00
|
|
|
// Copyright (C) 2022 akuker
|
2022-02-13 05:10:06 +00:00
|
|
|
//
|
2022-03-14 02:16:21 +00:00
|
|
|
// Factory class for creating DiskImageHandles
|
2022-02-13 05:10:06 +00:00
|
|
|
//
|
2022-03-14 02:16:21 +00:00
|
|
|
// [ DiskImageHandleFactory ]
|
2022-02-13 05:10:06 +00:00
|
|
|
//
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
|
2022-03-14 02:10:51 +00:00
|
|
|
#pragma once
|
2022-02-13 05:10:06 +00:00
|
|
|
|
2022-03-14 02:10:51 +00:00
|
|
|
#include "disk_image/disk_image_handle.h"
|
|
|
|
|
2022-03-14 02:28:40 +00:00
|
|
|
enum DiskImageHandleType
|
|
|
|
{
|
2022-02-13 05:10:06 +00:00
|
|
|
eRamCache,
|
|
|
|
eMmapFile,
|
2022-03-14 02:28:40 +00:00
|
|
|
ePosixFile,
|
2022-02-13 05:10:06 +00:00
|
|
|
};
|
|
|
|
|
2022-03-14 02:10:51 +00:00
|
|
|
class DiskImageHandleFactory
|
2022-02-13 05:10:06 +00:00
|
|
|
{
|
|
|
|
public:
|
2022-03-14 02:10:51 +00:00
|
|
|
static void SetFileAccessMethod(DiskImageHandleType method) { current_access_type = method; };
|
|
|
|
static DiskImageHandleType GetFileAccessMethod() { return current_access_type; };
|
2022-02-13 05:10:06 +00:00
|
|
|
|
2022-03-14 02:28:40 +00:00
|
|
|
static DiskImageHandle *CreateDiskImageHandle(const Filepath &path, int size, uint32_t blocks, off_t imgoff = 0);
|
2022-02-13 05:10:06 +00:00
|
|
|
|
|
|
|
private:
|
2022-03-14 02:10:51 +00:00
|
|
|
static DiskImageHandleType current_access_type;
|
2022-02-13 05:10:06 +00:00
|
|
|
};
|