diff options
Diffstat (limited to 'libjava/java/rmi/server/UID.java')
-rw-r--r-- | libjava/java/rmi/server/UID.java | 127 |
1 files changed, 0 insertions, 127 deletions
diff --git a/libjava/java/rmi/server/UID.java b/libjava/java/rmi/server/UID.java deleted file mode 100644 index 0f492bae77a..00000000000 --- a/libjava/java/rmi/server/UID.java +++ /dev/null @@ -1,127 +0,0 @@ -/* UID.java -- - Copyright (c) 1996, 1997, 1998, 1999, 2004 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package java.rmi.server; - -import java.io.DataInput; -import java.io.DataOutput; -import java.io.IOException; -import java.io.Serializable; - -public final class UID implements Serializable -{ -private static final long serialVersionUID = 1086053664494604050L; - -private static final Object lock = UID.class; -private static long baseTime = System.currentTimeMillis(); -private static short nextCount = Short.MIN_VALUE; -// This is sun's algorithm - don't ask me why ... -private static final int uniqueNr = (new Object()).hashCode(); - -private int unique; -private long time; -private short count; - -/** - * This is sun's algorithm - don't ask me why ... - */ -public UID() { - synchronized (lock) { - if (nextCount == Short.MAX_VALUE) { - long newtime; - for (;;) { - newtime = System.currentTimeMillis(); - if (newtime - baseTime > 1000) { - break; - } - try { - Thread.sleep(1000); - } - catch (InterruptedException _) { - } - } - baseTime = newtime; - nextCount = Short.MIN_VALUE; - } - count = nextCount++; - unique = uniqueNr; - time = baseTime; - } -} - -public UID(short num) { - unique = (int)num; - time = 0; - count = 0; -} - -public int hashCode() { - return (unique); -} - -public boolean equals(Object obj) { - if (obj instanceof UID) { - UID uid = (UID)obj; - if (this.unique == uid.unique && - this.time == uid.time && - this.count == uid.count) { - return (true); - } - } - return (false); -} - -public String toString() { - return ("[UID: " + unique + "," + time + "," + count + "]"); -} - -public void write(DataOutput out) throws IOException { - out.writeInt(unique); - out.writeLong(time); - out.writeShort(count); -} - -public static UID read(DataInput in) throws IOException { - UID id = new UID(); - id.unique = in.readInt(); - id.time = in.readLong(); - id.count = in.readShort(); - return (id); -} - -} |