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/09/03 03:17:48 UTC
svn commit: r267370 -
/directory/shared/ldap/branches/new-codec-integration/apache2-provider/src/java/main/org/apache/asn1new/ldap/TwixDecoder.java
Author: elecharny
Date: Fri Sep 2 18:17:44 2005
New Revision: 267370
URL: http://svn.apache.org/viewcvs?rev=267370&view=rev
Log:
- Added the missing code to fully implement the decoder
- Added some logs
- Added some doco
Modified:
directory/shared/ldap/branches/new-codec-integration/apache2-provider/src/java/main/org/apache/asn1new/ldap/TwixDecoder.java
Modified: directory/shared/ldap/branches/new-codec-integration/apache2-provider/src/java/main/org/apache/asn1new/ldap/TwixDecoder.java
URL: http://svn.apache.org/viewcvs/directory/shared/ldap/branches/new-codec-integration/apache2-provider/src/java/main/org/apache/asn1new/ldap/TwixDecoder.java?rev=267370&r1=267369&r2=267370&view=diff
==============================================================================
--- directory/shared/ldap/branches/new-codec-integration/apache2-provider/src/java/main/org/apache/asn1new/ldap/TwixDecoder.java (original)
+++ directory/shared/ldap/branches/new-codec-integration/apache2-provider/src/java/main/org/apache/asn1new/ldap/TwixDecoder.java Fri Sep 2 18:17:44 2005
@@ -3,27 +3,34 @@
import java.io.InputStream;
import java.nio.ByteBuffer;
-import org.apache.asn1.ber.digester.BERDigester;
import org.apache.asn1.codec.DecoderException;
import org.apache.asn1.codec.stateful.DecoderCallback;
import org.apache.asn1.codec.stateful.DecoderMonitor;
-import org.apache.asn1.codec.stateful.StatefulDecoder;
import org.apache.asn1new.ber.Asn1Decoder;
-import org.apache.asn1new.ber.containers.IAsn1Container;
import org.apache.asn1new.ber.tlv.TLVStateEnum;
import org.apache.asn1new.ldap.codec.LdapDecoder;
import org.apache.asn1new.ldap.codec.LdapMessageContainer;
-import org.apache.ldap.common.berlib.asn1.decoder.LdapDigesterFactory;
-import org.apache.ldap.common.message.Message;
+import org.apache.asn1new.util.StringUtils;
import org.apache.ldap.common.message.spi.Provider;
import org.apache.ldap.common.message.spi.ProviderDecoder;
import org.apache.ldap.common.message.spi.ProviderException;
+import org.apache.log4j.Logger;
public class TwixDecoder implements ProviderDecoder {
+ /** The logger */
+ private static final Logger log = Logger.getLogger( TwixDecoder.class );
+
+ /** The associated Provider */
private final Provider provider;
+ /** The message container for this instance */
private final LdapMessageContainer ldapMessageContainer;
+
+ /** The Ldap BDER decoder instance */
private final Asn1Decoder ldapDecoder;
+
+ /** The callback to call when the decoding is done */
+ private DecoderCallback decoderCallback;
/**
* Creates an instance of a Twix Decoder implementation.
@@ -37,6 +44,9 @@
ldapDecoder = new LdapDecoder();
}
+ /**
+ *
+ */
public void decode( Object encoded ) throws DecoderException
{
ByteBuffer buf = null;
@@ -55,12 +65,35 @@
"ByteBuffer argument but got a " + encoded.getClass() );
}
+ if (log.isDebugEnabled())
+ {
+ log.debug( "Decoding the PDU : " );
+
+ if (buf.hasArray())
+ {
+ log.debug( StringUtils.dumpBytes( buf.array() ) );
+ }
+ else
+ {
+ byte[] array = new byte[buf.capacity()];
+ int i = 0;
+
+ while ( buf.hasRemaining() )
+ {
+ array[i++] = buf.get();
+ }
+
+ buf.flip();
+ log.debug( StringUtils.dumpBytes( array ) );
+ }
+ }
+
ldapDecoder.decode( buf, ldapMessageContainer );
if ( ldapMessageContainer.getState() == TLVStateEnum.PDU_DECODED )
{
- // Send the result to the callback.
- // TO BE DONE
+ decoderCallback.decodeOccurred( null, ldapMessageContainer.getLdapMessage() );
+ ldapMessageContainer.clean();
}
}
@@ -170,11 +203,18 @@
return provider ;
}
+ /**
+ *
+ */
public void setDecoderMonitor( DecoderMonitor monitor )
{
}
+ /**
+ *
+ */
public void setCallback( DecoderCallback cb )
{
+ decoderCallback = cb;
}
}