ClickHouse/dbms/src/Processors/ISource.h
2019-10-21 18:16:08 +03:00

33 lines
541 B
C++

#pragma once
#include <Processors/IProcessor.h>
namespace DB
{
class ISource : public IProcessor
{
protected:
OutputPort & output;
bool has_input = false;
bool finished = false;
bool got_exception = false;
Port::Data current_chunk;
virtual Chunk generate() = 0;
public:
ISource(Block header);
Status prepare() override;
void work() override;
OutputPort & getPort() { return output; }
const OutputPort & getPort() const { return output; }
};
using SourcePtr = std::shared_ptr<ISource>;
}