comparison graal/com.oracle.jvmci.debug/src/com/oracle/jvmci/debug/DebugMetric.java @ 21554:b1530a6cce8c

renamed com.oracle.graal.[debug|options|hotspotvmconfig]* modules to com.oracle.jvmci.[debug|options|hotspotvmconfig]* modules (JBS:GRAAL-53)
author Doug Simon <doug.simon@oracle.com>
date Tue, 26 May 2015 23:21:15 +0200
parents graal/com.oracle.graal.debug/src/com/oracle/graal/debug/DebugMetric.java@a7f216accfb5
children
comparison
equal deleted inserted replaced
21553:0910a9497b02 21554:b1530a6cce8c
1 /*
2 * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23 package com.oracle.jvmci.debug;
24
25 /**
26 * A counter for some value of interest.
27 */
28 public interface DebugMetric {
29
30 /**
31 * Adds 1 to this counter if metering is {@link Debug#isMeterEnabled() enabled} or this is an
32 * {@linkplain #isConditional() unconditional} metric.
33 */
34 void increment();
35
36 /**
37 * Adds {@code value} to this counter if metering is {@link Debug#isMeterEnabled() enabled} or
38 * this is an {@linkplain #isConditional() unconditional} metric.
39 */
40 void add(long value);
41
42 /**
43 * Sets a flag determining if this counter is only enabled if metering is
44 * {@link Debug#isMeterEnabled() enabled}.
45 */
46 void setConditional(boolean flag);
47
48 /**
49 * Determines if this counter is only enabled if metering is {@link Debug#isMeterEnabled()
50 * enabled}.
51 */
52 boolean isConditional();
53
54 /**
55 * Gets the current value of this metric.
56 */
57 long getCurrentValue();
58
59 /**
60 * Determines if this counter is enabled (either conditionally or unconditionally).
61 */
62 default boolean isEnabled() {
63 return !isConditional() || Debug.isMeterEnabled();
64 }
65 }