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

com.swirlds.common.wiring.schedulers.internal.Squelcher Maven / Gradle / Ivy

Go to download

Swirlds is a software platform designed to build fully-distributed applications that harness the power of the cloud without servers. Now you can develop applications with fairness in decision making, speed, trust and reliability, at a fraction of the cost of traditional server-based platforms.

There is a newer version: 0.56.6
Show newest version
/*
 * Copyright (C) 2024 Hedera Hashgraph, LLC
 *
 * Licensed 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 com.swirlds.common.wiring.schedulers.internal;

/**
 * Manages whether or not tasks scheduled by a given task scheduler should be squelched.
 * 

* Squelching is a mechanism that allows a task scheduler to temporarily suppress the execution of tasks. When a * scheduler is being squelched, any new tasks that are received are simply discarded. Any previously scheduled tasks * are either cleared, or executed as a no-op. */ public interface Squelcher { /** * Start squelching, and continue doing so until {@link #stopSquelching()} is called. * * @throws UnsupportedOperationException if squelching is not supported by this scheduler * @throws IllegalStateException if scheduler is already squelching */ void startSquelching(); /** * Stop squelching. * * @throws UnsupportedOperationException if squelching is not supported by this scheduler * @throws IllegalStateException if scheduler is not currently squelching */ void stopSquelching(); /** * Get whether or not tasks created by the relevant scheduler should be squelched. *

* If squelching isn't enabled, then this method will always return false. * * @return true if tasks should be squelched, false otherwise */ boolean shouldSquelch(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy