public override void nestedCall(int level, NestedPrx proxy, Ice.Current current) { System.Console.Out.WriteLine("" + level); if(--level > 0) { // // Ensure the invocation times out if the nesting level is too // high and there are no more threads in the thread pool to // dispatch the call. // ((NestedPrx)proxy.ice_invocationTimeout(5000)).nestedCall(level, _self); } }
public override void nestedCall(int level, NestedPrx proxy, Ice.Current current) { System.Console.Out.WriteLine("" + level); if (--level > 0) { // // Ensure the invocation times out if the nesting level is too // high and there are no more threads in the thread pool to // dispatch the call. // ((NestedPrx)proxy.ice_invocationTimeout(5000)).nestedCall(level, _self); } }
public override int run(string[] args) { if (args.Length > 0) { Console.Error.WriteLine(appName() + ": too many arguments"); return(1); } NestedPrx nested = NestedPrxHelper.checkedCast(communicator().propertyToProxy("Nested.Proxy")); if (nested == null) { Console.Error.WriteLine("invalid proxy"); return(1); } // // Ensure the invocation times out if the nesting level is too // high and there are no more threads in the thread pool to // dispatch the call. // nested = (NestedPrx)nested.ice_invocationTimeout(5000); Ice.ObjectAdapter adapter = communicator().createObjectAdapter("Nested.Client"); NestedPrx self = NestedPrxHelper.uncheckedCast(adapter.createProxy(communicator().stringToIdentity("nestedClient"))); adapter.add(new NestedI(self), communicator().stringToIdentity("nestedClient")); adapter.activate(); Console.Out.WriteLine("Note: The maximum nesting level is sz * 2, with sz being"); Console.Out.WriteLine("the maximum number of threads in the server thread pool. If"); Console.Out.WriteLine("you specify a value higher than that, the application will"); Console.Out.WriteLine("block or timeout."); Console.Out.WriteLine(); string s = null; do { try { Console.Out.Write("enter nesting level or 'x' for exit: "); Console.Out.Flush(); s = Console.In.ReadLine(); if (s == null) { break; } int level = System.Int32.Parse(s); if (level > 0) { nested.nestedCall(level, self); } } catch (System.FormatException) { } catch (System.Exception ex) { Console.Error.WriteLine(ex); } }while(!s.Equals("x")); return(0); }