1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.jetspeed.cache.disk;
18
19 import java.io.*;
20
21 /***
22 <p>
23 A way to store remote documents locally. This can increase performance by
24 eliminating TCP connection latency.
25 </p>
26
27 <p>
28 All implementations of a DiskCache should implement this interface.
29 </p>
30
31 @author <A HREF="mailto:burton@apache.org">Kevin A. Burton</A>
32 @author <a href="mailto:sgala@hisitech.com">Santiago Gala</a>
33 @version $Id: DiskCache.java,v 1.15 2004/02/23 02:45:29 jford Exp $
34 */
35 public interface DiskCache {
36
37 /***
38 <p>
39 Take the given remove URL and place it in the disk cache. Additionaly
40 operations include building a DiskCacheEntry and then returning it.
41 </p>
42
43 <p>getEntry may attempt to pull down the URL if it is not in the disk cache.
44 Most implementations may provide support for changing this behavior so that
45 you have to explicitly call add. This is done for performance reasons
46 so that HTTP clients don't end up triggering a URL connection to fetch
47 the given URL.</p>
48
49 */
50 public DiskCacheEntry getEntry( String url ) throws IOException;
51
52 /***
53 <p>Get an Entry from the from the cache but force this URL to be fetched and
54 then cached no matter what configuration options Jetspeed provides.
55
56 @see #getEntry( String url )
57 */
58 public DiskCacheEntry getEntry( String url,
59 boolean force ) throws IOException;
60
61 /***
62 Get a entry based on a URL but you should already have the content. This is
63 usually used to specify an alternative Reader (maybe StringReader).
64
65 <p>getEntry may attempt to pull down the URL if it is not in the disk cache.
66 Most implementations may provide support for changing this behavior so that
67 you have to explicitly call add. This is done for performance reasons
68 so that HTTP clients don't end up triggering a URL connection to fetch
69 the given URL.</p>
70
71 */
72 public DiskCacheEntry getEntry( String url, Reader is ) throws IOException;
73
74 /***
75 Get a list of all the documents within the cache...
76
77 */
78 public DiskCacheEntry[] getEntries();
79
80 /***
81 Add this URL to the disk cache
82
83 */
84 public void add( String url ) throws IOException;
85
86 /***
87 Remove this URL from the disk cache.
88
89 */
90 public void remove( String url ) throws IOException;
91
92
93 /***
94 Get the URL from the Internet and then place it in the File dest.
95
96 */
97 public String fetch( String url, String destination ) throws IOException ;
98
99 /***
100 Return the root of this DiskCache.
101
102 */
103 public String getRoot();
104
105 /***
106 Tell the DiskCache that this URL should be refreshed. This will do this in
107 a threaded and asynchronous manner.
108
109 */
110 public void refresh( String url );
111
112 /***
113 Ask if a url is in the DiskCache
114
115 */
116 public boolean isCached( String url );
117
118 }