148 import com.sun.corba.se.impl.ior.TaggedComponentFactoryFinderImpl;
149 import com.sun.corba.se.impl.ior.TaggedProfileFactoryFinderImpl;
150 import com.sun.corba.se.impl.ior.TaggedProfileTemplateFactoryFinderImpl;
151 import com.sun.corba.se.impl.oa.toa.TOAFactory;
152 import com.sun.corba.se.impl.oa.poa.BadServerIdHandler;
153 import com.sun.corba.se.impl.oa.poa.DelegateImpl;
154 import com.sun.corba.se.impl.oa.poa.POAFactory;
155 import com.sun.corba.se.impl.orbutil.ORBConstants;
156 import com.sun.corba.se.impl.orbutil.ORBUtility;
157 import com.sun.corba.se.impl.orbutil.StackImpl;
158 import com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl;
159 import com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolManagerImpl;
160 import com.sun.corba.se.impl.protocol.RequestDispatcherRegistryImpl;
161 import com.sun.corba.se.impl.protocol.CorbaInvocationInfo;
162 import com.sun.corba.se.impl.transport.CorbaTransportManagerImpl;
163 import com.sun.corba.se.impl.legacy.connection.LegacyServerSocketManagerImpl;
164 import com.sun.corba.se.impl.util.Utility;
165 import com.sun.corba.se.impl.logging.ORBUtilSystemException;
166 import com.sun.corba.se.impl.copyobject.CopierManagerImpl;
167 import com.sun.corba.se.impl.presentation.rmi.PresentationManagerImpl;
168 import com.sun.corba.se.impl.transport.ManagedLocalsThread;
169
170 /**
171 * The JavaIDL ORB implementation.
172 */
173 public class ORBImpl extends com.sun.corba.se.spi.orb.ORB
174 {
175 protected TransportManager transportManager;
176 protected LegacyServerSocketManager legacyServerSocketManager;
177
178 private ThreadLocal OAInvocationInfoStack ;
179
180 private ThreadLocal clientInvocationInfoStack ;
181
182 // pure java orb, caching the servant IOR per ORB
183 private static IOR codeBaseIOR ;
184
185 // Vector holding deferred Requests
186 private Vector dynamicRequests ;
187 private SynchVariable svResponseReceived ;
188
675 }
676
677 /**
678 * Send multiple dynamic requests asynchronously.
679 *
680 * @param req an array of request objects.
681 */
682 public synchronized void send_multiple_requests_deferred(Request[] req)
683 {
684 checkShutdownState();
685
686 // add the new Requests to pending dynamic Requests
687 for (int i = 0; i < req.length; i++) {
688 dynamicRequests.addElement(req[i]);
689 }
690
691 // Invoke the send_deferred on each new Request
692 for (int i = 0; i < req.length; i++) {
693 AsynchInvoke invokeObject = new AsynchInvoke( this,
694 (com.sun.corba.se.impl.corba.RequestImpl)req[i], true);
695 new ManagedLocalsThread(invokeObject).start();
696 }
697 }
698
699 /**
700 * Find out if any of the deferred invocations have a response yet.
701 */
702 public synchronized boolean poll_next_response()
703 {
704 checkShutdownState();
705
706 Request currRequest;
707
708 // poll on each pending request
709 Enumeration ve = dynamicRequests.elements();
710 while (ve.hasMoreElements() == true) {
711 currRequest = (Request)ve.nextElement();
712 if (currRequest.poll_response() == true) {
713 return true;
714 }
715 }
|
148 import com.sun.corba.se.impl.ior.TaggedComponentFactoryFinderImpl;
149 import com.sun.corba.se.impl.ior.TaggedProfileFactoryFinderImpl;
150 import com.sun.corba.se.impl.ior.TaggedProfileTemplateFactoryFinderImpl;
151 import com.sun.corba.se.impl.oa.toa.TOAFactory;
152 import com.sun.corba.se.impl.oa.poa.BadServerIdHandler;
153 import com.sun.corba.se.impl.oa.poa.DelegateImpl;
154 import com.sun.corba.se.impl.oa.poa.POAFactory;
155 import com.sun.corba.se.impl.orbutil.ORBConstants;
156 import com.sun.corba.se.impl.orbutil.ORBUtility;
157 import com.sun.corba.se.impl.orbutil.StackImpl;
158 import com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl;
159 import com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolManagerImpl;
160 import com.sun.corba.se.impl.protocol.RequestDispatcherRegistryImpl;
161 import com.sun.corba.se.impl.protocol.CorbaInvocationInfo;
162 import com.sun.corba.se.impl.transport.CorbaTransportManagerImpl;
163 import com.sun.corba.se.impl.legacy.connection.LegacyServerSocketManagerImpl;
164 import com.sun.corba.se.impl.util.Utility;
165 import com.sun.corba.se.impl.logging.ORBUtilSystemException;
166 import com.sun.corba.se.impl.copyobject.CopierManagerImpl;
167 import com.sun.corba.se.impl.presentation.rmi.PresentationManagerImpl;
168
169 /**
170 * The JavaIDL ORB implementation.
171 */
172 public class ORBImpl extends com.sun.corba.se.spi.orb.ORB
173 {
174 protected TransportManager transportManager;
175 protected LegacyServerSocketManager legacyServerSocketManager;
176
177 private ThreadLocal OAInvocationInfoStack ;
178
179 private ThreadLocal clientInvocationInfoStack ;
180
181 // pure java orb, caching the servant IOR per ORB
182 private static IOR codeBaseIOR ;
183
184 // Vector holding deferred Requests
185 private Vector dynamicRequests ;
186 private SynchVariable svResponseReceived ;
187
674 }
675
676 /**
677 * Send multiple dynamic requests asynchronously.
678 *
679 * @param req an array of request objects.
680 */
681 public synchronized void send_multiple_requests_deferred(Request[] req)
682 {
683 checkShutdownState();
684
685 // add the new Requests to pending dynamic Requests
686 for (int i = 0; i < req.length; i++) {
687 dynamicRequests.addElement(req[i]);
688 }
689
690 // Invoke the send_deferred on each new Request
691 for (int i = 0; i < req.length; i++) {
692 AsynchInvoke invokeObject = new AsynchInvoke( this,
693 (com.sun.corba.se.impl.corba.RequestImpl)req[i], true);
694 new sun.misc.ManagedLocalsThread(invokeObject).start();
695 }
696 }
697
698 /**
699 * Find out if any of the deferred invocations have a response yet.
700 */
701 public synchronized boolean poll_next_response()
702 {
703 checkShutdownState();
704
705 Request currRequest;
706
707 // poll on each pending request
708 Enumeration ve = dynamicRequests.elements();
709 while (ve.hasMoreElements() == true) {
710 currRequest = (Request)ve.nextElement();
711 if (currRequest.poll_response() == true) {
712 return true;
713 }
714 }
|