#ifndef ENCODERS_H #define ENCODERS_H class Fluxmap; class EncoderProto; class Image; class Sector; class AbstractEncoder { public: AbstractEncoder(const EncoderProto& config) {} virtual ~AbstractEncoder() {} static std::unique_ptr create(const EncoderProto& config); public: virtual std::vector> collectSectors( int physicalCylinder, int physicalHead, const Image& image) = 0; virtual std::unique_ptr encode(int physicalCylinder, int physicalHead, const std::vector>& sectors, const Image& image) = 0; }; #endif