Author: kpvdr
Date: Tue Jan 23 06:23:25 2007
New Revision: 499030

URL: http://svn.apache.org/viewvc?view=rev&rev=499030
Log:
Modified Content to make get methods to be non-consuming through use of 
light-weight copys. Shortened name of Content type enum.

Modified:
    
incubator/qpid/branches/qpid.0-9/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java
    
incubator/qpid/branches/qpid.0-9/java/broker/src/main/java/org/apache/qpid/server/queue/AMQMessage.java
    
incubator/qpid/branches/qpid.0-9/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java
    
incubator/qpid/branches/qpid.0-9/java/client/src/main/java/org/apache/qpid/client/handler/MessageTransferMethodHandler.java
    
incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/Content.java
    
incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/RequestManager.java
    
incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/ResponseManager.java

Modified: 
incubator/qpid/branches/qpid.0-9/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.0-9/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java?view=diff&rev=499030&r1=499029&r2=499030
==============================================================================
--- 
incubator/qpid/branches/qpid.0-9/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java
 (original)
+++ 
incubator/qpid/branches/qpid.0-9/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java
 Tue Jan 23 06:23:25 2007
@@ -193,10 +193,10 @@
         message.setPublisher(publisher);
         Content body = transferBody.getBody();
         switch (body.getContentType()) {
-        case CONTENT_TYPE_INLINE:
+        case INLINE_T:
             route(message);
             break;
-        case CONTENT_TYPE_REFERENCE:
+        case REF_T:
             getMessages(body.getContentAsByteArray()).add(message);
             break;
         }

Modified: 
incubator/qpid/branches/qpid.0-9/java/broker/src/main/java/org/apache/qpid/server/queue/AMQMessage.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.0-9/java/broker/src/main/java/org/apache/qpid/server/queue/AMQMessage.java?view=diff&rev=499030&r1=499029&r2=499030
==============================================================================
--- 
incubator/qpid/branches/qpid.0-9/java/broker/src/main/java/org/apache/qpid/server/queue/AMQMessage.java
 (original)
+++ 
incubator/qpid/branches/qpid.0-9/java/broker/src/main/java/org/apache/qpid/server/queue/AMQMessage.java
 Tue Jan 23 06:23:25 2007
@@ -139,7 +139,7 @@
         int size = _transferBody.getBodySize();
         Content body = _transferBody.getBody();
         switch (body.getContentType()) {
-        case CONTENT_TYPE_INLINE:
+        case INLINE_T:
             size -= _transferBody.getBody().getEncodedSize();
             break;
         }
