You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2005/05/24 08:30:24 UTC

svn commit: r178089 - /directory/sandbox/trunk/asn1-new-codec/src/java/org/apache/asn1/ber/AbstractContainer.java /directory/sandbox/trunk/asn1-new-codec/src/java/org/apache/asn1/ber/Asn1Decoder.java

Author: elecharny
Date: Mon May 23 23:30:23 2005
New Revision: 178089

URL: http://svn.apache.org/viewcvs?rev=178089&view=rev
Log:
Suppressed the pooling mechanism

Modified:
    directory/sandbox/trunk/asn1-new-codec/src/java/org/apache/asn1/ber/AbstractContainer.java
    directory/sandbox/trunk/asn1-new-codec/src/java/org/apache/asn1/ber/Asn1Decoder.java

Modified: directory/sandbox/trunk/asn1-new-codec/src/java/org/apache/asn1/ber/AbstractContainer.java
URL: http://svn.apache.org/viewcvs/directory/sandbox/trunk/asn1-new-codec/src/java/org/apache/asn1/ber/AbstractContainer.java?rev=178089&r1=178088&r2=178089&view=diff
==============================================================================
--- directory/sandbox/trunk/asn1-new-codec/src/java/org/apache/asn1/ber/AbstractContainer.java (original)
+++ directory/sandbox/trunk/asn1-new-codec/src/java/org/apache/asn1/ber/AbstractContainer.java Mon May 23 23:30:23 2005
@@ -19,13 +19,11 @@
 import org.apache.asn1.ber.containers.IAsn1Container;
 import org.apache.asn1.ber.grammar.IGrammar;
 import org.apache.asn1.ber.tlv.TLV;
-import org.apache.asn1.util.pools.LocalPoolManager;
-import org.apache.asn1.util.pools.PoolObject;
 
 /**
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
-public class AbstractContainer extends PoolObject implements IAsn1Container {
+public class AbstractContainer implements IAsn1Container {
     /** The grammars that are used.
      * It's a stack as we can switch grammars */
     protected IGrammar[] grammarStack;
@@ -45,9 +43,6 @@
     /** The current transition */
     protected int transition;
 
-    /** The pool that is associated with this container */
-    protected LocalPoolManager poolManager;
-
     /** The current TLV */
     protected TLV tlv;
 
@@ -89,24 +84,6 @@
     {
         grammarStack[currentGrammar] = null;
         currentGrammar --;
-    }
-
-    /**
-     * Associate a pool Manager to the container
-     *
-     * @param poolManager The pool manager
-     */
-    public void setPoolManager( LocalPoolManager poolManager )
-    {
-        this.poolManager = poolManager;
-    }
-
-    /**
-     * @return The poolManager associated with this container
-     */
-    public LocalPoolManager getPoolManager()
-    {
-        return poolManager;
     }
 
     /**

Modified: directory/sandbox/trunk/asn1-new-codec/src/java/org/apache/asn1/ber/Asn1Decoder.java
URL: http://svn.apache.org/viewcvs/directory/sandbox/trunk/asn1-new-codec/src/java/org/apache/asn1/ber/Asn1Decoder.java?rev=178089&r1=178088&r2=178089&view=diff
==============================================================================
--- directory/sandbox/trunk/asn1-new-codec/src/java/org/apache/asn1/ber/Asn1Decoder.java (original)
+++ directory/sandbox/trunk/asn1-new-codec/src/java/org/apache/asn1/ber/Asn1Decoder.java Mon May 23 23:30:23 2005
@@ -22,14 +22,9 @@
 import org.apache.asn1.ber.tlv.Length;
 import org.apache.asn1.ber.tlv.TLV;
 import org.apache.asn1.ber.tlv.ITLVBerDecoderMBean;
-import org.apache.asn1.ber.tlv.TLVPoolEnum;
 import org.apache.asn1.ber.tlv.TLVStateEnum;
 import org.apache.asn1.ber.tlv.Tag;
 import org.apache.asn1.util.StringUtils;
-import org.apache.asn1.util.pools.LocalPoolManager;
-import org.apache.asn1.util.pools.PoolEnum;
-import org.apache.asn1.util.pools.PoolException;
-import org.apache.asn1.util.pools.PoolObject;
 
 import org.apache.log4j.Logger;
 
@@ -71,38 +66,16 @@
     /** The maximum number of bytes that could be used to encode the Tag */
     private int maxTagLength;
 
-    /** The local pool Manager */
-    protected LocalPoolManager poolMgr;
-    
-    /** A flag to set the memory mechanism to use */
-    protected boolean isPooled;
-    
     //~ Constructors -------------------------------------------------------------------------------
 
     /**
      * A public constructor of an Asn1 Decoder.
-     * 
-     * @param isPooled Set the memory allocation mechanism. If <code>true</code>,
-     * a pooled mechanism will be used
-     */
-    public Asn1Decoder(boolean isPooled)
-    {
-        this.indefiniteLengthAllowed = false;
-        this.maxLengthLength         = 1;
-        this.maxTagLength            = 1;
-        poolMgr                      = new LocalPoolManager(60, isPooled);
-    }
-
-    /**
-     * A public constructor of an Asn1 Decoder.
      */
     public Asn1Decoder()
     {
         this.indefiniteLengthAllowed = false;
         this.maxLengthLength         = 1;
         this.maxTagLength            = 1;
-        isPooled                     = true;
-        poolMgr                      = new LocalPoolManager(60, isPooled);
     }
 
     //~ Methods ------------------------------------------------------------------------------------
