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
 |