01: /*
02: Copyright 2004 Philip Jacob <phil@whirlycott.com>
03: Seth Fitzsimmons <seth@note.amherst.edu>
04:
05: Licensed under the Apache License, Version 2.0 (the "License");
06: you may not use this file except in compliance with the License.
07: You may obtain a copy of the License at
08:
09: http://www.apache.org/licenses/LICENSE-2.0
10:
11: Unless required by applicable law or agreed to in writing, software
12: distributed under the License is distributed on an "AS IS" BASIS,
13: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: See the License for the specific language governing permissions and
15: limitations under the License.
16: */
17:
18: package com.whirlycott.cache;
19:
20: /**
21: * This interface defines the operations in a cache maintenance policy. A cache maintenance policy defines the set of
22: * rules that are used to automatically expire items that are stored in a particular cache.
23: *
24: * All policies must implement this interface and be configured in the whirlycache.xml configuration file.
25: *
26: * Each Cache has its own independent policy.
27: *
28: * @author Phil Jacob
29: */
30: public interface CacheMaintenancePolicy<K, V> {
31:
32: /**
33: * Performs housekeeping on the associated ManagedCache instance (typically removes Items based on varying criteria).
34: *
35: * @param managedCache
36: * @param maxSize
37: */
38: public void performMaintenance(ManagedCache<K, V> managedCache,
39: int maxSize);
40: }
|