RASCSI/src/raspberrypi/disk_image/disk_image_handle_factory.h

35 lines
860 B
C
Raw Normal View History

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
};