Skip to content

processing/processing_core.hpp

Namespaces

Name
sgns
sgns::processing

Classes

Name
class sgns::processing::ProcessingCore
Processing core interface.

Source code

#ifndef GRPC_FOR_SUPERGENIUS_PROCESSING_CORE_HPP
#define GRPC_FOR_SUPERGENIUS_PROCESSING_CORE_HPP

#include "processing/proto/SGProcessing.pb.h"
#include "outcome/outcome.hpp"
#include <boost/asio/io_context.hpp>
#include <memory>

namespace sgns::processing
{
// Forward declaration -- only a shared_ptr to ProcessingTaskQueue is returned below,
// so a full include of processing_task_queue.hpp is not needed here.
class ProcessingTaskQueue;

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

    virtual outcome::result<SGProcessing::SubTaskResult> ProcessSubTask(
        const SGProcessing::SubTask& subTask, uint32_t initialHashCode) = 0;


    virtual float GetProgress() const { return 0.0f; }

    virtual std::shared_ptr<ProcessingTaskQueue> GetTaskQueue() const { return nullptr; }
};

} // namespace sgns::processing

#endif // GRPC_FOR_SUPERGENIUS_PROCESSING_CORE_HPP

Updated on 2026-10-06 at 13:34:21 +0000