package com.cwa.log.mongo;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* @author Pai
* @descirption MongoDB存储管理类 12.12.24
*/
public class StorageManager {
private String host;
private int port;
private String gameName;
private int poolSize;
private ConcurrentHashMap<String, Storage> pool;
private static StorageManager _instance;
private StorageManager(String host, int port, String gameName, int poolSize) {
this.host = host;
this.port = port;
this.gameName = gameName;
this.poolSize = poolSize;
pool = new ConcurrentHashMap<String, Storage>();
}
public static StorageManager getInstance(String host, int port,
String gameName, int poolSize) {
if (_instance == null) {
_instance = new StorageManager(host, port, gameName, poolSize);
}
return _instance;
}
/**
* 通过游戏名称获得对应的Log库。
*
* @param
* @return
*/
public Storage getStorage() {
if (!pool.contains(gameName)) {
pool.putIfAbsent(gameName,
Storage.getInstance(host, port, gameName, poolSize));
}
return pool.get(gameName);
}
public void saveStorage(String colName, String log) {
Storage.getInstance(host, port, gameName, poolSize).save(colName, log);
}
}