home *** CD-ROM | disk | FTP | other *** search
- package sun.rmi.transport;
-
- import java.io.Externalizable;
- import java.io.IOException;
- import java.io.ObjectInput;
- import java.io.ObjectOutput;
- import java.rmi.RemoteException;
- import java.rmi.server.ObjID;
- import sun.rmi.transport.tcp.TCPEndpoint;
-
- public class LiveRef implements Externalizable {
- // $FF: renamed from: ep sun.rmi.transport.Endpoint
- private transient Endpoint field_0;
- // $FF: renamed from: id java.rmi.server.ObjID
- private transient ObjID field_1;
- // $FF: renamed from: ch sun.rmi.transport.Channel
- private transient Channel field_2;
- private transient boolean counted;
- private transient boolean isLocal;
-
- private LiveRef(ObjID var1, Endpoint var2, Channel var3, boolean var4) {
- this.counted = false;
- this.isLocal = false;
- this.field_0 = var2;
- this.field_1 = var1;
- this.field_2 = var3;
- this.isLocal = var4;
- }
-
- LiveRef copy() {
- return new LiveRef(this.field_1, this.field_0, this.field_2, this.isLocal);
- }
-
- public LiveRef(ObjID var1, Endpoint var2, boolean var3) {
- this(var1, var2, (Channel)null, var3);
- }
-
- public LiveRef() {
- this.counted = false;
- this.isLocal = false;
- }
-
- public LiveRef(int var1) {
- this(new ObjID(), var1);
- }
-
- public int getPort() {
- return ((TCPEndpoint)this.field_0).getPort();
- }
-
- public LiveRef(ObjID var1, int var2) {
- this(var1, TCPEndpoint.getLocalEndpoint(var2), true);
- }
-
- public void exportObject(Target var1) throws RemoteException {
- this.field_0.exportObject(this.field_1, var1);
- }
-
- public Channel getChannel() throws RemoteException {
- if (this.field_2 == null) {
- this.field_2 = this.field_0.getChannel();
- }
-
- return this.field_2;
- }
-
- public ObjID getObjID() {
- return this.field_1;
- }
-
- Endpoint getEndpoint() {
- return this.field_0;
- }
-
- void counted() {
- this.counted = true;
- }
-
- public String toString() {
- String var1;
- if (this.isLocal) {
- var1 = "local";
- } else {
- var1 = "remote";
- }
-
- return "[endpoint:" + this.field_0 + "(" + var1 + ")," + "objID:" + this.field_1 + "]";
- }
-
- public int hashCode() {
- return this.field_1.hashCode();
- }
-
- public boolean equals(Object var1) {
- if (var1 instanceof LiveRef) {
- LiveRef var2 = (LiveRef)var1;
- return this.field_0.equals(var2.field_0) && this.field_1.equals(var2.field_1) && this.isLocal == var2.isLocal;
- } else {
- return false;
- }
- }
-
- public boolean remoteEquals(Object var1) {
- if (var1 instanceof LiveRef) {
- LiveRef var2 = (LiveRef)var1;
- return this.field_0.equals(var2.field_0) && this.field_1.equals(var2.field_1);
- } else {
- return false;
- }
- }
-
- public void writeExternal(ObjectOutput var1) throws IOException {
- boolean var2 = false;
- if (var1 instanceof ConnectionOutputStream) {
- ConnectionOutputStream var3 = (ConnectionOutputStream)var1;
- if (this.isLocal) {
- Target var4 = ObjectTable.getTarget(this.field_1);
- if (var4 == null) {
- throw new IOException("attempt to marshal unexported object reference: " + this);
- }
-
- var4.pinImpl();
- }
-
- var2 = var3.isResultStream();
- if (var2) {
- var3.saveRef(this);
- }
- }
-
- ((TCPEndpoint)this.field_0).write(var1);
- this.field_1.write(var1);
- var1.writeBoolean(var2);
- }
-
- public void readExternal(ObjectInput var1) throws IOException, ClassNotFoundException {
- this.field_0 = TCPEndpoint.read(var1);
- this.field_1 = ObjID.read(var1);
- boolean var2 = var1.readBoolean();
- this.field_2 = null;
- this.isLocal = false;
- this.counted = false;
- if (var1 instanceof ConnectionInputStream) {
- ConnectionInputStream var3 = (ConnectionInputStream)var1;
- var3.saveRef(this);
- if (var2) {
- var3.setAckNeeded();
- return;
- }
- } else {
- DGCClient.referenced(this);
- }
-
- }
-
- public void finalize() throws Throwable {
- if (!this.isLocal && !this.field_1.equals(DGCImpl.getID()) && this.counted) {
- DGCClient.unreferenced(this);
- }
-
- }
- }
-