diff src/treecms/tree/cassandra/v1/util/CassandraClientThread.java @ 9:17ed97ca9960

commit
author shoshi
date Mon, 18 Apr 2011 01:07:27 +0900
parents src/treecms/tree/cassandra/v1/ClientThread.java@fc19e38b669b
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/treecms/tree/cassandra/v1/util/CassandraClientThread.java	Mon Apr 18 01:07:27 2011 +0900
@@ -0,0 +1,48 @@
+package treecms.tree.cassandra.v1.util;
+
+import org.apache.thrift.transport.TTransportException;
+
+/**
+ * CassandraのClientを保持したスレッドオブジェクトです。
+ * @author shoshi
+ */
+final class CassandraClientThread extends Thread
+{
+	private CassandraClientWrapper m_wrapper;
+	
+	/**
+	 * コンストラクタです。
+	 * @param _host Cassandraのホスト名
+	 * @param _port Cassandraのポート番号
+	 * @param _runnable このスレッドで動作するRunnable
+	 * @throws TTransportException 
+	 */
+	private CassandraClientThread(String _host,int _port,Runnable _runnable) throws TTransportException
+	{
+		super(_runnable);
+		m_wrapper = new CassandraClientWrapper(_host,_port,2);
+	}
+	
+	/**
+	 * ファクトリメソッドです。
+	 * @param _host Cassandraのホスト名
+	 * @param _port Cassandraのポート番号
+	 * @param _runnable このスレッドで動作するRunnable
+	 * @return 新しいインスタンス
+	 * @throws TTransportException Cassandraへの接続が失敗したとき
+	 */
+	public static CassandraClientThread newInstance(String _host,int _port,Runnable _runnable) throws TTransportException
+	{
+		CassandraClientThread thread = new CassandraClientThread(_host,_port,_runnable);
+		return thread;
+	}
+	
+	/**
+	 * ClientWrapperを取得します
+	 * @return CassandraへのClientWrapper
+	 */
+	public CassandraClientWrapper getClientWrapper()
+	{
+		return m_wrapper;
+	}
+}