diff src/treecms/tree/cassandra/v1/util/ConcurrentCassandraClient.java @ 11:85061e874775

commit
author shoshi
date Fri, 06 May 2011 00:42:57 +0900
parents 4e0ed81bea89
children
line wrap: on
line diff
--- a/src/treecms/tree/cassandra/v1/util/ConcurrentCassandraClient.java	Tue Apr 19 19:12:16 2011 +0900
+++ b/src/treecms/tree/cassandra/v1/util/ConcurrentCassandraClient.java	Fri May 06 00:42:57 2011 +0900
@@ -1,14 +1,19 @@
 package treecms.tree.cassandra.v1.util;
 
 import java.util.concurrent.Callable;
+import java.util.List;
+import java.util.Map;
 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.ColumnParent;
 import org.apache.cassandra.thrift.ColumnPath;
 import org.apache.cassandra.thrift.ConsistencyLevel;
+import org.apache.cassandra.thrift.Mutation;
+import org.apache.cassandra.thrift.SlicePredicate;
 
 /**
  * 
@@ -55,6 +60,38 @@
 		return ret;	
 	}
 	
+	public Future<List<ColumnOrSuperColumn>> get_slice(final String _ks,final String _key,final ColumnParent _parent,final SlicePredicate _predicate,final ConsistencyLevel _level)
+	{
+		Callable<List<ColumnOrSuperColumn>> task = new Callable<List<ColumnOrSuperColumn>>(){
+			@Override
+			public List<ColumnOrSuperColumn> call() throws Exception
+			{
+				CassandraClientWrapper client = ((CassandraClientThread)Thread.currentThread()).getClientWrapper();
+				List<ColumnOrSuperColumn> ret = client.get_slice(_ks,_key,_parent,_predicate,_level);
+				return ret;
+			}
+		};
+		
+		Future<List<ColumnOrSuperColumn>> ret = m_service.submit(task);
+		return ret;
+	}
+	
+	public Future<?> batch_mutate(final String _ks,final Map<String,Map<String,List<Mutation>>> _mutation_map,final ConsistencyLevel _level)
+	{
+		Callable<Boolean> task = new Callable<Boolean>(){
+			@Override
+			public Boolean call() throws Exception
+			{
+				CassandraClientWrapper client = ((CassandraClientThread)Thread.currentThread()).getClientWrapper();
+				client.batch_mutate(_ks,_mutation_map,_level);
+				return true;
+			}
+		};
+		
+		Future<?> 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>(){
@@ -70,4 +107,18 @@
 		Future<Boolean> ret = m_service.submit(task);
 		return ret;
 	}
+	
+	public Future<String> describe_cluster_name()
+	{
+		Callable<String> task = new Callable<String>(){
+			@Override
+			public String call() throws Exception
+			{
+				return null;
+			}
+		};
+		
+		Future<String> ret = m_service.submit(task);
+		return ret;
+	}
 }