01: /*
02: * Copyright (c) 2001 by Matt Welsh and The Regents of the University of
03: * California. All rights reserved.
04: *
05: * Permission to use, copy, modify, and distribute this software and its
06: * documentation for any purpose, without fee, and without written agreement is
07: * hereby granted, provided that the above copyright notice and the following
08: * two paragraphs appear in all copies of this software.
09: *
10: * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
11: * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
12: * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
13: * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
14: *
15: * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
16: * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
17: * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
18: * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
19: * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
20: *
21: * Author: Matt Welsh <mdw@cs.berkeley.edu>
22: *
23: */
24:
25: package seda.sandStorm.api;
26:
27: /**
28: * An EventHandlerIF represents an event handler - the basic unit of
29: * computation in SandStorm. This is the basic interface which all
30: * application modules implement.
31: *
32: * @author Matt Welsh
33: */
34: public interface EventHandlerIF {
35:
36: /**
37: * Handle the event corresponding to the given QueueElementIF.
38: * This method is invoked by the system when a single event is
39: * pending for the event handler.
40: *
41: * @exception EventHandlerException The application may throw an
42: * exception to indicate an error condition during event processing.
43: */
44: public void handleEvent(QueueElementIF elem)
45: throws EventHandlerException;
46:
47: /**
48: * Handle the events corresponding to the given QueueElementIF array.
49: * This method is invoked when multiple events are pending for the
50: * event handler. The application may reorder, filter, or drop
51: * these events if it wishes to do so.
52: *
53: * @exception EventHandlerException The application may throw an
54: * exception to indicate an error condition during event processing.
55: */
56: public void handleEvents(QueueElementIF elemarr[])
57: throws EventHandlerException;
58:
59: /**
60: * Called when an event handler is initialized. This method should
61: * perform any initialization operations as required by the application.
62: *
63: * @param config The set of configuration parameters for the stage.
64: *
65: * @exception Exception The EventHandler can indicate an
66: * error to the runtime during initialization by throwing an
67: * Exception.
68: */
69: public void init(ConfigDataIF config) throws Exception;
70:
71: /**
72: * Called when an event handler is destroyed. This method should
73: * perform any cleanup or shutdown operations as required by the
74: * application before the event handler is removed from the system.
75: *
76: * @exception Exception The EventHandler can indicate an
77: * error to the runtime during shutdown by throwing an
78: * Exception.
79: */
80: public void destroy() throws Exception;
81:
82: }
|