You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by mt...@apache.org on 2009/06/22 10:59:26 UTC

svn commit: r787171 - in /commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime: Descriptor32.java Descriptor64.java Pointer32.java Pointer64.java util/Utils.java

Author: mturk
Date: Mon Jun 22 08:59:26 2009
New Revision: 787171

URL: http://svn.apache.org/viewvc?rev=787171&view=rev
Log:
Add and use Utils class

Added:
    commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/util/Utils.java   (with props)
Modified:
    commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Descriptor32.java
    commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Descriptor64.java
    commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Pointer32.java
    commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Pointer64.java

Modified: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Descriptor32.java
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Descriptor32.java?rev=787171&r1=787170&r2=787171&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Descriptor32.java (original)
+++ commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Descriptor32.java Mon Jun 22 08:59:26 2009
@@ -16,6 +16,8 @@
 
 package org.apache.commons.runtime;
 
+import org.apache.commons.runtime.util.Utils;
+
 /** Represents the Operating System 32-bit object descriptor.
  * <p>
  * IHANDLE always represents the posix int descriptor.
@@ -74,8 +76,7 @@
     public String toString()
     {
         if (PHANDLE != 0) {
-            String h = Integer.toHexString(PHANDLE);
-            return ("00000000" + h).substring(h.length());
+            return Utils.hex(PHANDLE);
         }
         else if (IHANDLE >= 0) {
             return Integer.toString(IHANDLE);

Modified: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Descriptor64.java
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Descriptor64.java?rev=787171&r1=787170&r2=787171&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Descriptor64.java (original)
+++ commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Descriptor64.java Mon Jun 22 08:59:26 2009
@@ -16,6 +16,8 @@
 
 package org.apache.commons.runtime;
 
+import org.apache.commons.runtime.util.Utils;
+
 /** Represents the Operating System 64-bit object descriptor.
  * <p>
  * IHANDLE always represents the posix int descriptor.
@@ -74,8 +76,7 @@
     public String toString()
     {
         if (PHANDLE != 0) {
-            String h = Long.toHexString(PHANDLE);
-            return ("0000000000000000" + h).substring(h.length());
+            return Utils.hex(PHANDLE);
         }
         else if (IHANDLE >= 0) {
             return Integer.toString(IHANDLE);

Modified: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Pointer32.java
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Pointer32.java?rev=787171&r1=787170&r2=787171&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Pointer32.java (original)
+++ commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Pointer32.java Mon Jun 22 08:59:26 2009
@@ -16,6 +16,8 @@
 
 package org.apache.commons.runtime;
 
+import org.apache.commons.runtime.util.Utils;
+
 /** Represents the Operating System 32-bit pointer C/C++ pointer.
  * <p>
  * <b>Warning:</b><br/>Using this class improperly may crash the running JVM.
@@ -138,8 +140,7 @@
     public String toString()
     {
         if (POINTER != 0) {
-            String h = Integer.toHexString(POINTER);
-            return "0x" + ("00000000" + h).substring(h.length());
+            return "0x" + Utils.hex(POINTER);
         }
         else {
             return "(nil)";

Modified: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Pointer64.java
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Pointer64.java?rev=787171&r1=787170&r2=787171&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Pointer64.java (original)
+++ commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Pointer64.java Mon Jun 22 08:59:26 2009
@@ -16,6 +16,8 @@
 
 package org.apache.commons.runtime;
 
+import org.apache.commons.runtime.util.Utils;
+
 /** Represents the Operating System 32-bit pointer C/C++ pointer.
  * <p>
  * <b>Warning:</b><br/>Using this class improperly may crash the running JVM.
@@ -137,8 +139,7 @@
     public String toString()
     {
         if (POINTER != 0L) {
-            String h = Long.toHexString(POINTER);
-            return "0x" + ("0000000000000000" + h).substring(h.length());
+            return "0x" + Utils.hex(POINTER);
         }
         else {
             return "(nil)";

Added: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/util/Utils.java
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/util/Utils.java?rev=787171&view=auto
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/util/Utils.java (added)
+++ commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/util/Utils.java Mon Jun 22 08:59:26 2009
@@ -0,0 +1,124 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.commons.runtime.util;
+
+import java.io.PrintStream;
+import java.util.Random;
+
+/**
+ * General purpose utilities.
+ *
+ * @author Mladen Turk
+ */
+public final class Utils
+{
+
+    private Utils()
+    {
+        // Private to prevent creation.
+    }
+
+    private static long     counter                = 1024L;
+    private static long     timer                  = System.currentTimeMillis();
+    private static Random   rnd                    = new Random(timer);
+
+    /**
+     * Returns the unique 64 bit id.
+     * Values lower then 1024 are reseved for system ID's.
+     */
+    public static long Id()
+    {
+        long id;
+        synchronized (Utils.class) {
+            id = counter++;
+        }
+        return id;
+    }
+
+    public static void generateRandom(byte[] dst)
+    {
+        rnd.nextBytes(dst);
+    }
+
+    public static String hex(byte val)
+    {
+        String h = Integer.toHexString(val);
+        if (h.length() == 1)
+            h = "0" + h;
+        return h;
+    }
+
+    public static String hex(short val)
+    {
+        String h = Integer.toHexString(val);
+        return ("0000" + h).substring(h.length());
+    }
+
+    public static String hex(int val)
+    {
+        String h = Integer.toHexString(val);
+        return ("00000000" + h).substring(h.length());
+    }
+
+    public static String hex(long val)
+    {
+        String h = Long.toHexString(val);
+        return ("0000000000000000" + h).substring(h.length());
+    }
+
+    public static String dumpBuffer(byte[] data, int offset, int len)
+    {
+        int i;
+        int p = offset;
+
+        if (offset >= data.length)
+            return null;
+        StringBuffer sb = new StringBuffer();
+        sb.append(hex((short)offset));
+        sb.append(": ");
+        for (i = 0; i < 16; i++) {
+            if (i < data.length) {
+                sb.append(hex(data[offset+i]));
+                if (i == 7)
+                    sb.append("|");
+                else
+                    sb.append(" ");
+            }
+            else {
+                sb.append("   ");
+            }
+        }
+        sb.append(" | ");
+        for (i = offset; i < offset + 16; i++) {
+            if (i < data.length) {
+                if (!Character.isISOControl((char)data[i]))
+                    sb.append(new Character((char)data[i]));
+                else
+                    sb.append(".");
+            }
+        }
+        return sb.toString();
+    }
+
+    public static void dumpBuffer(byte[] data, int offset, int len,
+                                  PrintStream out)
+    {
+        out.println(dumpBuffer(data, offset, len));
+    }
+
+}
+

Propchange: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/util/Utils.java
------------------------------------------------------------------------------
    svn:eol-style = native