make AsyncResult extend IAsyncCallback; inline IMessageCallback

Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3d4c2f94
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3d4c2f94
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3d4c2f94

Branch: refs/heads/trunk
Commit: 3d4c2f9414d58117052b26f2b002bed7546a937a
Parents: b60bc58
Author: Jonathan Ellis <[email protected]>
Authored: Fri Mar 22 10:47:28 2013 -0500
Committer: Jonathan Ellis <[email protected]>
Committed: Fri Mar 22 10:51:18 2013 -0500

----------------------------------------------------------------------
 src/java/org/apache/cassandra/net/AsyncResult.java |    8 +++-
 .../org/apache/cassandra/net/CallbackInfo.java     |    6 +-
 .../org/apache/cassandra/net/IAsyncCallback.java   |    8 +++-
 .../org/apache/cassandra/net/IMessageCallback.java |   30 ---------------
 .../org/apache/cassandra/net/MessagingService.java |   12 +++---
 .../apache/cassandra/net/ResponseVerbHandler.java  |    4 +-
 .../org/apache/cassandra/service/ReadCallback.java |    2 +-
 7 files changed, 25 insertions(+), 45 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/3d4c2f94/src/java/org/apache/cassandra/net/AsyncResult.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/net/AsyncResult.java 
b/src/java/org/apache/cassandra/net/AsyncResult.java
index ebeda46..f6e2037 100644
--- a/src/java/org/apache/cassandra/net/AsyncResult.java
+++ b/src/java/org/apache/cassandra/net/AsyncResult.java
@@ -24,7 +24,11 @@ import java.util.concurrent.locks.Condition;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
 
-public class AsyncResult<T> implements IMessageCallback
+/**
+ * A callback specialized for returning a value from a single target; that is, 
this is for messages
+ * that we only send to one recipient.
+ */
+public class AsyncResult<T> implements IAsyncCallback<T>
 {
     private T result;
     private final AtomicBoolean done = new AtomicBoolean(false);
@@ -70,7 +74,7 @@ public class AsyncResult<T> implements IMessageCallback
         return result;
     }
 
