Skip to content

processors/processing_processor.hpp

Namespaces

Name
sgns
sgns::sgprocessing

Classes

Name
struct sgns::sgprocessing::ProcessingResult
class sgns::sgprocessing::ProcessingProcessor

Source code

#ifndef PROCESSING_PROCESSOR_HPP
#define PROCESSING_PROCESSOR_HPP

#include <cmath>
#include <memory>
#include <string>
#include <utility>
#include <vector>
#include <SGNSProcMain.hpp>
#include <util/sgprocmgr-logger.hpp>

namespace sgns::sgprocessing
{
    struct ProcessingResult
    {
        std::vector<uint8_t> hash;
        std::shared_ptr<std::pair<std::vector<std::string>, std::vector<std::vector<char>>>> output_buffers;
    };

    class ProcessingProcessor
    {
    public:
        virtual ~ProcessingProcessor() = default;

        virtual ProcessingResult StartProcessing( std::vector<std::vector<uint8_t>> &chunkhashes,
                               const sgns::IoDeclaration         &proc,
                               std::vector<char>                 &imageData,
                               std::vector<char>                 &modelFile,
                               const std::vector<sgns::Parameter> *parameters ) = 0;

        //virtual void SetData(std::shared_ptr<std::pair<std::vector<std::string>, std::vector<std::vector<char>>>> buffers) = 0;

        virtual float GetProgress() const { return m_progress; }

    protected:
        std::atomic<float> m_progress{0.0f}; // Progress percentage
        sgns::sgprocmanager::Logger m_logger = sgns::sgprocmanager::createLogger( "SGProcessor" );
    };
}

#endif 

Updated on 2026-04-15 at 11:00:39 -0700