-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRemoteServer.java
More file actions
115 lines (107 loc) · 3.01 KB
/
RemoteServer.java
File metadata and controls
115 lines (107 loc) · 3.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
/*
* Copyright (c) 1996, 2002, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
package java.rmi.server;
import java.rmi.*;
import sun.rmi.server.UnicastServerRef;
import sun.rmi.runtime.Log;
/**
* The <code>RemoteServer</code> class is the common superclass to server
* implementations and provides the framework to support a wide range
* of remote reference semantics. Specifically, the functions needed
* to create and export remote objects (i.e. to make them remotely
* available) are provided abstractly by <code>RemoteServer</code> and
* concretely by its subclass(es).
*
* @author Ann Wollrath
* @since JDK1.1
*/
public abstract class RemoteServer extends RemoteObject
{
/* indicate compatibility with JDK 1.1.x version of class */
private static final long serialVersionUID = -4100238210092549637L;
/**
* Constructs a <code>RemoteServer</code>.
* @since JDK1.1
*/
protected RemoteServer() {
super();
}
/**
* Constructs a <code>RemoteServer</code> with the given reference type.
*
* @param ref the remote reference
* @since JDK1.1
*/
protected RemoteServer(RemoteRef ref) {
super(ref);
}
/**
* Returns a string representation of the client host for the
* remote method invocation being processed in the current thread.
*
* @return a string representation of the client host
*
* @throws ServerNotActiveException if no remote method invocation
* is being processed in the current thread
*
* @since JDK1.1
*/
public static String getClientHost() throws ServerNotActiveException {
return sun.rmi.transport.tcp.TCPTransport.getClientHost();
}
/**
* Log RMI calls to the output stream <code>out</code>. If
* <code>out</code> is <code>null</code>, call logging is turned off.
*
* <p>If there is a security manager, its
* <code>checkPermission</code> method will be invoked with a
* <code>java.util.logging.LoggingPermission("control")</code>
* permission; this could result in a <code>SecurityException</code>.
*
* @param out the output stream to which RMI calls should be logged
* @throws SecurityException if there is a security manager and
* the invocation of its <code>checkPermission</code> method
* fails
* @see #getLog
* @since JDK1.1
*/
public static void setLog(java.io.OutputStream out)
{
logNull = (out == null);
UnicastServerRef.callLog.setOutputStream(out);
}
/**
* Returns stream for the RMI call log.
* @return the call log
* @see #setLog
* @since JDK1.1
*/
public static java.io.PrintStream getLog()
{
return (logNull ? null : UnicastServerRef.callLog.getPrintStream());
}
// initialize log status
private static boolean logNull = !UnicastServerRef.logCalls;
}