KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > excalibur > instrument > manager > InstrumentDescriptorLocal


1 /*
2
3  ============================================================================
4                    The Apache Software License, Version 1.1
5  ============================================================================
6  
7  Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
8  
9  Redistribution and use in source and binary forms, with or without modifica-
10  tion, are permitted provided that the following conditions are met:
11  
12  1. Redistributions of source code must retain the above copyright notice,
13     this list of conditions and the following disclaimer.
14  
15  2. Redistributions in binary form must reproduce the above copyright notice,
16     this list of conditions and the following disclaimer in the documentation
17     and/or other materials provided with the distribution.
18  
19  3. The end-user documentation included with the redistribution, if any, must
20     include the following acknowledgment: "This product includes software
21     developed by the Apache Software Foundation (http://www.apache.org/)."
22     Alternately, this acknowledgment may appear in the software itself, if
23     and wherever such third-party acknowledgments normally appear.
24  
25  4. The names "Jakarta", "Avalon", "Excalibur" and "Apache Software Foundation"
26     must not be used to endorse or promote products derived from this software
27     without prior written permission. For written permission, please contact
28     apache@apache.org.
29  
30  5. Products derived from this software may not be called "Apache", nor may
31     "Apache" appear in their name, without prior written permission of the
32     Apache Software Foundation.
33  
34  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
35  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
36  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
37  APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
38  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
39  DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
40  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
41  ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
42  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
43  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
44  
45  This software consists of voluntary contributions made by many individuals
46  on behalf of the Apache Software Foundation. For more information on the
47  Apache Software Foundation, please see <http://www.apache.org/>.
48  
49 */

50 package org.apache.excalibur.instrument.manager;
51
52 import org.apache.excalibur.instrument.manager.interfaces.InstrumentDescriptor;
53 import org.apache.excalibur.instrument.manager.interfaces.NoSuchInstrumentSampleException;
54
55 /**
56  * Describes a Instrument and acts as a Proxy to protect the original
57  * Instrument. Methods defined by the Local interface should only
58  * be accessed from within the same JVM for performance reasons.
59  *
60  * @author <a HREF="mailto:leif@tanukisoftware.com">Leif Mortenson</a>
61  * @version CVS $Revision: 1.2 $ $Date: 2003/02/20 17:08:18 $
62  * @since 4.1
63  */

64 public interface InstrumentDescriptorLocal
65     extends InstrumentDescriptor
66 {
67     /**
68      * Adds a CounterInstrumentListener to the list of listeners which will
69      * receive updates of the value of the Instrument.
70      *
71      * @param listener CounterInstrumentListener which will start receiving
72      * profile updates.
73      *
74      * @throws IllegalStateException If the Instrument's type is not
75      * InstrumentManager.PROFILE_POINT_TYPE_COUNTER.
76      */

77     void addCounterInstrumentListener( CounterInstrumentListener listener );
78     
79     /**
80      * Removes a InstrumentListener from the list of listeners which will
81      * receive profile events.
82      *
83      * @param listener InstrumentListener which will stop receiving profile
84      * events.
85      *
86      * @throws IllegalStateException If the Instrument's type is not
87      * InstrumentManager.PROFILE_POINT_TYPE_COUNTER.
88      */

89     void removeCounterInstrumentListener( CounterInstrumentListener listener );
90     
91     /**
92      * Adds a ValueInstrumentListener to the list of listeners which will
93      * receive updates of the value of the Instrument.
94      *
95      * @param listener ValueInstrumentListener which will start receiving
96      * profile updates.
97      *
98      * @throws IllegalStateException If the Instrument's type is not
99      * InstrumentManager.PROFILE_POINT_TYPE_VALUE.
100      */

101     void addValueInstrumentListener( ValueInstrumentListener listener );
102         
103     /**
104      * Removes a InstrumentListener from the list of listeners which will
105      * receive profile events.
106      *
107      * @param listener InstrumentListener which will stop receiving profile
108      * events.
109      *
110      * @throws IllegalStateException If the Instrument's type is not
111      * InstrumentManager.PROFILE_POINT_TYPE_VALUE.
112      */

113     void removeValueInstrumentListener( ValueInstrumentListener listener );
114
115     /**
116      * Returns a InstrumentSampleDescriptorLocal based on its name.
117      *
118      * @param instrumentSampleName Name of the InstrumentSample being requested.
119      *
120      * @return A Descriptor of the requested InstrumentSample.
121      *
122      * @throws NoSuchInstrumentSampleException If the specified InstrumentSample
123      * does not exist.
124      */

125     InstrumentSampleDescriptorLocal getInstrumentSampleDescriptorLocal(
126                                                     String JavaDoc instrumentSampleName )
127         throws NoSuchInstrumentSampleException;
128     
129     /**
130      * Returns a InstrumentSampleDescriptorLocal based on its name. If the requested
131      * sample is invalid in any way, then an expired Descriptor will be
132      * returned.
133      *
134      * @param sampleDescription Description to assign to the new Sample.
135      * @param sampleInterval Sample interval to use in the new Sample.
136      * @param sampleLease Requested lease time for the new Sample in
137      * milliseconds. The InstrumentManager may grant a
138      * lease which is shorter or longer than the requested
139      * period.
140      * @param sampleType Type of sample to request. Must be one of the
141      * following: InstrumentManagerClient.INSTRUMENT_SAMPLE_TYPE_COUNTER,
142      * InstrumentManagerClient.INSTRUMENT_SAMPLE_TYPE_MINIMUM,
143      * InstrumentManagerClient.INSTRUMENT_SAMPLE_TYPE_MAXIMUM,
144      * InstrumentManagerClient.INSTRUMENT_SAMPLE_TYPE_MEAN.
145      *
146      * @return A Descriptor of the requested InstrumentSample.
147      *
148      * @throws NoSuchInstrumentSampleException If the specified InstrumentSample
149      * does not exist.
150      */

151     InstrumentSampleDescriptorLocal createInstrumentSampleLocal( String JavaDoc sampleDescription,
152                                                                  long sampleInterval,
153                                                                  int sampleSize,
154                                                                  long sampleLease,
155                                                                  int sampleType );
156     
157     /**
158      * Returns an array of Descriptors for the InstrumentSamples configured for this
159      * Instrument.
160      *
161      * @return An array of Descriptors for the InstrumentSamples configured for this
162      * Instrument.
163      */

164     InstrumentSampleDescriptorLocal[] getInstrumentSampleDescriptorLocals();
165 }
166
Popular Tags