aboutsummaryrefslogblamecommitdiffstats
path: root/yt/cpp/mapreduce/client/client_writer.h
blob: 010a88a8ffb90d0712c473e96004e4628138e26e (plain) (tree)








































                                                                                
#pragma once

#include <yt/cpp/mapreduce/common/fwd.h>

#include <yt/cpp/mapreduce/http/requests.h>
#include <yt/cpp/mapreduce/interface/io.h>

namespace NYT {

struct TTableWriterOptions;
class TRetryfulWriter;

////////////////////////////////////////////////////////////////////////////////

class TClientWriter
    : public IProxyOutput
{
public:
    TClientWriter(
        const TRichYPath& path,
        IClientRetryPolicyPtr clientRetryPolicy,
        ITransactionPingerPtr transactionPinger,
        const TClientContext& context,
        const TTransactionId& transactionId,
        const TMaybe<TFormat>& format,
        const TTableWriterOptions& options);

    size_t GetStreamCount() const override;
    IOutputStream* GetStream(size_t tableIndex) const override;
    void OnRowFinished(size_t tableIndex) override;
    void Abort() override;

private:
    ::TIntrusivePtr<TRawTableWriter> RawWriter_;

    const size_t BUFFER_SIZE = 64 << 20;
};

////////////////////////////////////////////////////////////////////////////////


} // namespace NYT