View Javadoc

1   package net.sf.jperfprobe;
2   
3   import java.util.*;
4   
5   /**
6    * Created by IntelliJ IDEA.
7    * User: tel
8    * Date: Aug 28, 2009
9    * Time: 12:23:26 AM
10   * To change this template use File | Settings | File Templates.
11   */
12  public interface ProbeManager {
13      /**
14       * Put a probe into the manager, if the probe exist it will be overwritten. This makes it possible
15       * to create a Probe outside the ProbeManager and insert it later.
16       *
17       * @param probeName
18       * @param probe
19       */
20      void put(String probeName, Probe probe);
21  
22      /**
23       * Get a result for a given probe
24       *
25       * @param probeName
26       * @return Result
27       */
28      Result getResult(String probeName);
29  
30      /**
31       * Get all the results
32       *
33       * @return
34       */
35      Collection<Result> getResults();
36  
37      /**
38       * Get instance of a named probe, if it is non existent, a probe will be created.
39       * There will be created a probe for each thread.
40       *
41       * @param probeName identifying name of probe
42       * @return probe, null if it cant look it up
43       */
44      Probe getProbeInstance(String probeName);
45  
46      /**
47       * Start probe, identified by probeName, if the probe does not exist, it will be created. see getProbeInstance
48       *
49       * @param probeName name of existing or new probe.
50       */
51      Probe start(String probeName);
52  
53      /**
54       * Start probe, this probe is global for all threads, no thread private
55       * @param probeName
56       * @return
57       */
58      Probe startSingle(String probeName);
59  
60      /**
61       * Stop timing. If its non existent, no time or sample will be registered.
62       *
63       * @param probeName name of probe to stop
64       */
65      void stop(String probeName);
66  
67      /**
68       * Add a sample from a probe. The probe does not need to be managed by ProbeManager
69       *
70       * @param p
71       */
72      void addSampleFromProbe(Probe p);
73  
74      /**
75       * Clear result for named probe
76       *
77       * @param probeName
78       */
79      void clear(String probeName);
80  
81      /**
82       * Clear results for all probes
83       */
84      void clear();
85  
86      /**
87       * Disable probe
88       *
89       * @param probeName
90       */
91      void disable(String probeName);
92  
93      /**
94       * Disable all probes.
95       */
96      void disable();
97  
98      /**
99       * Enable a named probe
100      *
101      * @param probeName
102      */
103     void enable(String probeName);
104 
105     /**
106      * Enable all probes.
107      */
108     void enable();
109 
110     /**
111      * Set the presentation unit for presentation.
112      *
113      * @param p presentation to set
114      */
115     void setPresentation(ProbeManagerImpl.Presentation p);
116 
117     /**
118      * The the # of first samples to skip
119      * @return
120      */
121     int getFirstSamplesToSkip();
122 
123     /**
124      * Set how many samples to skip in the calculation of statistics. If set to ie. 5, the first 5 samples will
125      * not be taken into account when calculating max/min/n#samples and average.
126      *
127      * @param _firstSamplesToSkip
128      */
129     void setFirstSamplesToSkip(int _firstSamplesToSkip);
130 
131     /**
132      * Get the current presentation for the manager
133      *
134      * @return presentation
135      */
136     ProbeManagerImpl.Presentation getPresentation();
137 
138     /**
139      * Set the Time implementation.
140      *
141      * @param tim
142      */
143     void setTime(Time tim);
144 
145     /**
146      * Get the time implementation
147      *
148      * @return
149      */
150     Time getTime();
151 
152     /**
153      * Get result as a string
154      *
155      * @param probe
156      * @return result
157      */
158     String toString(String probe);
159 
160     /**
161      * Get all samples from a probe, as a string newline delimited
162      *
163      * @param probe
164      * @return samples
165      */
166     long[] getSamples(String probe);
167 
168     /**
169      * Get all probe names in the ProbeManager
170      *
171      * @return probename
172      */
173     String[] getNames();
174 }