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

org.jetbrains.kotlin.gradle.fus.GradleBuildFusStatisticsService.kt Maven / Gradle / Ivy

/*
 * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
 * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
 */
package org.jetbrains.kotlin.gradle.fus

import org.gradle.api.Task
import org.gradle.api.provider.Property
import org.gradle.api.tasks.Internal


/**
 * A service interface for build FUS statistics reporting.
 */
interface GradleBuildFusStatisticsService {

    /**
     * Reports a metric by its name and optionally subproject.
     *
     * @param name the metric name
     * @param value  the metric value.
     * @param subprojectName the subproject name for which the metric is being reported.
     */
    fun reportMetric(name: String, value: String, subprojectName: String? = null)

    /**
     * @see org.jetbrains.kotlin.gradle.fus.GradleBuildFusStatisticsService.reportMetric(java.lang.String, java.lang.String, java.lang.String)
     */
    fun reportMetric(name: String, value: Number, subprojectName: String? = null)

    /**
     * @see org.jetbrains.kotlin.gradle.fus.GradleBuildFusStatisticsService.reportMetric(java.lang.String, java.lang.String, java.lang.String)
     */
    fun reportMetric(name: String, value: Boolean, subprojectName: String? = null)

}

/**
 * This task interface provide access to GradleBuildFusStatisticsService.
 *
 * @property fusStatisticsBuildService holds an instance of GradleBuildFusStatisticsService.
 */
interface UsesGradleBuildFusStatisticsService : Task {
    @get:Internal
    val fusStatisticsBuildService: Property
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy