diff src/treecms/cassandra/util/CassandraClientThread.java @ 17:168deb591f21

commit
author shoshi
date Tue, 24 May 2011 00:33:12 +0900
parents src/treecms/tree/cassandra/v1/util/CassandraClientThread.java@17ed97ca9960
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/treecms/cassandra/util/CassandraClientThread.java	Tue May 24 00:33:12 2011 +0900
@@ -0,0 +1,48 @@
+package treecms.cassandra.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;
+	}
+}