activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From tab...@apache.org
Subject svn commit: r599158 - in /activemq/activemq-cpp/decaf/trunk/src/main/decaf/nio: Buffer.cpp Buffer.h ByteBuffer.cpp ByteBuffer.h
Date Wed, 28 Nov 2007 21:49:19 GMT
Author: tabish
Date: Wed Nov 28 13:49:18 2007
New Revision: 599158

URL: http://svn.apache.org/viewvc?rev=599158&view=rev
Log:
http://issues.apache.org/activemq/browse/AMQCPP-103

Working on the NIO package

Modified:
    activemq/activemq-cpp/decaf/trunk/src/main/decaf/nio/Buffer.cpp
    activemq/activemq-cpp/decaf/trunk/src/main/decaf/nio/Buffer.h
    activemq/activemq-cpp/decaf/trunk/src/main/decaf/nio/ByteBuffer.cpp
    activemq/activemq-cpp/decaf/trunk/src/main/decaf/nio/ByteBuffer.h

Modified: activemq/activemq-cpp/decaf/trunk/src/main/decaf/nio/Buffer.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/decaf/trunk/src/main/decaf/nio/Buffer.cpp?rev=599158&r1=599157&r2=599158&view=diff
==============================================================================
--- activemq/activemq-cpp/decaf/trunk/src/main/decaf/nio/Buffer.cpp (original)
+++ activemq/activemq-cpp/decaf/trunk/src/main/decaf/nio/Buffer.cpp Wed Nov 28 13:49:18 2007
@@ -26,6 +26,7 @@
 
 ////////////////////////////////////////////////////////////////////////////////
 Buffer::Buffer( std::size_t capacity ) {
+    this->_capacity = capacity;
     this->_limit = capacity;
     this->_position = 0;
     this->_mark = 0;
@@ -35,6 +36,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 Buffer::Buffer( const Buffer& other ) {
 
+    this->_capacity = other._capacity;
     this->_limit = other._limit;
     this->_position = other._position;
     this->_mark = other._mark;

Modified: activemq/activemq-cpp/decaf/trunk/src/main/decaf/nio/Buffer.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/decaf/trunk/src/main/decaf/nio/Buffer.h?rev=599158&r1=599157&r2=599158&view=diff
==============================================================================
--- activemq/activemq-cpp/decaf/trunk/src/main/decaf/nio/Buffer.h (original)
+++ activemq/activemq-cpp/decaf/trunk/src/main/decaf/nio/Buffer.h Wed Nov 28 13:49:18 2007
@@ -126,6 +126,7 @@
     protected:
 
         mutable std::size_t _position;
+        std::size_t _capacity;
         std::size_t _limit;
         std::size_t _mark;
         bool _markSet;
@@ -141,7 +142,9 @@
         /**
          * @returns this buffer's capacity.
          */
-        virtual std::size_t capacity() const = 0;
+        virtual std::size_t capacity() const {
+            return this->_capacity;
+        }
 
         /**
          * @returns the current position in the buffer

Modified: activemq/activemq-cpp/decaf/trunk/src/main/decaf/nio/ByteBuffer.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/decaf/trunk/src/main/decaf/nio/ByteBuffer.cpp?rev=599158&r1=599157&r2=599158&view=diff
==============================================================================
--- activemq/activemq-cpp/decaf/trunk/src/main/decaf/nio/ByteBuffer.cpp (original)
+++ activemq/activemq-cpp/decaf/trunk/src/main/decaf/nio/ByteBuffer.cpp Wed Nov 28 13:49:18
2007
@@ -56,9 +56,10 @@
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-ByteBuffer::ByteBuffer( ByteArrayPerspective& array, std::size_t offset, bool readOnly
)
+ByteBuffer::ByteBuffer( ByteArrayPerspective& array, std::size_t offset,
+                        std::size_t length, bool readOnly )
     throw( decaf::lang::exceptions::IndexOutOfBoundsException )
- :  Buffer( array.getCapacity() - offset ) {
+ :  Buffer( length ) {
 
     try{
         if( offset > array.getCapacity() ) {
@@ -512,7 +513,7 @@
 
     try{
 
-        if( (offset + index) >= this->limit() ) {
+        if( index >= this->limit() ) {
             throw IndexOutOfBoundsException(
                 __FILE__, __LINE__,
                 "ByteBuffer::get - Not enough data to fill request." );
@@ -733,13 +734,13 @@
         if( this->isReadOnly() ) {
             throw ReadOnlyBufferException(
                 __FILE__, __LINE__,
-                "ByteBuffer::put() - Buffer is Read Only." );
+                "ByteBuffer::put(i,i) - Buffer is Read Only." );
         }
 
-        if( (offset + index) >= this->limit() ) {
+        if( index >= this->limit() ) {
             throw IndexOutOfBoundsException(
                 __FILE__, __LINE__,
-                "ByteBuffer::get - Not enough data to fill request." );
+                "ByteBuffer::put(i,i) - Not enough data to fill request." );
         }
 
         (*(this->_array))[this->offset + index] = value;
@@ -991,8 +992,10 @@
 ByteBuffer* ByteBuffer::slice() const {
 
     try{
+
         return new ByteBuffer( *(this->_array),
                                this->offset + this->position(),
+                               this->remaining(),
                                this->isReadOnly() );
     }
     DECAF_CATCH_RETHROW( Exception )

Modified: activemq/activemq-cpp/decaf/trunk/src/main/decaf/nio/ByteBuffer.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/decaf/trunk/src/main/decaf/nio/ByteBuffer.h?rev=599158&r1=599157&r2=599158&view=diff
==============================================================================
--- activemq/activemq-cpp/decaf/trunk/src/main/decaf/nio/ByteBuffer.h (original)
+++ activemq/activemq-cpp/decaf/trunk/src/main/decaf/nio/ByteBuffer.h Wed Nov 28 13:49:18
2007
@@ -139,12 +139,14 @@
          * will be that of the remaining capacity of the passed buffer.
          * @param array - the ByteArrayPerspective to wrap
          * @param offset - the offset into array where the buffer starts
+         * @param length - the length of the array we are wrapping or limit.
          * @param readOnly - is this a readOnly buffer.
          * @throws NullPointerException if buffer is NULL
          * @throws IndexOutOfBoundsException if offset is greater than array capacity.
          */
         ByteBuffer( internal::nio::ByteArrayPerspective& array,
-                    std::size_t offset, bool readOnly = false )
+                    std::size_t offset, std::size_t length,
+                    bool readOnly = false )
             throw( decaf::lang::exceptions::IndexOutOfBoundsException );
 
         /**
@@ -164,13 +166,6 @@
         virtual std::string toString() const;
 
     public:
-
-        /**
-         * @returns this buffer's capacity.
-         */
-        virtual std::size_t capacity() const {
-            return this->_array->getCapacity() - this->offset;
-        }
 
         /**
          * Tells whether or not this buffer is read-only.



Mime
View raw message