mirror of
				https://github.com/davidgiven/fluxengine.git
				synced 2025-10-24 11:11:02 -07:00 
			
		
		
		
	
		
			
				
	
	
		
			116 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef WRITER_H
 | |
| #define WRITER_H
 | |
| 
 | |
| #include "lib/data/locations.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,
 | |
|     const std::vector<CylinderHead>& 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);
 | |
| 
 | |
| #endif
 |