#pragma once #include namespace NYT { class IProxyOutput; class TNodeTableWriter; //////////////////////////////////////////////////////////////////////////////// class TProtoTableWriter : public IProtoWriterImpl { public: TProtoTableWriter( THolder output, TVector&& descriptors); ~TProtoTableWriter() override; void AddRow(const Message& row, size_t tableIndex) override; void AddRow(Message&& row, size_t tableIndex) override; size_t GetBufferMemoryUsage() const override; size_t GetTableCount() const override; void FinishTable(size_t) override; void Abort() override; private: THolder NodeWriter_; TVector Descriptors_; }; //////////////////////////////////////////////////////////////////////////////// class TLenvalProtoTableWriter : public IProtoWriterImpl { public: TLenvalProtoTableWriter( THolder output, TVector&& descriptors); ~TLenvalProtoTableWriter() override; void AddRow(const Message& row, size_t tableIndex) override; void AddRow(Message&& row, size_t tableIndex) override; size_t GetBufferMemoryUsage() const override; size_t GetTableCount() const override; void FinishTable(size_t) override; void Abort() override; private: THolder Output_; TVector Descriptors_; }; // Sometime useful outside mapreduce/yt TNode MakeNodeFromMessage(const ::google::protobuf::Message& row); //////////////////////////////////////////////////////////////////////////////// } // namespace NYT