view src/treecms/tree/cassandra/v1/ClientThread.java @ 7:fc19e38b669b

added concurrent access client for cassandr
author shoshi
date Thu, 17 Mar 2011 23:24:08 +0900
parents
children
line wrap: on
line source

package treecms.tree.cassandra.v1;

import org.apache.thrift.transport.TTransportException;

/**
 * CassandraのClientを保持したスレッドオブジェクトです。
 * @author shoshi
 */
final class ClientThread extends Thread
{
	private ClientWrapper m_wrapper;
	
	/**
	 * コンストラクタです。
	 * @param _host Cassandraのホスト名
	 * @param _port Cassandraのポート番号
	 * @param _runnable このスレッドで動作するRunnable
	 * @throws TTransportException 
	 */
	private ClientThread(String _host,int _port,Runnable _runnable) throws TTransportException
	{
		super(_runnable);
		m_wrapper = new ClientWrapper(_host,_port,2);
	}
	
	/**
	 * ファクトリメソッドです。
	 * @param _host Cassandraのホスト名
	 * @param _port Cassandraのポート番号
	 * @param _runnable このスレッドで動作するRunnable
	 * @return 新しいインスタンス
	 * @throws TTransportException Cassandraへの接続が失敗したとき
	 */
	public static ClientThread newInstance(String _host,int _port,Runnable _runnable) throws TTransportException
	{
		ClientThread thread = new ClientThread(_host,_port,_runnable);
		return thread;
	}
	
	/**
	 * ClientWrapperを取得します
	 * @return CassandraへのClientWrapper
	 */
	public ClientWrapper getClientWrapper()
	{
		return m_wrapper;
	}
}