You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
3.0 KiB
116 lines
3.0 KiB
/*
|
|
* 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;
|
|
}
|