1 /*
2 ~ Copyright 2006-2007 Nicolas De Loof.
3 ~
4 ~ Licensed under the Apache License, Version 2.0 (the "License");
5 ~ you may not use this file except in compliance with the License.
6 ~ You may obtain a copy of the License at
7 ~
8 ~ http://www.apache.org/licenses/LICENSE-2.0
9 ~
10 ~ Unless required by applicable law or agreed to in writing, software
11 ~ distributed under the License is distributed on an "AS IS" BASIS,
12 ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 ~ See the License for the specific language governing permissions and
14 ~ limitations under the License.
15 */
16 package org.jmonit.events;
17
18 /**
19 * @author <a href="mailto:nicolas.deloof@gmail.com">Nicolas De Loof</a>
20 */
21 public interface MonitoringEventBus
22 {
23
24 /**
25 * Adds the listener to the collection of listeners who will be notifed when
26 * any monitoring event occurs. <br/> If listener is <code>null</code>,
27 * no exception is thrown and no action is performed
28 *
29 * @param listener the monitoring listener
30 * @see #removeListener(org.jmonit.events.MonitoringEventListener)
31 * @see MonitoringEventListener
32 */
33 public void addListener( final MonitoringEventListener listener );
34
35 /**
36 * Removes the transfer listener from the collection of listeners so it no
37 * longer receives transfer events. <br/> If listener is <code>null</code>
38 * or specified listener was not added to this
39 * <code>MonitoringEventSupport</code> object no exception is thrown and
40 * no action is performed
41 *
42 * @param listener the monitoring listener
43 * @see #addListener(org.jmonit.events.MonitoringEventListener)
44 */
45 public void removeListener( final MonitoringEventListener listener );
46
47 /**
48 * Returns whether the specified instance of monitoring listener was added
49 * to the collection of listeners who will be notifed when an transfer event
50 * occurs
51 *
52 * @param listener the transfer listener
53 * @return <code>true<code>
54 * if given listener was added to the collection of listeners
55 * <code>false</code> otherwise
56 * @see #addListener(org.jmonit.events.MonitoringEventListener)
57 */
58 public boolean hasListener( final MonitoringEventListener listener );
59
60 /**
61 * Dispatches the given <code>MonitoringEvent</code> to all registred
62 * listeners (calls method
63 * {@link MonitoringEventListener#onMonitoringEvent(MonitoringEvent)} on all
64 * of them}.
65 *
66 * @param event the MonitorTaggedEvent which will be dispached to listeners
67 */
68 public void fireMonitoringEvent( final MonitoringEvent event );
69
70 }