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

com.github.lontime.shaded.org.redisson.api.RLongAdder Maven / Gradle / Ivy

The newest version!
/**
 * Copyright (c) 2013-2021 Nikita Koksharov
 *
 * 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.github.lontime.shaded.org.redisson.api;

import java.util.concurrent.TimeUnit;

/**
 * Distributed implementation of {@link java.util.concurrent.atomic.LongAdder}
 * 

* Internal state maintained on client side. * * @author Nikita Koksharov * */ public interface RLongAdder extends RExpirable, RDestroyable { /** * Adds value * * @param x - value */ void add(long x); /** * Increments value */ void increment(); /** * Decrements value */ void decrement(); /** * Accumulates sum across all RLongAdder instances * * @return accumulated sum */ long sum(); /** * Resets value across all RLongAdder instances */ void reset(); /** * Accumulates sum across all RLongAdder instances * * @return accumulated sum */ RFuture sumAsync(); /** * Accumulates sum across all RLongAdder instances * within defined timeout. * * @param timeout for accumulation * @param timeUnit for timeout * * @return accumulated sum */ RFuture sumAsync(long timeout, TimeUnit timeUnit); /** * Resets value across all RLongAdder instances * * @return void */ RFuture resetAsync(); /** * Resets value across all RLongAdder instances * within defined timeout. * * @param timeout for reset * @param timeUnit for timeout * * @return void */ RFuture resetAsync(long timeout, TimeUnit timeUnit); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy