src/processing/processing_subtask_queue_accessor.hpp
Namespaces
Classes
Source code
#ifndef SUPERGENIUS_PROCESSING_SUBTASK_QUEUE_ACCESSOR_HPP
#define SUPERGENIUS_PROCESSING_SUBTASK_QUEUE_ACCESSOR_HPP
#include "processing/proto/SGProcessing.pb.h"
#include <boost/optional.hpp>
#include <list>
namespace sgns::processing
{
class SubTaskQueueAccessor
{
public:
using SubTaskGrabbedCallback = std::function<void( boost::optional<const SGProcessing::SubTask &> )>;
virtual ~SubTaskQueueAccessor() = default;
virtual bool ConnectToSubTaskQueue( std::function<void()> onSubTaskQueueConnectedEventSink ) = 0;
virtual bool AssignSubTasks( std::list<SGProcessing::SubTask> &subTasks ) = 0;
virtual void GrabSubTask( SubTaskGrabbedCallback onSubTaskGrabbedCallback ) = 0;
virtual void CompleteSubTask( const std::string &subTaskId,
const SGProcessing::SubTaskResult &subTaskResult ) = 0;
virtual bool CreateResultsChannel( const std::string &task_id ) = 0;
// @todo Add SetErrorsHandler method
};
}
#endif // SUPERGENIUS_PROCESSING_SUBTASK_QUEUE_ACCESSOR_HPP
Updated on 2026-03-04 at 13:10:44 -0800