All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.kafka.streams.processor.internals.TasksRegistry Maven / Gradle / Ivy

/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements. See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.kafka.streams.processor.internals;

import org.apache.kafka.common.TopicPartition;
import org.apache.kafka.streams.processor.TaskId;

import java.util.Collection;
import java.util.Map;
import java.util.Set;

public interface TasksRegistry {

    Map> drainPendingActiveTasksForTopologies(final Set currentTopologies);

    Map> drainPendingStandbyTasksForTopologies(final Set currentTopologies);

    void addPendingActiveTasksToCreate(final Map> pendingTasks);

    void addPendingStandbyTasksToCreate(final Map> pendingTasks);

    void clearPendingTasksToCreate();

    Set removePendingTaskToRecycle(final TaskId taskId);

    boolean hasPendingTasksToRecycle();

    void addPendingTaskToRecycle(final TaskId taskId, final Set inputPartitions);

    Set removePendingTaskToCloseReviveAndUpdateInputPartitions(final TaskId taskId);

    void addPendingTaskToCloseReviveAndUpdateInputPartitions(final TaskId taskId, final Set inputPartitions);

    Set removePendingTaskToUpdateInputPartitions(final TaskId taskId);

    void addPendingTaskToUpdateInputPartitions(final TaskId taskId, final Set inputPartitions);

    boolean removePendingTaskToAddBack(final TaskId taskId);

    void addPendingTaskToAddBack(final TaskId taskId);

    boolean removePendingTaskToCloseClean(final TaskId taskId);

    void addPendingTaskToCloseClean(final TaskId taskId);

    Set drainPendingTasksToInit();

    void addPendingTasksToInit(final Collection tasks);

    boolean hasPendingTasksToInit();

    boolean removePendingActiveTaskToSuspend(final TaskId taskId);

    void addPendingActiveTaskToSuspend(final TaskId taskId);

    void addActiveTasks(final Collection tasks);

    void addStandbyTasks(final Collection tasks);

    void addTask(final Task task);

    void removeTask(final Task taskToRemove);

    void replaceActiveWithStandby(final StandbyTask standbyTask);

    void replaceStandbyWithActive(final StreamTask activeTask);

    boolean updateActiveTaskInputPartitions(final Task task, final Set topicPartitions);

    void clear();

    Task activeTasksForInputPartition(final TopicPartition partition);

    Task task(final TaskId taskId);

    Collection tasks(final Collection taskIds);

    Collection activeTaskIds();

    Collection activeTasks();

    Set allTasks();

    Map allTasksPerId();

    Set allTaskIds();

    boolean contains(final TaskId taskId);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy