activemq-cpp-3.6.0
Main Page
Namespaces
Data Structures
Files
File List
Globals
LRUCache.h
Go to the documentation of this file.
1
/*
2
* Licensed to the Apache Software Foundation (ASF) under one or more
3
* contributor license agreements. See the NOTICE file distributed with
4
* this work for additional information regarding copyright ownership.
5
* The ASF licenses this file to You under the Apache License, Version 2.0
6
* (the "License"); you may not use this file except in compliance with
7
* the License. You may obtain a copy of the License at
8
*
9
* 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
#ifndef _DECAF_UTIL_LRUCACHE_H_
19
#define _DECAF_UTIL_LRUCACHE_H_
20
21
#include <
decaf/util/Config.h
>
22
23
#include <
decaf/util/AbstractMap.h
>
24
#include <
decaf/lang/exceptions/IllegalArgumentException.h
>
25
26
namespace
decaf {
27
namespace
util {
28
34
template
<
typename
K,
typename
V,
typename
COMPARATOR = std::less<K> >
35
class
LRUCache
:
decaf::util::AbstractMap
<K, V> {
36
protected
:
37
38
int
maxCacheSize
;
39
40
public
:
41
42
LRUCache
() :
maxCacheSize
(1024) {}
43
44
virtual
~LRUCache
() {}
45
51
int
getMaxCacheSize
()
const
{
52
return
maxCacheSize
;
53
}
54
63
void
setMaxCacheSize
(
int
size
) {
64
if
(size <= 0) {
65
throw
decaf::lang::exceptions::IllegalArgumentException
(
66
__FILE__, __LINE__,
"Cache size must be greater than zero."
);
67
}
68
69
this->
maxCacheSize
=
size
;
70
}
71
72
protected
:
73
74
virtual
bool
removeEldestEntry
(
const
typename
Map<K,V>::Entry
& entry) {
75
return
false
;
76
}
77
78
};
79
80
}}
81
82
#endif
/* _DECAF_UTIL_LRUCACHE_H_ */
src
main
decaf
util
LRUCache.h
Generated on Mon Mar 4 2013 10:25:46 for activemq-cpp-3.6.0 by
1.8.1.2