01: /****************************************************************
02: * Licensed to the Apache Software Foundation (ASF) under one *
03: * or more contributor license agreements. See the NOTICE file *
04: * distributed with this work for additional information *
05: * regarding copyright ownership. The ASF licenses this file *
06: * to you under the Apache License, Version 2.0 (the *
07: * "License"); you may not use this file except in compliance *
08: * with the License. You may obtain a copy of the License at *
09: * *
10: * http://www.apache.org/licenses/LICENSE-2.0 *
11: * *
12: * Unless required by applicable law or agreed to in writing, *
13: * software distributed under the License is distributed on an *
14: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
15: * KIND, either express or implied. See the License for the *
16: * specific language governing permissions and limitations *
17: * under the License. *
18: ****************************************************************/package org.apache.james.util.watchdog;
19:
20: /**
21: * This interface represents an abstract watchdog process that serves to
22: * monitor a situation and triggers an action under an implementation-specific
23: * trigger condition.
24: *
25: */
26: public interface Watchdog {
27:
28: /**
29: * Start this Watchdog, causing it to begin monitoring. The Watchdog can
30: * be stopped and restarted.
31: */
32: void start();
33:
34: /**
35: * Reset this Watchdog. Resets any conditions in the implementations
36: * (time to expiration, etc.) to their original values
37: */
38: void reset();
39:
40: /**
41: * Stop this Watchdog, terminating the monitoring condition. The monitor
42: * can be restarted with a call to startWatchdog.
43: */
44: void stop();
45: }
|