src/java.corba/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java

Print this page




 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         }