diff src/treecms/tree/cassandra/v1/util/ConcurrentCassandraClient.java @ 10:4e0ed81bea89

added ConcurrentClient
author shoshi
date Tue, 19 Apr 2011 19:12:16 +0900
parents 17ed97ca9960
children 85061e874775
line wrap: on
line diff
--- a/src/treecms/tree/cassandra/v1/util/ConcurrentCassandraClient.java	Mon Apr 18 01:07:27 2011 +0900
+++ b/src/treecms/tree/cassandra/v1/util/ConcurrentCassandraClient.java	Tue Apr 19 19:12:16 2011 +0900
@@ -4,6 +4,7 @@
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
 
 import org.apache.cassandra.thrift.ColumnOrSuperColumn;
 import org.apache.cassandra.thrift.ColumnPath;
@@ -28,6 +29,16 @@
 		return client;
 	}
 	
+	public void disconnect()
+	{
+		m_service.shutdown();
+		try{
+			m_service.awaitTermination(Long.MAX_VALUE,TimeUnit.DAYS);
+		}catch(InterruptedException _e){
+			_e.printStackTrace();
+		}
+	}
+	
 	public Future<ColumnOrSuperColumn> get(final String _ks,final String _key,final ColumnPath _path,final ConsistencyLevel _level)
 	{
 		Callable<ColumnOrSuperColumn> task = new Callable<ColumnOrSuperColumn>(){
@@ -43,4 +54,20 @@
 		Future<ColumnOrSuperColumn> ret = m_service.submit(task);
 		return ret;	
 	}
+	
+	public Future<Boolean> insert(final String _ks,final String _key,final ColumnPath _path,final byte[] _value,final long _timestamp,final ConsistencyLevel _level)
+	{
+		Callable<Boolean> task = new Callable<Boolean>(){
+			@Override
+			public Boolean call() throws Exception
+			{
+				CassandraClientWrapper client = ((CassandraClientThread)Thread.currentThread()).getClientWrapper();
+				client.insert(_ks,_key,_path,_value,_timestamp,_level);
+				return true;
+			}
+		};
+		
+		Future<Boolean> ret = m_service.submit(task);
+		return ret;
+	}
 }