#ifndef OMNIFLINK_INIT_CONTEXT_IMPL_H
#define OMNIFLINK_INIT_CONTEXT_IMPL_H
#include <optional>
#include <cstdint>
#include "streaming/api/operators/StreamingRuntimeContext.h"
#include "streaming/runtime/tasks/ProcessingTimeServiceImpl.h"
template <typename K>
class InitContextImpl {
private:
ProcessingTimeServiceImpl* processingTimeService;
std::optional<uint64_t> restoredCheckpointId;
StreamingRuntimeContext<K>* runtimeContext;
public:
InitContextImpl(
StreamingRuntimeContext<K>* runtimeContext,
ProcessingTimeServiceImpl* processingTimeService,
std::optional<uint64_t> restoredCheckpointId)
: runtimeContext(runtimeContext),
processingTimeService(processingTimeService),
restoredCheckpointId(restoredCheckpointId)
{
}
int getNumberOfParallelSubtasks()
{
return runtimeContext->getNumberOfParallelSubtasks();
}
ProcessingTimeServiceImpl* getProcessingTimeService()
{
return processingTimeService;
}
int getSubtaskId()
{
return runtimeContext->getIndexOfThisSubtask();
}
std::optional<uint64_t> getRestoredCheckpointId()
{
return restoredCheckpointId;
}
};
#endif