@@ -149,9 +149,9 @@
     public long getBodySize() {
         Content body = _transferBody.getBody();
         switch (body.getContentType()) {
-        case CONTENT_TYPE_INLINE:
+        case INLINE_T:
             return _transferBody.getBody().getContent().limit();
-        case CONTENT_TYPE_REFERENCE:
+        case REF_T:
             return getReferenceSize();
         default:
             throw new IllegalStateException("unrecognized type: " + 
body.getContentType());

Modified: 
incubator/qpid/branches/qpid.0-9/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.0-9/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java?view=diff&rev=499030&r1=499029&r2=499030
==============================================================================
--- 
incubator/qpid/branches/qpid.0-9/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java
 (original)
+++ 
incubator/qpid/branches/qpid.0-9/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java
 Tue Jan 23 06:23:25 2007
@@ -577,7 +577,7 @@
                // Inline message case
                _logger.debug("Inline case, sending data inline with the 
transfer method");
 
-               Content data = new 
Content(Content.ContentTypeEnum.CONTENT_TYPE_INLINE,payload);
+               Content data = new Content(Content.TypeEnum.INLINE_T, payload);
 
                
doMessageTransfer(messageHeaders,destination,data,message,deliveryMode,priority,timeToLive,immediate);
         } else {
@@ -598,7 +598,7 @@
                doMessageOpen(referenceId);
                
                // Message.Transfer
-               Content data = new 
Content(Content.ContentTypeEnum.CONTENT_TYPE_REFERENCE,referenceId.getBytes()); 
+               Content data = new Content(Content.TypeEnum.REF_T, 
referenceId.getBytes()); 
                
doMessageTransfer(messageHeaders,destination,data,message,deliveryMode,priority,timeToLive,immediate);
                
                //Message.Append

Modified: 
incubator/qpid/branches/qpid.0-9/java/client/src/main/java/org/apache/qpid/client/handler/MessageTransferMethodHandler.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.0-9/java/client/src/main/java/org/apache/qpid/client/handler/MessageTransferMethodHandler.java?view=diff&rev=499030&r1=499029&r2=499030
==============================================================================
--- 
incubator/qpid/branches/qpid.0-9/java/client/src/main/java/org/apache/qpid/client/handler/MessageTransferMethodHandler.java
 (original)
+++ 
incubator/qpid/branches/qpid.0-9/java/client/src/main/java/org/apache/qpid/client/handler/MessageTransferMethodHandler.java
 Tue Jan 23 06:23:25 2007
@@ -75,7 +75,7 @@
         
         msg.contentHeader = messageHeaders;
         
-        if(transferBody.getBody().contentType == 
Content.ContentTypeEnum.CONTENT_TYPE_INLINE)
+        if(transferBody.getBody().contentType == Content.TypeEnum.INLINE_T)
         {
                msg.addContent(transferBody.getBody().getContentAsByteArray());
                protocolSession.deliverMessageToAMQSession(evt.getChannelId(), 
msg);

Modified: 
incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/Content.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/Content.java?view=diff&rev=499030&r1=499029&r2=499030
==============================================================================
--- 
incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/Content.java
 (original)
+++ 
incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/Content.java
 Tue Jan 23 06:23:25 2007
@@ -24,38 +24,38 @@
 
 public class Content
 {
-       public enum ContentTypeEnum
+       public enum TypeEnum
     {
-       CONTENT_TYPE_INLINE((byte)0), CONTENT_TYPE_REFERENCE((byte)1);
+       INLINE_T((byte)0), REF_T((byte)1);
         private byte type;
-        ContentTypeEnum(byte type) { this.type = type; }
+        TypeEnum(byte type) { this.type = type; }
         public byte toByte() { return type; }
-        public static ContentTypeEnum toContentEnum(byte b)
+        public static TypeEnum toContentEnum(byte b)
         {
                switch (b)
             {
-               case 0: return CONTENT_TYPE_INLINE;
-               case 1: return CONTENT_TYPE_REFERENCE;
+               case 0: return INLINE_T;
+               case 1: return REF_T;
                 default: throw new IllegalArgumentException("Illegal value " + 
b +
-                       ", not represented in ContentTypeEnum.");
+                       ", not represented in TypeEnum.");
             }
         }
     }
     
-    public ContentTypeEnum contentType;
+    public TypeEnum contentType;
     public ByteBuffer content;
     
     // Constructors
     
     public Content()
     {
-       contentType = ContentTypeEnum.CONTENT_TYPE_INLINE; // default
+       contentType = TypeEnum.INLINE_T; // default
         content = null;
     }
     
-    public Content(ContentTypeEnum contentType, byte[] content)
+    public Content(TypeEnum contentType, byte[] content)
     {
-       if (contentType == ContentTypeEnum.CONTENT_TYPE_REFERENCE)
+       if (contentType == TypeEnum.REF_T)
         {
                if (content == null)
                throw new IllegalArgumentException("Content cannot be null for 
a ref type.");
@@ -67,14 +67,14 @@
         this.content.put(content);
     }
     
-    public Content(ContentTypeEnum contentType, String contentStr)
+    public Content(TypeEnum contentType, String contentStr)
     {
         this(contentType, contentStr.getBytes());
     }
     
-    public Content(ContentTypeEnum contentType, ByteBuffer content)
+    public Content(TypeEnum contentType, ByteBuffer content)
     {
-       if (contentType == ContentTypeEnum.CONTENT_TYPE_REFERENCE)
+       if (contentType == TypeEnum.REF_T)
         {
                if (content == null)
                throw new IllegalArgumentException("Content cannot be null for 
a ref type.");
@@ -87,13 +87,21 @@
     
     // Get functions
     
-    public ContentTypeEnum getContentType() { return contentType; }
-    public ByteBuffer getContent() { return content; }
+    public TypeEnum getContentType()
+    {
+        return contentType;
+    }
+    
+    public ByteBuffer getContent()
+    {
+        return content.duplicate();
+    }
     
     public byte[] getContentAsByteArray()
     {
-        byte[] ba = new byte[content.remaining()];
-        content.get(ba);
+        ByteBuffer dup = content.duplicate().rewind();
+        byte[] ba = new byte[dup.remaining()];
+        dup.get(ba);
         return ba;
     }
     
@@ -122,7 +130,7 @@
     
     public void populateFromBuffer(ByteBuffer buffer) throws 
AMQFrameDecodingException
     {
-        contentType = ContentTypeEnum.toContentEnum(buffer.get());
+        contentType = TypeEnum.toContentEnum(buffer.get());
         int length = buffer.getInt();
         content = buffer.slice();
         buffer.skip(length);
@@ -131,11 +139,6 @@
     
     public synchronized String toString()
     {
-       int position = content.position();
-       content.flip();
-        String tmp = content.toString();
-        content.position(position);
-        
-        return tmp;
+        return getContent().rewind().toString();
     }
 }

Modified: 
incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/RequestManager.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/RequestManager.java?view=diff&rev=499030&r1=499029&r2=499030
==============================================================================
--- 
incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/RequestManager.java
 (original)
+++ 
incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/RequestManager.java
 Tue Jan 23 06:23:25 2007
@@ -80,6 +80,8 @@
             logger.debug((serverFlag ? "SRV" : "CLI") + " TX REQ: ch=" + 
channel +
                 " Req[" + requestId + " " + lastProcessedResponseId + "]; " + 
requestMethodBody);
         }
+        //System.out.println((serverFlag ? "SRV" : "CLI") + " TX REQ: ch=" + 
channel +
+        //        " Req[" + requestId + " " + lastProcessedResponseId + "]; " 
+ requestMethodBody);
         return requestId;
     }
 
@@ -93,6 +95,8 @@
             logger.debug((serverFlag ? "SRV" : "CLI") + " RX RES: ch=" + 
channel +
                 " " + responseBody + "; " + responseBody.getMethodPayload());
         }
+        //System.out.println((serverFlag ? "SRV" : "CLI") + " RX RES: ch=" + 
channel +
+        //        " " + responseBody + "; " + responseBody.getMethodPayload());
         for (long requestId = requestIdStart; requestId <= requestIdStop; 
requestId++)
         {
             AMQMethodListener methodListener = requestSentMap.get(requestId);

Modified: 
incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/ResponseManager.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/ResponseManager.java?view=diff&rev=499030&r1=499029&r2=499030
==============================================================================
--- 
incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/ResponseManager.java
 (original)
+++ 
incubator/qpid/branches/qpid.0-9/java/common/src/main/java/org/apache/qpid/framing/ResponseManager.java
 Tue Jan 23 06:23:25 2007
@@ -122,11 +122,14 @@
             logger.debug((serverFlag ? "SRV" : "CLI") + " RX REQ: ch=" + 
channel +
                 " " + requestBody + "; " + requestBody.getMethodPayload());
         }
+        //System.out.println((serverFlag ? "SRV" : "CLI") + " RX REQ: ch=" + 
channel +
+        //        " " + requestBody + "; " + requestBody.getMethodPayload());
         // TODO: responseMark is used in HA, but until then, ignore...
         long responseMark = requestBody.getResponseMark();
         lastReceivedRequestId = requestId;
         responseMap.put(requestId, new ResponseStatus(requestId));
-        AMQMethodEvent methodEvent = new AMQMethodEvent(channel, 
requestBody.getMethodPayload(), requestId);
+        AMQMethodEvent methodEvent = new AMQMethodEvent(channel,
+            requestBody.getMethodPayload(), requestId);
         methodListener.methodReceived(methodEvent);
     }
 
@@ -138,6 +141,8 @@
             logger.debug((serverFlag ? "SRV" : "CLI") + " TX RES: ch=" + 
channel +
                 " Res[# " + requestId + "]; " + responseMethodBody);
         }
+        //System.out.println((serverFlag ? "SRV" : "CLI") + " TX RES: ch=" + 
channel +
+        //        " Res[# " + requestId + "]; " + responseMethodBody);
         ResponseStatus responseStatus = responseMap.get(requestId);
         if (responseStatus == null)
             throw new RequestResponseMappingException(requestId,


Reply via email to