getRequestHandler(Reference rf, Ice.ObjectPrxHelperBase proxy)
 {
     if(rf.getCollocationOptimized())
     {
         Ice.ObjectAdapter adapter = _instance.objectAdapterFactory().findObjectAdapter(proxy);
         if(adapter != null)
         {
             return new CollocatedRequestHandler(rf, adapter);
         }
     }
     
     if(rf.getCacheConnection())
     {
         lock(this)
         {
             RequestHandler handler;
             if(_handlers.TryGetValue(rf, out handler))
             {
                 return handler;
             }
             
             handler = new ConnectRequestHandler(rf, proxy);
             _handlers.Add(rf, handler);
             return handler;
         }
     }
     else
     {
         return new ConnectRequestHandler(rf, proxy);
     }
 }
Exemple #2
0
        getRequestHandler(RoutableReference rf, Ice.ObjectPrxHelperBase proxy)
        {
            if (rf.getCollocationOptimized())
            {
                Ice.ObjectAdapter adapter = _instance.objectAdapterFactory().findObjectAdapter(proxy);
                if (adapter != null)
                {
                    return(proxy.iceSetRequestHandler(new CollocatedRequestHandler(rf, adapter)));
                }
            }

            bool connect = false;
            ConnectRequestHandler handler;

            if (rf.getCacheConnection())
            {
                lock (this)
                {
                    if (!_handlers.TryGetValue(rf, out handler))
                    {
                        handler = new ConnectRequestHandler(rf, proxy);
                        _handlers.Add(rf, handler);
                        connect = true;
                    }
                }
            }
            else
            {
                handler = new ConnectRequestHandler(rf, proxy);
                connect = true;
            }

            if (connect)
            {
                rf.getConnection(handler);
            }
            return(proxy.iceSetRequestHandler(handler.connect(proxy)));
        }
        getRequestHandler(RoutableReference rf, Ice.ObjectPrxHelperBase proxy)
        {
            if(rf.getCollocationOptimized())
            {
                Ice.ObjectAdapter adapter = _instance.objectAdapterFactory().findObjectAdapter(proxy);
                if(adapter != null)
                {
                    return proxy.setRequestHandler__(new CollocatedRequestHandler(rf, adapter));
                }
            }

            bool connect = false;
            ConnectRequestHandler handler;
            if(rf.getCacheConnection())
            {
                lock(this)
                {
                    if(!_handlers.TryGetValue(rf, out handler))
                    {
                        handler = new ConnectRequestHandler(rf, proxy);
                        _handlers.Add(rf, handler);
                        connect = true;
                    }
                }
            }
            else
            {
                handler = new ConnectRequestHandler(rf, proxy);
                connect = true;
            }

            if(connect)
            {
                rf.getConnection(handler);
            }
            return proxy.setRequestHandler__(handler.connect(proxy));
        }