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

io.opentelemetry.sdk.metrics.internal.concurrent.LongAdder Maven / Gradle / Ivy

There is a newer version: 1.44.1
Show newest version
/*
 * Copyright The OpenTelemetry Authors
 * SPDX-License-Identifier: Apache-2.0
 */

package io.opentelemetry.sdk.metrics.internal.concurrent;

/**
 * Interface mirroring the {@link java.util.concurrent.atomic.LongAdder} API, with implementation
 * that varies based on availability of {@link java.util.concurrent.atomic.LongAdder}. This offers
 * compatibility for Android 21 without compromising performance in runtimes where {@link
 * java.util.concurrent.atomic.LongAdder} is available.
 *
 * 

This class is internal and is hence not for public use. Its APIs are unstable and can change * at any time. * * @see AdderUtil#createLongAdder() */ public interface LongAdder { /** * Equivalent to {@code add(1)}. * * @see java.util.concurrent.atomic.LongAdder#add(long) */ default void increment() { add(1L); } /** * Equivalent to {@code add(-1)}. * * @see java.util.concurrent.atomic.LongAdder#add(long) */ default void decrement() { add(-1L); } /** * Add the given value. * * @param x the value to add * @see java.util.concurrent.atomic.LongAdder#add(long) */ void add(long x); /** * Returns the current sum. * * @see java.util.concurrent.atomic.LongAdder#sum() */ long sum(); /** * Resets the variables maintaining the sum to zero. * * @see java.util.concurrent.atomic.LongAdder#reset() */ void reset(); /** * Equivalent in effect to {@link #sum()} followed by {@link #reset()}. * * @return the sum * @see java.util.concurrent.atomic.LongAdder#sumThenReset() */ long sumThenReset(); /** * Equivalent to {@link #sum()}. * * @return the sum * @see java.util.concurrent.atomic.LongAdder#toString() */ default long longValue() { return sum(); } /** * Returns the {@link #sum} as a {@code int} after a narrowing primitive conversion. * * @see java.util.concurrent.atomic.LongAdder#toString() */ default int intValue() { return (int) sum(); } /** * Returns the {@link #sum} as a {@code float} after a widening primitive conversion. * * @see java.util.concurrent.atomic.LongAdder#toString() */ default float floatValue() { return (float) sum(); } /** * Returns the {@link #sum} as a {@code double} after a widening primitive conversion. * * @see java.util.concurrent.atomic.LongAdder#doubleValue() () */ default double doubleValue() { return (double) sum(); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy