16 #ifndef HAZELCAST_CLIENT_INTERNAL_EVICTION_EVICTIONSTRATEGYPROVIDER_H_
17 #define HAZELCAST_CLIENT_INTERNAL_EVICTION_EVICTIONSTRATEGYPROVIDER_H_
22 #include "hazelcast/client/internal/eviction/EvictionStrategyType.h"
23 #include "hazelcast/client/internal/eviction/EvictionStrategy.h"
24 #include "hazelcast/client/internal/eviction/EvictionConfiguration.h"
25 #include "hazelcast/client/internal/eviction/impl/strategy/sampling/SamplingBasedEvictionStrategy.h"
27 #if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
29 #pragma warning(disable: 4251) //for dll export
39 template<
typename MAPKEY,
typename MAPVALUE,
typename A,
typename E,
typename S>
50 if (evictionConfig.get() == NULL) {
51 return boost::shared_ptr<EvictionStrategy<MAPKEY, MAPVALUE, A, E, S> >();
71 static std::map<EvictionStrategyType::Type, boost::shared_ptr<EvictionStrategy<MAPKEY, MAPVALUE, A, E, S> > > init() {
72 std::map<EvictionStrategyType::Type, boost::shared_ptr<EvictionStrategy<MAPKEY, MAPVALUE, A, E, S> > > map;
78 static std::map<EvictionStrategyType::Type, boost::shared_ptr<EvictionStrategy<MAPKEY, MAPVALUE, A, E, S> > > EVICTION_STRATEGY_MAP;
81 template<
typename MAPKEY,
typename MAPVALUE,
typename A,
typename E,
typename S>
82 std::map<EvictionStrategyType::Type, boost::shared_ptr<EvictionStrategy<MAPKEY, MAPVALUE, A, E, S> > > EvictionStrategyProvider<MAPKEY, MAPVALUE, A, E, S>::EVICTION_STRATEGY_MAP = EvictionStrategyProvider<MAPKEY, MAPVALUE, A, E, S>::init();
88 #if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
Type
Definition: EvictionStrategyType.h:35
Provider to get any kind (EvictionStrategyType) of EvictionStrategy.
Definition: EvictionStrategyProvider.h:40
static boost::shared_ptr< EvictionStrategy< MAPKEY, MAPVALUE, A, E, S > > getEvictionStrategy(const boost::shared_ptr< EvictionConfiguration< MAPKEY, MAPVALUE > > &evictionConfig)
Gets the EvictionStrategy implementation specified with evictionStrategyType.
Definition: EvictionStrategyProvider.h:48
Sampling based eviction strategy type.
Definition: EvictionStrategyType.h:39
static const Type DEFAULT_EVICTION_STRATEGY
Default value of com.hazelcast.internal.eviction.EvictionStrategyType.
Definition: EvictionStrategyType.h:44
static boost::shared_ptr< EvictionStrategy< MAPKEY, MAPVALUE, A, E, S > > & getDefaultEvictionStrategy()
Gets the default EvictionStrategy implementation.
Definition: EvictionStrategyProvider.h:67
Interface for configuration information about eviction.
Definition: EvictionConfiguration.h:38