Hazelcast C++ Client
EvictionStrategy.h
1 /*
2  * Copyright (c) 2008-2017, Hazelcast, Inc. All Rights Reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 #ifndef HAZELCAST_CLIENT_INTERNAL_EVICTION_EVICTIONSTRATEGY_H_
17 #define HAZELCAST_CLIENT_INTERNAL_EVICTION_EVICTIONSTRATEGY_H_
18 
19 #include <assert.h>
20 
21 #if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
22 #pragma warning(push)
23 #pragma warning(disable: 4251) //for dll export
24 #endif
25 
26 namespace hazelcast {
27  namespace client {
28  namespace internal {
29  namespace eviction {
30  template<typename MAPKEY, typename MAPVALUE, typename A, typename E>
31  class EvictionPolicyEvaluator;
32 
33  template <typename A, typename E>
34  class EvictionListener;
35 
36  class EvictionChecker;
37 
47  template <typename MAPKEY, typename MAPVALUE,typename A, typename E, typename S>
49  public:
50  virtual ~EvictionStrategy() {
51  }
52 
66  virtual int evict(S *evictableStore,
67  EvictionPolicyEvaluator<MAPKEY, MAPVALUE, A, E> *evictionPolicyEvaluator,
68  EvictionChecker *evictionChecker,
69  EvictionListener<A, E> *evictionListener) {
70  assert(0);
71  return 0;
72  }
73  };
74  }
75  }
76  }
77 };
78 
79 #if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
80 #pragma warning(pop)
81 #endif
82 
83 #endif /* HAZELCAST_CLIENT_INTERNAL_EVICTION_EVICTIONSTRATEGY_H_ */
Interface for evaluation implementations of com.hazelcast.config.EvictionPolicy.
Definition: EvictionPolicyEvaluator.h:46
Interface for checking about if eviction is required or not.
Definition: EvictionChecker.h:35
Interface for eviction implementations to evict EvictableStore implementations as specified EvictionP...
Definition: EvictionStrategy.h:48
virtual int evict(S *evictableStore, EvictionPolicyEvaluator< MAPKEY, MAPVALUE, A, E > *evictionPolicyEvaluator, EvictionChecker *evictionChecker, EvictionListener< A, E > *evictionListener)
Does eviction if eviction is required by given EvictionChecker.
Definition: EvictionStrategy.h:66
Interface for entries, records or whatever that can be evicted via its accessor (key or id)...
Definition: EvictableStore.h:36
Definition: MapEntryView.h:32