95 import com.sun.corba.se.pept.transport.ContactInfoList ;
96 import com.sun.corba.se.spi.orb.ORB;
97 import com.sun.corba.se.spi.orb.ORBVersionFactory;
98 import com.sun.corba.se.spi.protocol.CorbaClientDelegate;
99 import com.sun.corba.se.spi.transport.CorbaContactInfoList ;
100 import com.sun.corba.se.spi.protocol.LocalClientRequestDispatcher ;
101 import com.sun.corba.se.spi.copyobject.ReflectiveCopyException ;
102 import com.sun.corba.se.spi.copyobject.CopierManager ;
103 import com.sun.corba.se.spi.copyobject.ObjectCopierFactory ;
104 import com.sun.corba.se.spi.copyobject.ObjectCopier ;
105 import com.sun.corba.se.impl.io.ValueHandlerImpl;
106 import com.sun.corba.se.impl.orbutil.ORBConstants;
107 import com.sun.corba.se.impl.orbutil.ORBUtility;
108 import com.sun.corba.se.impl.logging.OMGSystemException;
109 import com.sun.corba.se.impl.util.Utility;
110 import com.sun.corba.se.impl.util.IdentityHashtable;
111 import com.sun.corba.se.impl.util.JDKBridge;
112 import com.sun.corba.se.impl.logging.UtilSystemException;
113 import com.sun.corba.se.spi.logging.CORBALogDomains;
114 import sun.corba.SharedSecrets;
115 import com.sun.corba.se.impl.transport.ManagedLocalsThread;
116
117
118 /**
119 * Provides utility methods that can be used by stubs and ties to
120 * perform common operations.
121 */
122 public class Util implements javax.rmi.CORBA.UtilDelegate
123 {
124 // Runs as long as there are exportedServants
125 private static KeepAlive keepAlive = null;
126
127 // Maps targets to ties.
128 private static IdentityHashtable exportedServants = new IdentityHashtable();
129
130 private static final ValueHandlerImpl valueHandlerSingleton =
131 SharedSecrets.getJavaCorbaAccess().newValueHandlerImpl();
132
133 private UtilSystemException utilWrapper = UtilSystemException.get(
134 CORBALogDomains.RPC_ENCODING);
135
735 CopierManager cm = lorb.getCopierManager() ;
736 ObjectCopier copier = cm.getDefaultObjectCopierFactory().make() ;
737 return copier.copy( obj ) ;
738 }
739 } catch (ReflectiveCopyException exc) {
740 RemoteException rexc = new RemoteException() ;
741 rexc.initCause( exc ) ;
742 throw rexc ;
743 }
744 } else {
745 org.omg.CORBA_2_3.portable.OutputStream out =
746 (org.omg.CORBA_2_3.portable.OutputStream)orb.create_output_stream();
747 out.write_value((Serializable)obj);
748 org.omg.CORBA_2_3.portable.InputStream in =
749 (org.omg.CORBA_2_3.portable.InputStream)out.create_input_stream();
750 return in.read_value();
751 }
752 }
753 }
754
755 class KeepAlive extends ManagedLocalsThread
756 {
757 boolean quit = false;
758
759 public KeepAlive ()
760 {
761 setDaemon(false);
762 }
763
764 public synchronized void run ()
765 {
766 while (!quit) {
767 try {
768 wait();
769 } catch (InterruptedException e) {}
770 }
771 }
772
773 public synchronized void quit ()
774 {
775 quit = true;
|
95 import com.sun.corba.se.pept.transport.ContactInfoList ;
96 import com.sun.corba.se.spi.orb.ORB;
97 import com.sun.corba.se.spi.orb.ORBVersionFactory;
98 import com.sun.corba.se.spi.protocol.CorbaClientDelegate;
99 import com.sun.corba.se.spi.transport.CorbaContactInfoList ;
100 import com.sun.corba.se.spi.protocol.LocalClientRequestDispatcher ;
101 import com.sun.corba.se.spi.copyobject.ReflectiveCopyException ;
102 import com.sun.corba.se.spi.copyobject.CopierManager ;
103 import com.sun.corba.se.spi.copyobject.ObjectCopierFactory ;
104 import com.sun.corba.se.spi.copyobject.ObjectCopier ;
105 import com.sun.corba.se.impl.io.ValueHandlerImpl;
106 import com.sun.corba.se.impl.orbutil.ORBConstants;
107 import com.sun.corba.se.impl.orbutil.ORBUtility;
108 import com.sun.corba.se.impl.logging.OMGSystemException;
109 import com.sun.corba.se.impl.util.Utility;
110 import com.sun.corba.se.impl.util.IdentityHashtable;
111 import com.sun.corba.se.impl.util.JDKBridge;
112 import com.sun.corba.se.impl.logging.UtilSystemException;
113 import com.sun.corba.se.spi.logging.CORBALogDomains;
114 import sun.corba.SharedSecrets;
115
116
117 /**
118 * Provides utility methods that can be used by stubs and ties to
119 * perform common operations.
120 */
121 public class Util implements javax.rmi.CORBA.UtilDelegate
122 {
123 // Runs as long as there are exportedServants
124 private static KeepAlive keepAlive = null;
125
126 // Maps targets to ties.
127 private static IdentityHashtable exportedServants = new IdentityHashtable();
128
129 private static final ValueHandlerImpl valueHandlerSingleton =
130 SharedSecrets.getJavaCorbaAccess().newValueHandlerImpl();
131
132 private UtilSystemException utilWrapper = UtilSystemException.get(
133 CORBALogDomains.RPC_ENCODING);
134
734 CopierManager cm = lorb.getCopierManager() ;
735 ObjectCopier copier = cm.getDefaultObjectCopierFactory().make() ;
736 return copier.copy( obj ) ;
737 }
738 } catch (ReflectiveCopyException exc) {
739 RemoteException rexc = new RemoteException() ;
740 rexc.initCause( exc ) ;
741 throw rexc ;
742 }
743 } else {
744 org.omg.CORBA_2_3.portable.OutputStream out =
745 (org.omg.CORBA_2_3.portable.OutputStream)orb.create_output_stream();
746 out.write_value((Serializable)obj);
747 org.omg.CORBA_2_3.portable.InputStream in =
748 (org.omg.CORBA_2_3.portable.InputStream)out.create_input_stream();
749 return in.read_value();
750 }
751 }
752 }
753
754 class KeepAlive extends sun.misc.ManagedLocalsThread
755 {
756 boolean quit = false;
757
758 public KeepAlive ()
759 {
760 setDaemon(false);
761 }
762
763 public synchronized void run ()
764 {
765 while (!quit) {
766 try {
767 wait();
768 } catch (InterruptedException e) {}
769 }
770 }
771
772 public synchronized void quit ()
773 {
774 quit = true;
|