You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2005/02/03 18:36:05 UTC
svn commit: r151191 - in
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1:
BufferConsumer.java MessageConsumer.java MessageProducer.java
TupleConsumer.java TupleProducer.java ber/TagOctetCollector.java decoders/
decoders/TagDecoder.java
Author: akarasulu
Date: Thu Feb 3 09:35:59 2005
New Revision: 151191
URL: http://svn.apache.org/viewcvs?view=rev&rev=151191
Log:
adding some interfaces to play with
Added:
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/BufferConsumer.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/MessageConsumer.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/MessageProducer.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/TupleConsumer.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/TupleProducer.java
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/decoders/
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/decoders/TagDecoder.java
Modified:
incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/TagOctetCollector.java
Added: incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/BufferConsumer.java
URL: http://svn.apache.org/viewcvs/incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/BufferConsumer.java?view=auto&rev=151191
==============================================================================
--- incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/BufferConsumer.java (added)
+++ incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/BufferConsumer.java Thu Feb 3 09:35:59 2005
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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.asn1;
+
+
+import java.nio.ByteBuffer;
+import java.util.List;
+
+
+/**
+ * A ByteBuffer consumer.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public interface BufferConsumer
+{
+ /**
+ * Consumes a list of ByteBuffers.
+ *
+ * @param bbs a list containing ByteBuffers
+ */
+ void consume( List bbs );
+
+ /**
+ * Consumes a ByteBuffer.
+ *
+ * @param bb the ByteBuffer to consume
+ */
+ void consume( ByteBuffer bb );
+
+ /**
+ * Consumes an array of ByteBuffers.
+ *
+ * @param bbs an array of ByteBuffers
+ */
+ void consume( ByteBuffer[] bbs );
+}
Added: incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/MessageConsumer.java
URL: http://svn.apache.org/viewcvs/incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/MessageConsumer.java?view=auto&rev=151191
==============================================================================
--- incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/MessageConsumer.java (added)
+++ incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/MessageConsumer.java Thu Feb 3 09:35:59 2005
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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.asn1;
+
+
+/**
+ * Document this class.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public interface MessageConsumer
+{
+ void consume( Object msg );
+}
Added: incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/MessageProducer.java
URL: http://svn.apache.org/viewcvs/incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/MessageProducer.java?view=auto&rev=151191
==============================================================================
--- incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/MessageProducer.java (added)
+++ incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/MessageProducer.java Thu Feb 3 09:35:59 2005
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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.asn1;
+
+
+/**
+ * A PDU message producer.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public interface MessageProducer
+{
+ void connect( MessageConsumer consumer );
+}
Added: incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/TupleConsumer.java
URL: http://svn.apache.org/viewcvs/incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/TupleConsumer.java?view=auto&rev=151191
==============================================================================
--- incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/TupleConsumer.java (added)
+++ incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/TupleConsumer.java Thu Feb 3 09:35:59 2005
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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.asn1;
+
+
+/**
+ * A Tuple consumer.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public interface TupleConsumer
+{
+ void consume( Tuple tuple );
+}
Added: incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/TupleProducer.java
URL: http://svn.apache.org/viewcvs/incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/TupleProducer.java?view=auto&rev=151191
==============================================================================
--- incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/TupleProducer.java (added)
+++ incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/TupleProducer.java Thu Feb 3 09:35:59 2005
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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.asn1;
+
+
+/**
+ * An object that generates Tuple objects.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public interface TupleProducer
+{
+ void connect( TupleConsumer consumer );
+}
Modified: incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/TagOctetCollector.java
URL: http://svn.apache.org/viewcvs/incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/TagOctetCollector.java?view=diff&r1=151190&r2=151191
==============================================================================
--- incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/TagOctetCollector.java (original)
+++ incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/ber/TagOctetCollector.java Thu Feb 3 09:35:59 2005
@@ -23,18 +23,18 @@
/**
- * Collects up to 4 tag octets.
+ * Collects up to 4 tag octets max.
*
- * @author <a href="mailto:directory-dev@incubator.apache.org">
- * Apache Directory Project</a>
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
* @version $Rev$
*/
public class TagOctetCollector
{
/** the int used to store the tag octets */
private int intValue = 0 ;
+
/** the number of octets currently stored */
- private int _size = 0 ;
+ private int size = 0 ;
/**
@@ -44,25 +44,42 @@
*/
public void put( byte octet )
{
- switch( _size )
+ switch( size )
{
case(0):
+
intValue = octet << 24 ;
- _size = 1 ;
+
+ size = 1 ;
+
break ;
+
case(1):
+
intValue |= ( octet << 16 ) & 0x00FF0000 ;
- _size = 2 ;
+
+ size = 2 ;
+
break ;
+
case(2):
+
intValue |= ( octet << 8 ) & 0x0000FF00 ;
- _size = 3 ;
+
+ size = 3 ;
+
break ;
+
case(3):
+
intValue |= octet ;
- _size = 4 ;
+
+ size = 4 ;
+
break ;
+
default:
+
throw new BufferOverflowException() ;
}
}
@@ -74,7 +91,8 @@
public void clear()
{
intValue = 0 ;
- _size = 0 ;
+
+ size = 0 ;
}
@@ -85,7 +103,7 @@
*/
public int size()
{
- return _size ;
+ return size ;
}
@@ -107,34 +125,55 @@
*/
public byte[] toArray()
{
- byte[] octets = new byte[_size] ;
+ byte[] octets = new byte[size] ;
- switch( _size )
+ switch( size )
{
case(0):
+
octets = ArrayUtils.EMPTY_BYTE_ARRAY ;
+
break ;
+
case(1):
+
octets[0] = ( byte ) ( ( intValue & 0xff000000 ) >> 24 ) ;
+
break ;
+
case(2):
+
octets[0] = ( byte ) ( ( intValue & 0xff000000 ) >> 24 ) ;
+
octets[1] = ( byte ) ( ( intValue & 0x00ff0000 ) >> 16 ) ;
+
break ;
+
case(3):
+
octets[0] = ( byte ) ( ( intValue & 0xff000000 ) >> 24 ) ;
+
octets[1] = ( byte ) ( ( intValue & 0x00ff0000 ) >> 16 ) ;
+
octets[2] = ( byte ) ( ( intValue & 0x0000ff00 ) >> 8 ) ;
+
break ;
+
case(4):
+
octets[0] = ( byte ) ( ( intValue & 0xff000000 ) >> 24 ) ;
+
octets[1] = ( byte ) ( ( intValue & 0x00ff0000 ) >> 16 ) ;
+
octets[2] = ( byte ) ( ( intValue & 0x0000ff00 ) >> 8 ) ;
+
octets[3] = ( byte ) ( intValue & 0x000000ff ) ;
+
break ;
+
default:
- throw new IllegalArgumentException(
- "Cannot support more than 4 octets" ) ;
+
+ throw new IllegalArgumentException( "Cannot support more than 4 octets" ) ;
}
return octets ;
@@ -152,29 +191,40 @@
{
byte octet ;
- if ( index >= _size )
+ if ( index >= size )
{
- throw new IndexOutOfBoundsException( "accesing index " + index
- + " with a size of " + _size ) ;
+ throw new IndexOutOfBoundsException( "accesing index " + index + " with a size of " + size ) ;
}
switch( index )
{
case(0):
+
octet = ( byte ) ( ( intValue & 0xff000000 ) >> 24 ) ;
+
break ;
+
case(1):
+
octet = ( byte ) ( ( intValue & 0x00ff0000 ) >> 16 ) ;
+
break ;
+
case(2):
+
octet = ( byte ) ( ( intValue & 0x0000ff00 ) >> 8 ) ;
+
break ;
+
case(3):
+
octet = ( byte ) ( intValue & 0x000000ff ) ;
+
break ;
+
default:
- throw new IllegalArgumentException(
- "Cannot support more than 4 octets" ) ;
+
+ throw new IllegalArgumentException( "Cannot support more than 4 octets" ) ;
}
return octet ;
Added: incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/decoders/TagDecoder.java
URL: http://svn.apache.org/viewcvs/incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/decoders/TagDecoder.java?view=auto&rev=151191
==============================================================================
--- incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/decoders/TagDecoder.java (added)
+++ incubator/directory/asn1/branches/rewrite/ber/src/java/org/apache/asn1/decoders/TagDecoder.java Thu Feb 3 09:35:59 2005
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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.asn1.decoders;
+
+
+import java.util.List;
+import java.nio.ByteBuffer;
+
+import org.apache.asn1.BufferConsumer;
+
+
+/**
+ * Document this class.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public class TagDecoder implements BufferConsumer
+{
+ public void consume( List bbs )
+ {
+ }
+
+
+ public void consume( ByteBuffer bb )
+ {
+ }
+
+
+ public void consume( ByteBuffer[] bbs )
+ {
+ }
+}