src/processing/processing_engine.hpp¶
Namespaces¶
| Name |
|---|
| sgns |
| sgns::processing |
Classes¶
| Name | |
|---|---|
| class | sgns::processing::ProcessingEngine Handles subtask processing and result aggregation. |
Source code¶
#ifndef GRPC_FOR_SUPERGENIUS_PROCESSING_ENGINE_HPP
#define GRPC_FOR_SUPERGENIUS_PROCESSING_ENGINE_HPP
#include "processing_core.hpp"
#include "processing_subtask_queue_accessor.hpp"
#include "base/logger.hpp"
namespace sgns::processing
{
class ProcessingEngine : public std::enable_shared_from_this<ProcessingEngine>
{
public:
ProcessingEngine( std::string nodeId,
std::shared_ptr<ProcessingCore> processingCore,
std::function<void( const std::string & )> processingErrorSink,
std::function<void( void )> processingDoneSink );
~ProcessingEngine();
void StartQueueProcessing( std::shared_ptr<SubTaskQueueAccessor> subTaskQueueAccessor );
void StopQueueProcessing();
bool IsQueueProcessingStarted() const;
float GetProgress() const;
private:
void OnSubTaskGrabbed( boost::optional<const SGProcessing::SubTask &> subTask );
void ProcessSubTask( SGProcessing::SubTask subTask );
std::string m_nodeId;
std::shared_ptr<ProcessingCore> m_processingCore;
std::function<void( const std::string & )> m_processingErrorSink;
std::function<void( void )> m_processingDoneSink;
std::shared_ptr<SubTaskQueueAccessor> m_subTaskQueueAccessor;
mutable std::mutex m_mutexSubTaskQueue;
base::Logger m_logger = base::createLogger( "ProcessingEngine" );
};
}
#endif // GRPC_FOR_SUPERGENIUS_PROCESSING_ENGINE_HPP
Updated on 2026-03-04 at 13:10:44 -0800