diff src/treecms/tree/cassandra/v1/ClientThreadFactory.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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/treecms/tree/cassandra/v1/ClientThreadFactory.java	Thu Mar 17 23:24:08 2011 +0900
@@ -0,0 +1,42 @@
+package treecms.tree.cassandra.v1;
+
+import java.util.concurrent.ThreadFactory;
+
+import org.apache.thrift.transport.TTransportException;
+
+/**
+ * ローカル変数としてCassandra.Clientを保持するスレッドオブジェクトを生成するスレッドファクトリーです。
+ * @author shoshi
+ */
+final class ClientThreadFactory implements ThreadFactory
+{
+	private String m_host;
+	private int m_port;
+	
+	/**
+	 * コンストラクタです。
+	 * @param _host Cassandraのアドレス・ホスト名
+	 * @param _port Thriftポート番号
+	 */
+	public ClientThreadFactory(String _host,int _port)
+	{
+		m_host = _host;
+		m_port = _port;
+	}
+
+	/**
+	 * Cassandra.Clientを保持するスレッドオブジェクトを新しく作成します。
+	 */
+	@Override
+	public Thread newThread(Runnable _runnable)
+	{
+		ClientThread client = null;
+		try{
+			client = ClientThread.newInstance(m_host,m_port,_runnable);
+		}catch(TTransportException _e) {
+			_e.printStackTrace();
+			throw new RuntimeException(_e);
+		}
+		return client;
+	}
+}