1 package org.tanukisoftware.wrapper.event; 2 3 /* 4 * Copyright (c) 1999, 2006 Tanuki Software Inc. 5 * 6 * Permission is hereby granted, free of charge, to any person 7 * obtaining a copy of the Java Service Wrapper and associated 8 * documentation files (the "Software"), to deal in the Software 9 * without restriction, including without limitation the rights 10 * to use, copy, modify, merge, publish, distribute, sub-license, 11 * and/or sell copies of the Software, and to permit persons to 12 * whom the Software is furnished to do so, subject to the 13 * following conditions: 14 * 15 * The above copyright notice and this permission notice shall be 16 * included in all copies or substantial portions of the Software. 17 * 18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 19 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 20 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 21 * NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 22 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 23 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 24 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 25 * OTHER DEALINGS IN THE SOFTWARE. 26 */ 27 28 /** 29 * WrapperEventListeners can be registered with the WrapperManager class 30 * to receive WrapperEvents. 31 * 32 * @author Leif Mortenson <leif@tanukisoftware.com> 33 */ 34 public interface WrapperEventListener 35 { 36 /** 37 * Enabling service events will cause the listener to receive 38 * WrapperServiceEvents. These events pertain to the Wrapper as a 39 * service. 40 */ 41 static long EVENT_FLAG_SERVICE = 0x1; 42 43 /** 44 * Enabling control events will cause the listener to receive 45 * WrapperControlEvents. There events are thrown whenever the 46 * Java process receives control events from the system. These 47 * include CTRL-C, HALT, TERM signals etc. 48 */ 49 static long EVENT_FLAG_CONTROL = 0x2; 50 51 /** 52 * Enabling core events will cause the listener to receive 53 * WrapperCoreEvents. These events provide information on the internal 54 * timing of the Wrapper. 55 * <p> 56 * WARNING - Great care should be taken when receiving events of this type. 57 * They are sent from within the Wrapper's internal timing thread. If the 58 * listner takes too much time working with the event, Wrapper performance 59 * could be adversely affected. If unsure, it is recommended that events 60 * of this type not be included. 61 */ 62 static long EVENT_FLAG_CORE = 0xf000000000000000L; 63 64 /** 65 * Called whenever a WrapperEvent is fired. The exact set of events that a 66 * listener will receive will depend on the mask supplied when 67 * WrapperManager.addWrapperEventListener was called to register the 68 * listener. 69 * <p> 70 * Listener implementations should never assume that they will only receive 71 * events of a particular type. To assure that events added to future 72 * versions of the Wrapper do not cause problems with user code, events 73 * should always be tested with "if ( event instanceof {EventClass} )" 74 * before casting it to a specific event type. 75 * 76 * @param event WrapperEvent which was fired. 77 */ 78 void fired( WrapperEvent event ); 79 } 80