package dst.ass3.event;

import org.apache.flink.api.common.functions.RichFunction;
import org.apache.flink.configuration.Configuration;
import org.apache.flink.streaming.api.functions.source.SourceFunction;

import dst.ass3.event.model.domain.IUploadEventInfo;

/**
 * A RichFunction & SourceFunction for IUploadEventInfo objects.
 */
public interface IEventSourceFunction extends RichFunction, SourceFunction<IUploadEventInfo> {

    @Override
    void open(Configuration parameters) throws Exception;

    @Override
    void close() throws Exception;

    @Override
    void run(SourceContext<IUploadEventInfo> ctx) throws Exception;

    @Override
    void cancel();
}
