📄 basicpoolmanager.java
字号:
/*
* This file is part of the QuickServer library
* Copyright (C) QuickServer.org
*
* Use, modification, copying and distribution of this software is subject to
* the terms and conditions of the GNU Lesser General Public License.
* You should have received a copy of the GNU LGP License along with this
* library; if not, you can download a copy from <http://www.quickserver.org/>.
*
* For questions, suggestions, bug-reports, enhancement-requests etc.
* visit http://www.quickserver.org
*
*/
package org.quickserver.net.server.impl;
import org.apache.commons.pool.*;
import org.apache.commons.pool.impl.*;
import org.quickserver.util.pool.thread.ClientPool;
import org.quickserver.util.pool.ByteBufferObjectFactory;
import org.quickserver.util.xmlreader.PoolConfig;
import org.quickserver.net.server.PoolManager;
import java.util.logging.*;
/**
* BasicPoolManager class.
* @author Akshathkumar Shetty
* @since 1.4.5
*/
public class BasicPoolManager implements PoolManager {
private static final Logger logger = Logger.getLogger(
BasicPoolManager.class.getName());
public ObjectPool makeByteBufferPool(PoolableObjectFactory factory,
PoolConfig opConfig) {
GenericObjectPool.Config bconfig = new GenericObjectPool.Config();
bconfig.maxActive = opConfig.getMaxActive();
bconfig.maxIdle = opConfig.getMaxIdle();
bconfig.testOnReturn = true;
bconfig.whenExhaustedAction = GenericObjectPool.WHEN_EXHAUSTED_BLOCK;
return new GenericObjectPool(factory, bconfig);
}
public ObjectPool makeClientPool(PoolableObjectFactory factory,
PoolConfig opConfig) {
GenericObjectPool.Config bconfig = new GenericObjectPool.Config();
bconfig.maxActive = opConfig.getMaxActive();
bconfig.maxIdle = opConfig.getMaxIdle();
bconfig.testOnReturn = true;
bconfig.whenExhaustedAction = GenericObjectPool.WHEN_EXHAUSTED_FAIL;
return new GenericObjectPool(factory, bconfig);
}
public ObjectPool makeClientHandlerPool(PoolableObjectFactory factory,
PoolConfig opConfig) {
GenericObjectPool.Config bconfig = new GenericObjectPool.Config();
bconfig.maxActive = opConfig.getMaxActive();
bconfig.maxIdle = opConfig.getMaxIdle();
bconfig.testOnReturn = true;
bconfig.whenExhaustedAction = GenericObjectPool.WHEN_EXHAUSTED_FAIL;
return new GenericObjectPool(factory, bconfig);
}
public ObjectPool makeClientDataPool(PoolableObjectFactory factory,
PoolConfig opConfig) {
GenericObjectPool.Config bconfig = new GenericObjectPool.Config();
bconfig.maxActive = opConfig.getMaxActive();
bconfig.maxIdle = opConfig.getMaxIdle();
bconfig.testOnReturn = true;
bconfig.whenExhaustedAction = GenericObjectPool.WHEN_EXHAUSTED_FAIL;
return new GenericObjectPool(factory, bconfig);
}
public void initPool(ObjectPool objectPool, PoolConfig opConfig) {
int initSize = opConfig.getInitSize();
try {
while(objectPool.getNumIdle()<initSize)
objectPool.addObject();
} catch(Exception e) {
logger.fine("Error: "+e);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -