RASCSI/cpp/disk_image/disk_image_handle_factory.h

36 lines
893 B
C
Raw Normal View History

2023-01-09 02:04:49 +00:00
//---------------------------------------------------------------------------
//
// SCSI Target Emulator RaSCSI (*^..^*)
// for Raspberry Pi
//
// Copyright (C) 2022 akuker
//
// Factory class for creating DiskImageHandles
//
// [ DiskImageHandleFactory ]
//
//---------------------------------------------------------------------------
#pragma once
#include "disk_image/disk_image_handle.h"
2023-01-09 03:39:07 +00:00
#include <memory>
2023-01-09 02:04:49 +00:00
2023-01-11 03:08:22 +00:00
enum class DiskImageHandleType
2023-01-09 02:04:49 +00:00
{
eRamCache,
eMmapFile,
ePosixFile,
};
class DiskImageHandleFactory
{
public:
static void SetFileAccessMethod(DiskImageHandleType method) { current_access_type = method; };
static DiskImageHandleType GetFileAccessMethod() { return current_access_type; };
2023-01-09 03:39:07 +00:00
static unique_ptr<DiskImageHandle> CreateDiskImageHandle(const string &path, int size, uint32_t blocks, off_t imgoff = 0);
2023-01-09 02:04:49 +00:00
private:
static DiskImageHandleType current_access_type;
};