1 // Copyright (C) 2004, 2005, 2006, 2007 Philip Aston
2 // All rights reserved.
3 //
4 // This file is part of The Grinder software distribution. Refer to
5 // the file LICENSE which is part of The Grinder distribution for
6 // licensing details. The Grinder distribution is available on the
7 // Internet at http://grinder.sourceforge.net/
8 //
9 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
10 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
11 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
12 // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
13 // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
14 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
15 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
16 // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
17 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
18 // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
19 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
20 // OF THE POSSIBILITY OF SUCH DAMAGE.
21
22 package net.grinder.engine.process;
23
24 import net.grinder.common.SSLContextFactory;
25 import net.grinder.common.ThreadLifeCycleListener;
26 import net.grinder.plugininterface.PluginThreadContext;
27 import net.grinder.script.Statistics.StatisticsForTest;
28
29 import org.slf4j.Marker;
30
31
32 /**
33 * Package scope.
34 *
35 * @author Philip Aston
36 */
37 interface ThreadContext extends PluginThreadContext {
38
39 DispatchResultReporter getDispatchResultReporter();
40
41 SSLContextFactory getThreadSSLContextFactory();
42
43 void setThreadSSLContextFactory(SSLContextFactory threadSSLFactory);
44
45 void registerThreadLifeCycleListener(ThreadLifeCycleListener listener);
46
47 void removeThreadLifeCycleListener(ThreadLifeCycleListener listener);
48
49 void fireBeginThreadEvent();
50
51 void fireBeginRunEvent();
52
53 void fireEndRunEvent();
54
55 void fireBeginShutdownEvent();
56
57 void fireEndThreadEvent();
58
59 void pushDispatchContext(DispatchContext dispatchContext)
60 throws ShutdownException;
61
62 void popDispatchContext();
63
64 StatisticsForTest getStatisticsForCurrentTest();
65
66 StatisticsForTest getStatisticsForLastTest();
67
68 void setDelayReports(boolean b);
69
70 void reportPendingDispatchContext();
71
72 void shutdown();
73
74 /**
75 * @param run The current run number. Pass -1 to indicate that there
76 * is no current run.
77 */
78 void setCurrentRunNumber(int run);
79
80 Marker getLogMarker();
81 }
82