Files
fluxengine/lib/imagereader/imagereader.h
David Given 644f592df3 Make the JV3 imagereader work again; allow the imagereader to act as a geometry
mapper for formats which have track/side/sector information.
2021-05-30 23:57:14 +02:00

35 lines
1.0 KiB
C++

#ifndef IMAGEREADER_H
#define IMAGEREADER_H
class SectorSet;
class ImageSpec;
class ImageReaderProto;
class DisassemblingGeometryMapper;
class ImageReader
{
public:
ImageReader(const ImageReaderProto& config);
virtual ~ImageReader() {};
public:
static std::unique_ptr<ImageReader> create(const ImageReaderProto& config);
static void updateConfigForFilename(ImageReaderProto* proto, const std::string& filename);
public:
static std::unique_ptr<ImageReader> createDiskCopyImageReader(const ImageReaderProto& config);
static std::unique_ptr<ImageReader> createImgImageReader(const ImageReaderProto& config);
static std::unique_ptr<ImageReader> createJv3ImageReader(const ImageReaderProto& config);
static std::unique_ptr<ImageReader> createIMDImageReader(const ImageReaderProto& config);
public:
virtual Bytes getBlock(size_t offset, size_t length) const = 0;
virtual const DisassemblingGeometryMapper* getGeometryMapper() const { return nullptr; }
protected:
const ImageReaderProto& _config;
};
#endif