/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.engine.cache;
import net.sf.ehcache.CacheManager;
/**
* A data store factory that wraps an underlying factory's generation with a local caching layer.
*/
public class CachingFudgeMessageStoreFactory implements FudgeMessageStoreFactory {
private final FudgeMessageStoreFactory _underlying;
private final CacheManager _cacheManager;
public CachingFudgeMessageStoreFactory(final FudgeMessageStoreFactory underlying, final CacheManager cacheManager) {
_underlying = underlying;
_cacheManager = cacheManager;
}
protected FudgeMessageStoreFactory getUnderlying() {
return _underlying;
}
protected CacheManager getCacheManager() {
return _cacheManager;
}
@Override
public FudgeMessageStore createMessageStore(ViewComputationCacheKey cacheKey) {
return new CachingFudgeMessageStore(getUnderlying().createMessageStore(cacheKey), getCacheManager(), cacheKey);
}
}