mirror of
				https://github.com/davidgiven/fluxengine.git
				synced 2025-10-24 11:11:02 -07:00 
			
		
		
		
	Finally eliminate the +lib target.
This commit is contained in:
		
							
								
								
									
										114
									
								
								lib/algorithms/readerwriter.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								lib/algorithms/readerwriter.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,114 @@ | ||||
| #ifndef WRITER_H | ||||
| #define WRITER_H | ||||
|  | ||||
| class Decoder; | ||||
| class Encoder; | ||||
| class DiskFlux; | ||||
| class FluxSink; | ||||
| class FluxSource; | ||||
| class FluxSourceIteratorHolder; | ||||
| class Fluxmap; | ||||
| class Image; | ||||
| class ImageReader; | ||||
| class ImageWriter; | ||||
| class TrackInfo; | ||||
| class TrackFlux; | ||||
| class TrackDataFlux; | ||||
| class Sector; | ||||
|  | ||||
| struct BeginSpeedOperationLogMessage | ||||
| { | ||||
| }; | ||||
|  | ||||
| struct EndSpeedOperationLogMessage | ||||
| { | ||||
|     nanoseconds_t rotationalPeriod; | ||||
| }; | ||||
|  | ||||
| struct TrackReadLogMessage | ||||
| { | ||||
|     std::shared_ptr<const TrackFlux> track; | ||||
| }; | ||||
|  | ||||
| struct DiskReadLogMessage | ||||
| { | ||||
|     std::shared_ptr<const DiskFlux> disk; | ||||
| }; | ||||
|  | ||||
| struct BeginReadOperationLogMessage | ||||
| { | ||||
|     unsigned track; | ||||
|     unsigned head; | ||||
| }; | ||||
|  | ||||
| struct EndReadOperationLogMessage | ||||
| { | ||||
|     std::shared_ptr<const TrackDataFlux> trackDataFlux; | ||||
|     std::set<std::shared_ptr<const Sector>> sectors; | ||||
| }; | ||||
|  | ||||
| struct BeginWriteOperationLogMessage | ||||
| { | ||||
|     unsigned track; | ||||
|     unsigned head; | ||||
| }; | ||||
|  | ||||
| struct EndWriteOperationLogMessage | ||||
| { | ||||
| }; | ||||
|  | ||||
| struct BeginOperationLogMessage | ||||
| { | ||||
|     std::string message; | ||||
| }; | ||||
|  | ||||
| struct EndOperationLogMessage | ||||
| { | ||||
|     std::string message; | ||||
| }; | ||||
|  | ||||
| struct OperationProgressLogMessage | ||||
| { | ||||
|     unsigned progress; | ||||
| }; | ||||
|  | ||||
| extern void measureDiskRotation(); | ||||
|  | ||||
| extern void writeTracks(FluxSink& fluxSink, | ||||
|     const std::function<std::unique_ptr<const Fluxmap>( | ||||
|         std::shared_ptr<const TrackInfo>& layout)> producer, | ||||
|     std::vector<std::shared_ptr<const TrackInfo>>& locations); | ||||
|  | ||||
| extern void writeTracksAndVerify(FluxSink& fluxSink, | ||||
|     Encoder& encoder, | ||||
|     FluxSource& fluxSource, | ||||
|     Decoder& decoder, | ||||
|     const Image& image, | ||||
|     std::vector<std::shared_ptr<const TrackInfo>>& locations); | ||||
|  | ||||
| extern void writeDiskCommand(const Image& image, | ||||
|     Encoder& encoder, | ||||
|     FluxSink& fluxSink, | ||||
|     Decoder* decoder, | ||||
|     FluxSource* fluxSource, | ||||
|     std::vector<std::shared_ptr<const TrackInfo>>& locations); | ||||
|  | ||||
| extern void writeDiskCommand(const Image& image, | ||||
|     Encoder& encoder, | ||||
|     FluxSink& fluxSink, | ||||
|     Decoder* decoder = nullptr, | ||||
|     FluxSource* fluxSource = nullptr); | ||||
|  | ||||
| extern void writeRawDiskCommand(FluxSource& fluxSource, FluxSink& fluxSink); | ||||
|  | ||||
| extern std::shared_ptr<TrackFlux> readAndDecodeTrack(FluxSource& fluxSource, | ||||
|     Decoder& decoder, | ||||
|     std::shared_ptr<const TrackInfo>& layout); | ||||
|  | ||||
| extern std::shared_ptr<const DiskFlux> readDiskCommand( | ||||
|     FluxSource& fluxsource, Decoder& decoder); | ||||
| extern void readDiskCommand( | ||||
|     FluxSource& source, Decoder& decoder, ImageWriter& writer); | ||||
| extern void rawReadDiskCommand(FluxSource& source, FluxSink& sink); | ||||
|  | ||||
| #endif | ||||
		Reference in New Issue
	
	Block a user