#pragma once

#include "indexer_proxy_specific.h"
#include "request_opts.h"
#include "common_task.h"

#include <saas/indexerproxy/adapters/interface_adapter.h>
#include <saas/indexerproxy/configs/config.h>
#include <saas/indexerproxy/context/document.h>

#include <saas/library/authorization/auth.h>
#include <saas/library/daemon_base/metrics/servicemetrics.h>

#include <saas/util/queue.h>
#include <saas/util/destroyer.h>

class TSenderTask: public TCommonSenderTask {
public:
    TSenderTask(TTaskExecutor& executor, TFinishExecutor& finishExecutor, IAdapterContext* context, TStaticServiceMetrics& metrics, ISenderTask::TDestroyer& destroyer);

    virtual int DoFillDocuments(TAdaptersManager& processor) override {
        return processor.FillDocuments(*this);
    }
};
