mirror of
https://github.com/davidgiven/fluxengine.git
synced 2025-10-31 11:17:01 -07:00
49 lines
1.1 KiB
C++
49 lines
1.1 KiB
C++
#ifndef SECTORINTERFACE_H
|
|
#define SECTORINTERFACE_H
|
|
|
|
class ImageReader;
|
|
class ImageWriter;
|
|
class Sector;
|
|
class FluxSource;
|
|
class FluxSink;
|
|
class Decoder;
|
|
class Encoder;
|
|
|
|
class SectorInterface
|
|
{
|
|
public:
|
|
virtual ~SectorInterface() {}
|
|
|
|
public:
|
|
virtual std::shared_ptr<const Sector> get(
|
|
unsigned track, unsigned side, unsigned sectorId) = 0;
|
|
virtual std::shared_ptr<Sector> put(
|
|
unsigned track, unsigned side, unsigned sectorId) = 0;
|
|
|
|
virtual bool isReadOnly()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
virtual bool needsFlushing()
|
|
{
|
|
return false;
|
|
}
|
|
|
|
virtual void flushChanges() {}
|
|
|
|
virtual void discardChanges() {}
|
|
|
|
public:
|
|
static std::unique_ptr<SectorInterface> createImageSectorInterface(
|
|
std::shared_ptr<ImageReader> reader,
|
|
std::shared_ptr<ImageWriter> writer);
|
|
static std::unique_ptr<SectorInterface> createFluxSectorInterface(
|
|
std::shared_ptr<FluxSource> fluxSource,
|
|
std::shared_ptr<FluxSink> fluxSink,
|
|
std::shared_ptr<Encoder> encoder,
|
|
std::shared_ptr<Decoder> decoder);
|
|
};
|
|
|
|
#endif
|