Skip to content

sgns::sgprocessing::ProcessingProcessor

#include <processing_processor.hpp>

Inherited by sgns::sgprocessing::MNN_Audio, sgns::sgprocessing::MNN_Bool, sgns::sgprocessing::MNN_Buffer, sgns::sgprocessing::MNN_Float, sgns::sgprocessing::MNN_Image, sgns::sgprocessing::MNN_Int, sgns::sgprocessing::MNN_Llm, sgns::sgprocessing::MNN_ML, sgns::sgprocessing::MNN_Mat2, sgns::sgprocessing::MNN_Mat3, sgns::sgprocessing::MNN_Mat4, sgns::sgprocessing::MNN_String, sgns::sgprocessing::MNN_Tensor, sgns::sgprocessing::MNN_Texture1D, sgns::sgprocessing::MNN_TextureCube, sgns::sgprocessing::MNN_Vec2, sgns::sgprocessing::MNN_Vec3, sgns::sgprocessing::MNN_Vec4, sgns::sgprocessing::MNN_Volume, sgns::sgprocessing::RenderProcessor

Public Functions

Name
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, const ExecutionContext & execCtx) =0
virtual float GetProgress() const
void RunTeardown()

Protected Functions

Name
void PushTeardown(std::function< void()> fn)

Protected Attributes

Name
std::atomic< float > m_progress
sgns::sgprocmanager::Logger m_logger

Public Functions Documentation

function ~ProcessingProcessor

virtual ~ProcessingProcessor() =default

function StartProcessing

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,
    const ExecutionContext & execCtx
) =0

Parameters:

  • chunkhashes - Hashes of input chunks
  • proc - Input/output declaration
  • imageData - Image data buffer
  • modelFile - Model file buffer
  • parameters - Processing parameters
  • execCtx - Execution context (cancel token, progress, budgets, deadline)

Reimplemented by: sgns::sgprocessing::MNN_Bool::StartProcessing, sgns::sgprocessing::MNN_Buffer::StartProcessing, sgns::sgprocessing::MNN_TextureCube::StartProcessing, sgns::sgprocessing::MNN_Float::StartProcessing, sgns::sgprocessing::MNN_Audio::StartProcessing, sgns::sgprocessing::MNN_Image::StartProcessing, sgns::sgprocessing::MNN_ML::StartProcessing, sgns::sgprocessing::RenderProcessor::StartProcessing, sgns::sgprocessing::MNN_Int::StartProcessing, sgns::sgprocessing::MNN_Mat2::StartProcessing, sgns::sgprocessing::MNN_Mat3::StartProcessing, sgns::sgprocessing::MNN_Mat4::StartProcessing, sgns::sgprocessing::MNN_Llm::StartProcessing, sgns::sgprocessing::MNN_Texture1D::StartProcessing, sgns::sgprocessing::MNN_Tensor::StartProcessing, sgns::sgprocessing::MNN_String::StartProcessing, sgns::sgprocessing::MNN_Vec2::StartProcessing, sgns::sgprocessing::MNN_Vec3::StartProcessing, sgns::sgprocessing::MNN_Vec4::StartProcessing, sgns::sgprocessing::MNN_Volume::StartProcessing

Start processing data with ExecutionContext (D-19, D-21). Pure virtual — all processors must implement this 6-argument overload.

function GetProgress

inline virtual float GetProgress() const

Parameters:

  • buffers - Data containing file name and data pair lists. Get current processing progress

Return: Progress percentage (0.0 to 100.0)

Set data for processor

function RunTeardown

inline void RunTeardown()

Invokes every entry in m_teardownFns in reverse order (LIFO), wrapping each in try/catch to guarantee noexcept-safe execution (D-17). Public so ProcessingManager can call it in catch blocks (D-17).

Protected Functions Documentation

function PushTeardown

inline void PushTeardown(
    std::function< void()> fn
)

Appends a teardown action to the LIFO teardown stack (D-14). MNN processors register session cleanup; RenderProcessor registers Vulkan object destruction. Protected — only subclasses push to stack.

Protected Attributes Documentation

variable m_progress

std::atomic< float > m_progress {0.0f};

variable m_logger

sgns::sgprocmanager::Logger m_logger = sgns::sgprocmanager::createLogger( "SGProcessor" );

Updated on 2026-09-17 at 06:29:14 +0000