blob: 071a29b27de2840c24b0d5ac6c9631b1dd4eb482 [file] [log] [blame]
J. Duke319a3b92007-12-01 00:00:00 +00001/*
2 * Copyright 2004 Sun Microsystems, Inc. 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. Sun designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Sun in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
22 * CA 95054 USA or visit www.sun.com if you need additional information or
23 * have any questions.
24 */
25
26package sun.jvmstat.monitor;
27
28import sun.management.counter.Units;
29import sun.management.counter.Variability;
30
31/**
32 * Interface provided by Instrumentation Monitoring Objects.
33 *
34 * @author Brian Doherty
35 * @since 1.5
36 */
37public interface Monitor {
38
39 /**
40 * Returns the name of this instrumentation object.
41 *
42 * @return String - the name assigned to this instrumentation monitoring
43 * object
44 */
45 String getName();
46
47 /**
48 * Returns the base name of this instrumentation object.
49 * The base name is the component of the name following the last
50 * "." character in the name.
51 *
52 * @return String - the base name of the name assigned to this
53 * instrumentation monitoring object.
54 */
55 String getBaseName();
56
57 /**
58 * Returns the Units for this instrumentation monitoring object.
59 *
60 * @return Units - the units of measure attribute
61 */
62 Units getUnits();
63
64 /**
65 * Returns the Variability for this instrumentation object.
66 *
67 *@return Variability - the variability attribute
68 */
69 Variability getVariability();
70
71 /**
72 * Test if the instrumentation object is a vector type.
73 *
74 * @return boolean - true if this instrumentation object is a vector type,
75 * false otherwise.
76 */
77 boolean isVector();
78
79 /**
80 * Return the length of the vector.
81 * @return int - the length of the vector or zero if this instrumentation
82 * object is a scalar type.
83 */
84 int getVectorLength();
85
86 /**
87 * Test if the instrumentation object is supported.
88 */
89 boolean isSupported();
90
91 /**
92 * Return an Object that encapsulates this instrumentation object's
93 * current data value.
94 */
95 Object getValue();
96}