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 2004/11/27 10:44:02 UTC
svn commit: r106701 - /incubator/directory/seda/trunk/src/java/org/apache/seda/HexDump.java /incubator/directory/seda/trunk/src/test/org/apache/seda/HexDumpTest.java
Author: akarasulu
Date: Sat Nov 27 01:44:01 2004
New Revision: 106701
URL: http://svn.apache.org/viewcvs?view=rev&rev=106701
Log:
some tools that came in handy
Added:
incubator/directory/seda/trunk/src/java/org/apache/seda/HexDump.java
incubator/directory/seda/trunk/src/test/org/apache/seda/HexDumpTest.java
Added: incubator/directory/seda/trunk/src/java/org/apache/seda/HexDump.java
Url: http://svn.apache.org/viewcvs/incubator/directory/seda/trunk/src/java/org/apache/seda/HexDump.java?view=auto&rev=106701
==============================================================================
--- (empty file)
+++ incubator/directory/seda/trunk/src/java/org/apache/seda/HexDump.java Sat Nov 27 01:44:01 2004
@@ -0,0 +1,113 @@
+/*
+ * 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.seda;
+
+
+import java.nio.ByteBuffer;
+import java.nio.channels.FileChannel;
+import java.io.FileOutputStream;
+import java.io.File;
+import java.io.IOException;
+
+
+/**
+ * Document this class.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public class HexDump
+{
+ private final static char[] hexChars = {
+ '0', '1', '2', '3',
+ '4', '5', '6', '7',
+ '8', '9', 'a', 'b',
+ 'c', 'd', 'e', 'f'
+ };
+
+
+ public static final StringBuffer dump( ByteBuffer[] buffers )
+ {
+ StringBuffer buf = new StringBuffer();
+
+ int byteCount = 0;
+ for ( int ii = 0; ii < buffers.length; ii++ )
+ {
+ ByteBuffer dup = buffers[ii].duplicate();
+ while ( dup.hasRemaining() )
+ {
+ if ( byteCount % 8 == 0 )
+ {
+ buf.append( " " );
+ }
+
+ if ( byteCount % 16 == 0 )
+ {
+ buf.append( '\n' );
+
+ int address = byteCount/16 + 10000000;
+ String addressStr = String.valueOf( address ).substring(1) + "0: ";
+ buf.append( addressStr );
+ }
+
+ byte bite = dup.get();
+ buf.append( hexChars[ ( bite & 0xF0 ) >> 4 ] );
+ buf.append( hexChars[ bite & 0x0F ]);
+ buf.append( ' ' );
+ byteCount++;
+ }
+ }
+
+ return buf;
+ }
+
+
+ public static void dump( String filename, ByteBuffer[] buffers ) throws IOException
+ {
+ File f = new File( filename );
+ f.createNewFile();
+ FileOutputStream outStream = new FileOutputStream( f );
+ FileChannel out = outStream.getChannel();
+
+ ByteBuffer[] dups = new ByteBuffer[ buffers.length ];
+ for ( int ii = 0; ii < buffers.length; ii++ )
+ {
+ dups[ii] = buffers[ii].duplicate();
+ }
+
+ while ( hasRemaining( dups ) )
+ {
+ out.write( dups );
+ }
+
+ outStream.close();
+ }
+
+
+ public static boolean hasRemaining( ByteBuffer[] buffers )
+ {
+ for ( int ii = 0; ii < buffers.length; ii++ )
+ {
+ if ( buffers[ii].hasRemaining() )
+ {
+ return true;
+ }
+ }
+
+ return false;
+ }
+}
Added: incubator/directory/seda/trunk/src/test/org/apache/seda/HexDumpTest.java
Url: http://svn.apache.org/viewcvs/incubator/directory/seda/trunk/src/test/org/apache/seda/HexDumpTest.java?view=auto&rev=106701
==============================================================================
--- (empty file)
+++ incubator/directory/seda/trunk/src/test/org/apache/seda/HexDumpTest.java Sat Nov 27 01:44:01 2004
@@ -0,0 +1,41 @@
+/*
+ * 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.seda;
+
+
+import java.nio.ByteBuffer;
+
+import junit.framework.TestCase;
+
+
+/**
+ * Document this class.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public class HexDumpTest extends TestCase
+{
+ public void testDump()
+ {
+ ByteBuffer[] buffers = new ByteBuffer[] {
+ ByteBuffer.wrap( "Hello World this is the hex dump tool".getBytes() )
+ };
+
+ System.err.println( HexDump.dump( buffers ) );
+ }
+}