1 package org.apache.commons.jcs3.auxiliary.disk.behavior;
2
3 /*
4 * Licensed to the Apache Software Foundation (ASF) under one
5 * or more contributor license agreements. See the NOTICE file
6 * distributed with this work for additional information
7 * regarding copyright ownership. The ASF licenses this file
8 * to you under the Apache License, Version 2.0 (the
9 * "License"); you may not use this file except in compliance
10 * with the License. You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing,
15 * software distributed under the License is distributed on an
16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17 * KIND, either express or implied. See the License for the
18 * specific language governing permissions and limitations
19 * under the License.
20 */
21
22 import java.io.File;
23
24 import org.apache.commons.jcs3.auxiliary.AuxiliaryCacheAttributes;
25
26 /**
27 * Common disk cache attributes.
28 */
29 public interface IDiskCacheAttributes
30 extends AuxiliaryCacheAttributes
31 {
32 enum DiskLimitType {
33 /** limit elements by count (default) */
34 COUNT,
35 /** limit elements by their size */
36 SIZE
37 }
38 /**
39 * This is the default purgatory size limit. Purgatory is the area where
40 * items to be spooled are temporarily stored. It basically provides access
41 * to items on the to-be-spooled queue.
42 */
43 int MAX_PURGATORY_SIZE_DEFAULT = 5000;
44
45 /**
46 * Sets the diskPath attribute of the IJISPCacheAttributes object
47 * <p>
48 * @param path
49 * The new diskPath value
50 */
51 void setDiskPath( String path );
52
53 /**
54 * Gets the diskPath attribute of the attributes object
55 * <p>
56 * @return The diskPath value
57 */
58 File getDiskPath();
59
60 /**
61 * Gets the maxKeySize attribute of the DiskCacheAttributes object
62 * <p>
63 * @return The maxPurgatorySize value
64 */
65 int getMaxPurgatorySize();
66
67 /**
68 * Sets the maxPurgatorySize attribute of the DiskCacheAttributes object
69 * <p>
70 * @param maxPurgatorySize
71 * The new maxPurgatorySize value
72 */
73 void setMaxPurgatorySize( int maxPurgatorySize );
74
75 /**
76 * Get the amount of time in seconds we will wait for elements to move to
77 * disk during shutdown for a particular region.
78 * <p>
79 * @return the time in seconds.
80 */
81 int getShutdownSpoolTimeLimit();
82
83 /**
84 * Sets the amount of time in seconds we will wait for elements to move to
85 * disk during shutdown for a particular region.
86 * <p>
87 * This is how long we give the event queue to empty.
88 * <p>
89 * The default is 60 seconds.
90 * <p>
91 * @param shutdownSpoolTimeLimit
92 * the time in seconds
93 */
94 void setShutdownSpoolTimeLimit( int shutdownSpoolTimeLimit );
95
96 /**
97 * If this is true then remove all is not prohibited.
98 * <p>
99 * @return boolean
100 */
101 boolean isAllowRemoveAll();
102
103 /**
104 * If this is false, then remove all requests will not be honored.
105 * <p>
106 * This provides a safety mechanism for the persistent store.
107 * <p>
108 * @param allowRemoveAll
109 */
110 void setAllowRemoveAll( boolean allowRemoveAll );
111
112 /**
113 * set the type of the limit of the cache size
114 * @param diskLimitType COUNT - limit by count of the elements, SIZE, limit by sum of element's size
115 */
116 void setDiskLimitType(DiskLimitType diskLimitType);
117
118 /**
119 * Translates and stores String values of DiskLimitType
120 *
121 * Allowed values: "COUNT" and "SIZE"
122 * @param diskLimitTypeName
123 */
124 void setDiskLimitTypeName(String diskLimitTypeName);
125
126 /**
127 *
128 * @return active DiskLimitType
129 */
130 DiskLimitType getDiskLimitType();
131 }