#pragma once #include #include #include namespace NYT::NYqlPlugin { using namespace NYql::NProgressMerger; using namespace NYson; ////////////////////////////////////////////////////////////////////////////// class TNodeProgress : public TNodeProgressBase { public: TNodeProgress(const NYql::TOperationProgress& p); void Serialize(::NYson::TYsonWriter& yson) const; }; ////////////////////////////////////////////////////////////////////////////// class TProgressMerger : public ITaskProgressMerger { public: void MergeWith(const NYql::TOperationProgress& progress) override; void AbortAllUnfinishedNodes() override; bool HasChangesSinceLastFlush() const; TString ToYsonString(); private: bool HasChanges_ = false; THashMap NodesMap_; }; ////////////////////////////////////////////////////////////////////////////// } // namespace NYT::NYqlPlugin