Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  Counter.kt   Sprache: unbekannt

 
Spracherkennung für: .kt vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

package ch.threema.app.utils

/**
 * A [Counter] that can be used whenever things have to be counted and for any reason
 * a simple variable will not do.
 * It also allows counting 'steps' where a step consist of multiple counts. The step size
 * can be defined using the [stepSize] constructor parameter.
 *
 * @param stepSize The number of counts that make a step. Must be greater than zero.
 *                 Defaults to one.
 *
 * @throws IllegalArgumentException if [stepSize] is <= 0
 */
class Counter(private val stepSize: Long) {
    init {
        require(stepSize > 0) { "stepSize must be > 0" }
    }

    private var _count = 0L
    private var _steps = 0L

    constructor() : this(1)

    /**
     * @return the current count of this [Counter]
     */
    val count: Long
        get() = _count

    /**
     * @return The current number of steps this counter has encountered so far.
     *         Note that the number of steps can be reset to zero, when
     *         [getAndResetSteps] is used.
     */
    val steps: Long
        get() = _steps

    /**
     * Increment the value of this counter by one.
     */
    fun count() {
        _count++
        if ((_count % stepSize) == 0L) {
            _steps++
        }
    }

    /**
     * Get the counted steps if they exceed [threshold].
     * If the [threshold] is exceeded the step counter is reset to zero.
     *
     * @return number of steps if [threshold] is exceeded, 0L otherwise.
     */
    fun getAndResetSteps(threshold: Long): Long {
        if (_steps < threshold) {
            return 0L
        }
        val steps = _steps
        _steps = 0
        return steps
    }

    override fun toString(): String {
        return "$_count"
    }
}

[Dauer der Verarbeitung: 0.1 Sekunden, vorverarbeitet 2026-06-10]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik