/*
* Copyright (c) quickfixengine.org All rights reserved.
*
* This file is part of the QuickFIX FIX Engine
*
* This file may be distributed under the terms of the quickfixengine.org
* license as defined by quickfixengine.org and appearing in the file
* LICENSE included in the packaging of this file.
*
* This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING
* THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A
* PARTICULAR PURPOSE.
*
* See http://www.quickfixengine.org/LICENSE for licensing information.
*
* Contact ask@quickfixengine.org if any conditions of this licensing
* are not clear to you.
*/
package com.github.lburgazzoli.quickfixj.hazelcast;
import com.google.common.collect.Maps;
import com.hazelcast.core.HazelcastInstance;
import quickfix.MessageStore;
import quickfix.MessageStoreFactory;
import quickfix.SessionID;
import java.util.Map;
/**
*
*/
public class HzMessageStoreFactory implements MessageStoreFactory {
private final Map<SessionID,MessageStore> m_stores;
private final HazelcastInstance m_hz;
/**
* c-tor
*/
public HzMessageStoreFactory(HazelcastInstance hz) {
m_stores = Maps.newHashMap();
m_hz = hz;
}
@Override
public synchronized MessageStore create(SessionID sessionID) {
if(!m_stores.containsKey(sessionID)) {
m_stores.put(sessionID,new HzMessageStore(sessionID,m_hz));
}
return m_stores.get(sessionID);
}
}