@@ -128,67 +101,59 @@
 
             byte octet = stream.get();
 
-            try
-            {
+            TLV tlv = new TLV();
+            Tag tag = tlv.getTag();
 
-                TLV tlv = ( TLV ) poolMgr.allocate( TLVPoolEnum.TLV_POOL );
-                Tag tag = tlv.getTag();
+            tag.setSize( 1 );
+            tag.setPrimitive( ( octet & Tag.CONSTRUCTED_FLAG ) == 0 );
+            tag.setTypeClass( Tag.TYPE_CLASS[( octet & Tag.TYPE_CLASS_MASK ) >>> 6] );
 
-                tag.setSize( 1 );
-                tag.setPrimitive( ( octet & Tag.CONSTRUCTED_FLAG ) == 0 );
-                tag.setTypeClass( Tag.TYPE_CLASS[( octet & Tag.TYPE_CLASS_MASK ) >>> 6] );
+            int value = octet & Tag.SHORT_MASK;
 
-                int value = octet & Tag.SHORT_MASK;
+            if ( value == Tag.SHORT_MASK )
+            {
 
-                if ( value == Tag.SHORT_MASK )
+                // we have to check the typeClass. UNIVERSAL class is not
+                // allowed with this value.
+                if ( tag.isUniversal() )
                 {
+                    throw new DecoderException( "Universal tag 31 is reserved" );
+                }
 
-                    // we have to check the typeClass. UNIVERSAL class is not
-                    // allowed with this value.
-                    if ( tag.isUniversal() )
-                    {
-                        throw new DecoderException( "Universal tag 31 is reserved" );
-                    }
+                // we will have more than one byte to encode the value
+                // The tag is encoded on [2 - 6 bytes], its value
+                // is container in the 7 lower bits of the bytes following
+                // the first byte.
+                container.setState( TLVStateEnum.TAG_STATE_PENDING );
+                tag.setId( 0 );
+                tag.addByte( octet );
+            }
+            else
+            {
+                // It's a tag wich value is below 30 (31 is not allowed
+                // as it signals a multi-bytes value. Everything is done.
 
-                    // we will have more than one byte to encode the value
-                    // The tag is encoded on [2 - 6 bytes], its value
-                    // is container in the 7 lower bits of the bytes following
-                    // the first byte.
-                    container.setState( TLVStateEnum.TAG_STATE_PENDING );
-                    tag.setId( 0 );
-                    tag.addByte( octet );
-                }
-                else
+                // We have to check for reserved tags if typeClass is UNIVERSAL
+                if ( tag.isUniversal() )
                 {
-                    // It's a tag wich value is below 30 (31 is not allowed
-                    // as it signals a multi-bytes value. Everything is done.
 
-                    // We have to check for reserved tags if typeClass is UNIVERSAL
-                    if ( tag.isUniversal() )
+                    if ( ( value == 14 ) || ( value == 15 ) )
                     {
-
-                        if ( ( value == 14 ) || ( value == 15 ) )
-                        {
-                            throw new DecoderException( "Universal tag " + value + " is reserved" );
-                        }
+                        throw new DecoderException( "Universal tag " + value + " is reserved" );
                     }
-
-                    tag.setId( value );
-                    tag.addByte( octet );
-
-                    // The tag has been completed, we have to decode the Length
-                    container.setState( TLVStateEnum.TAG_STATE_END );
                 }
 
-                // Store the current TLV in the container.
-                container.setCurrentTLV( tlv );
+                tag.setId( value );
+                tag.addByte( octet );
 
-                return MORE;
-            }
-            catch ( PoolException pe )
-            {
-                throw new DecoderException( "Cannot allocate a TLV : " + pe.getMessage() );
+                // The tag has been completed, we have to decode the Length
+                container.setState( TLVStateEnum.TAG_STATE_END );
             }
+
+            // Store the current TLV in the container.
+            container.setCurrentTLV( tlv );
+
+            return MORE;
         }
         else
         {
@@ -557,7 +522,6 @@
 
         // Then we switch to the Start tag state and free the current TLV
         container.setState( TLVStateEnum.TAG_STATE_START );
-        container.getCurrentTLV().free();
 
         return stream.hasRemaining();
     }
@@ -811,26 +775,4 @@
         this.maxTagLength = maxTagLength;
     }
 
-    /**
-     * Ask the local pool manager to allocate an object.
-     *
-     * @param pool The pool in which the object will be taken from
-     *
-     * @return The allocated object
-     *
-     * @throws PoolException Thrown if the object could not be allocated
-     */
-    public PoolObject allocate( int pool ) throws PoolException
-    {
-   		return isPooled ? poolMgr.allocate( pool ) : PoolEnum.allocate( pool );
-    }
-
-    /**
-     * @return Returns the pool manager to the caller.
-     */
-    public LocalPoolManager getPoolManager()
-    {
-
-        return poolMgr;
-    }
 } // end class TLVTagDecoder