01: /**
02: * Sequoia: Database clustering technology.
03: * Copyright (C) 2002-2004 French National Institute For Research In Computer
04: * Science And Control (INRIA).
05: * Copyright (C) 2005 AmicoSoft, Inc. dba Emic Networks
06: * Contact: sequoia@continuent.org
07: *
08: * Licensed under the Apache License, Version 2.0 (the "License");
09: * you may not use this file except in compliance with the License.
10: * 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, software
15: * distributed under the License is distributed on an "AS IS" BASIS,
16: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17: * See the License for the specific language governing permissions and
18: * limitations under the License.
19: *
20: * Initial developer(s): Nicolas Modrzyk
21: * Contributor(s):
22: */package org.continuent.sequoia.controller.cache.result.rules;
23:
24: import org.continuent.sequoia.common.xml.DatabasesXmlTags;
25: import org.continuent.sequoia.controller.backend.result.ControllerResultSet;
26: import org.continuent.sequoia.controller.cache.result.AbstractResultCache;
27: import org.continuent.sequoia.controller.cache.result.CacheBehavior;
28: import org.continuent.sequoia.controller.cache.result.entries.AbstractResultCacheEntry;
29: import org.continuent.sequoia.controller.cache.result.entries.ResultCacheEntryEager;
30: import org.continuent.sequoia.controller.requests.SelectRequest;
31:
32: /**
33: * EagerCaching means that all entries in the cache are always coherent and any
34: * update query (insert,delete,update,...) will automatically invalidate the
35: * corresponding entry in the cache. This was the previous cache behavior for
36: * all queries
37: *
38: * @author <a href="mailto:Nicolas.Modrzyk@inrialpes.fr">Nicolas Modrzyk </a>
39: * @version 1.0
40: */
41: public class EagerCaching extends CacheBehavior {
42: private long timeout;
43:
44: /**
45: * Define this CacheBehavior as EagerCaching
46: *
47: * @param timeout Timeout for this cache entry
48: */
49: public EagerCaching(long timeout) {
50: this .timeout = timeout;
51: }
52:
53: /**
54: * @see org.continuent.sequoia.controller.cache.result.CacheBehavior#getCacheEntry(SelectRequest,
55: * ControllerResultSet, AbstractResultCache)
56: */
57: public AbstractResultCacheEntry getCacheEntry(
58: SelectRequest sqlQuery, ControllerResultSet result,
59: AbstractResultCache cache) {
60: return new ResultCacheEntryEager(cache, sqlQuery, result,
61: timeout);
62: }
63:
64: /**
65: * @see org.continuent.sequoia.common.xml.XmlComponent#getXml()
66: */
67: public String getXml() {
68: return "<" + DatabasesXmlTags.ELT_EagerCaching + "/>";
69: }
70:
71: }
|