-    public void result(MessageIn<T> response)
+    public void response(MessageIn<T> response)
     {
         try
         {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3d4c2f94/src/java/org/apache/cassandra/net/CallbackInfo.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/net/CallbackInfo.java 
b/src/java/org/apache/cassandra/net/CallbackInfo.java
index a5fc8ad..4f40c5a 100644
--- a/src/java/org/apache/cassandra/net/CallbackInfo.java
+++ b/src/java/org/apache/cassandra/net/CallbackInfo.java
@@ -30,7 +30,7 @@ import org.apache.cassandra.service.StorageProxy;
 public class CallbackInfo
 {
     protected final InetAddress target;
-    protected final IMessageCallback callback;
+    protected final IAsyncCallback callback;
     protected final MessageOut<?> sentMessage;
     protected final IVersionedSerializer<?> serializer;
 
@@ -41,12 +41,12 @@ public class CallbackInfo
      * @param callback
      * @param serializer serializer to deserialize response message
      */
-    public CallbackInfo(InetAddress target, IMessageCallback callback, 
IVersionedSerializer<?> serializer)
+    public CallbackInfo(InetAddress target, IAsyncCallback callback, 
IVersionedSerializer<?> serializer)
     {
         this(target, callback, null, serializer);
     }
 
-    public CallbackInfo(InetAddress target, IMessageCallback callback, 
MessageOut<?> sentMessage, IVersionedSerializer<?> serializer)
+    public CallbackInfo(InetAddress target, IAsyncCallback callback, 
MessageOut<?> sentMessage, IVersionedSerializer<?> serializer)
     {
         this.target = target;
         this.callback = callback;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3d4c2f94/src/java/org/apache/cassandra/net/IAsyncCallback.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/net/IAsyncCallback.java 
b/src/java/org/apache/cassandra/net/IAsyncCallback.java
index 868d368..1d83fbc 100644
--- a/src/java/org/apache/cassandra/net/IAsyncCallback.java
+++ b/src/java/org/apache/cassandra/net/IAsyncCallback.java
@@ -23,10 +23,16 @@ package org.apache.cassandra.net;
  * service.  In particular, if any shared state is referenced, making
  * response alone synchronized will not suffice.
  */
-public interface IAsyncCallback<T> extends IMessageCallback
+public interface IAsyncCallback<T>
 {
     /**
      * @param msg response received.
      */
     public void response(MessageIn<T> msg);
+
+    /**
+     * @return true if this callback is on the read path and its latency 
should be
+     * given as input to the dynamic snitch.
+     */
+    boolean isLatencyForSnitch();
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3d4c2f94/src/java/org/apache/cassandra/net/IMessageCallback.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/net/IMessageCallback.java 
b/src/java/org/apache/cassandra/net/IMessageCallback.java
deleted file mode 100644
index 95acc1b..0000000
--- a/src/java/org/apache/cassandra/net/IMessageCallback.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.cassandra.net;
-
-/**
- * Common parent of IAsyncCallback and IAsyncResult.  Don't implement it 
directly.
- */
-public interface IMessageCallback
-{
-    /**
-     * @return true if this callback is on the read path and its latency 
should be
-     * given as input to the dynamic snitch.
-     */
-    public boolean isLatencyForSnitch();
-}

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3d4c2f94/src/java/org/apache/cassandra/net/MessagingService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/net/MessagingService.java 
b/src/java/org/apache/cassandra/net/MessagingService.java
index 789555d..69b640b 100644
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@ -355,7 +355,7 @@ public final class MessagingService implements 
MessagingServiceMBean
      * @param address the host that replied to the message
      * @param latency
      */
-    public void maybeAddLatency(IMessageCallback cb, InetAddress address, long 
latency)
+    public void maybeAddLatency(IAsyncCallback cb, InetAddress address, long 
latency)
     {
         if (cb.isLatencyForSnitch())
             addLatency(address, latency);
@@ -514,7 +514,7 @@ public final class MessagingService implements 
MessagingServiceMBean
         return verbHandlers.get(type);
     }
 
-    public int addCallback(IMessageCallback cb, MessageOut message, 
InetAddress to, long timeout)
+    public int addCallback(IAsyncCallback cb, MessageOut message, InetAddress 
to, long timeout)
     {
         int messageId = nextId();
         CallbackInfo previous;
@@ -537,9 +537,9 @@ public final class MessagingService implements 
MessagingServiceMBean
     }
 
     /*
-     * @see #sendRR(Message message, InetAddress to, IMessageCallback cb, long 
timeout)
+     * @see #sendRR(Message message, InetAddress to, IAsyncCallback cb, long 
timeout)
      */
-    public int sendRR(MessageOut message, InetAddress to, IMessageCallback cb)
+    public int sendRR(MessageOut message, InetAddress to, IAsyncCallback cb)
     {
         return sendRR(message, to, cb, message.getTimeout());
     }
@@ -559,7 +559,7 @@ public final class MessagingService implements 
MessagingServiceMBean
      * @param timeout the timeout used for expiration
      * @return an reference to message id used to match with the result
      */
-    public int sendRR(MessageOut message, InetAddress to, IMessageCallback cb, 
long timeout)
+    public int sendRR(MessageOut message, InetAddress to, IAsyncCallback cb, 
long timeout)
     {
         int id = addCallback(cb, message, to, timeout);
 
@@ -713,7 +713,7 @@ public final class MessagingService implements 
MessagingServiceMBean
 
         if (message.verb == Verb.REQUEST_RESPONSE && 
PBSPredictor.instance().isLoggingEnabled())
         {
-            IMessageCallback cb = 
MessagingService.instance().getRegisteredCallback(id).callback;
+            IAsyncCallback cb = 
MessagingService.instance().getRegisteredCallback(id).callback;
 
             if (cb instanceof AbstractWriteResponseHandler)
             {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3d4c2f94/src/java/org/apache/cassandra/net/ResponseVerbHandler.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/net/ResponseVerbHandler.java 
b/src/java/org/apache/cassandra/net/ResponseVerbHandler.java
index 92fbad1..ce8ab33 100644
--- a/src/java/org/apache/cassandra/net/ResponseVerbHandler.java
+++ b/src/java/org/apache/cassandra/net/ResponseVerbHandler.java
@@ -38,7 +38,7 @@ public class ResponseVerbHandler implements IVerbHandler
             return;
         }
 
-        IMessageCallback cb = callbackInfo.callback;
+        IAsyncCallback cb = callbackInfo.callback;
         MessagingService.instance().maybeAddLatency(cb, message.from, latency);
 
         if (cb instanceof IAsyncCallback)
@@ -49,7 +49,7 @@ public class ResponseVerbHandler implements IVerbHandler
         else
         {
             Tracing.trace("Processing result from {}", message.from);
-            ((AsyncResult) cb).result(message);
+            ((AsyncResult) cb).response(message);
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3d4c2f94/src/java/org/apache/cassandra/service/ReadCallback.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/ReadCallback.java 
b/src/java/org/apache/cassandra/service/ReadCallback.java
index 2ebaedd..a1caff6 100644
--- a/src/java/org/apache/cassandra/service/ReadCallback.java
+++ b/src/java/org/apache/cassandra/service/ReadCallback.java
@@ -81,7 +81,7 @@ public class ReadCallback<TMessage, TResolved> implements 
IAsyncCallback<TMessag
 
     public ReadCallback<TMessage, TResolved> 
withNewResolver(IResponseResolver<TMessage, TResolved> newResolver)
     {
-        return new ReadCallback(newResolver, consistencyLevel, blockfor, 
command, table, endpoints);
+        return new ReadCallback<TMessage, TResolved>(newResolver, 
consistencyLevel, blockfor, command, table, endpoints);
     }
 
     public boolean await(long interimTimeout)

Reply via email to