Skip to content

src/processing/processing_subtask_enqueuer_impl.hpp

Namespaces

Name
sgns
sgns::processing

Classes

Name
class sgns::processing::SubTaskEnqueuerImpl

Source code

#ifndef SUPERGENIUS_PROCESSING_SUBTASK_ENQUEUER_IMPL_HPP
#define SUPERGENIUS_PROCESSING_SUBTASK_ENQUEUER_IMPL_HPP

#include <list>
#include <string>

#include "base/logger.hpp"
#include "processing/processing_subtask_enqueuer.hpp"
#include "processing/processing_task_queue.hpp"

namespace sgns::processing
{
    // Encapsulates subtask queue construction algorithm
    class SubTaskEnqueuerImpl : public SubTaskEnqueuer
    {
    public:
        SubTaskEnqueuerImpl( std::shared_ptr<ProcessingTaskQueue> taskQueue );

        outcome::result<SGProcessing::Task>  EnqueueSubTasks( std::string &subTaskQueueId, std::list<SGProcessing::SubTask> &subTasks ) override;
        void                                MarkTaskBad( const std::string &taskKey ) override;
    private:
        std::shared_ptr<ProcessingTaskQueue> m_taskQueue;
        sgns::base::Logger                   m_logger = sgns::base::createLogger( "SubTaskEnqueuerImpl" );
    };
}

#endif // SUPERGENIUS_PROCESSING_SUBTASK_ENQUEUER_IMPL_HPP

Updated on 2026-03-04 at 13:10:44 -0800