doMain(string[] originArgs, Ice.InitializationData initData) { // // Set the default properties for all Glacier2 applications. // initData.properties.setProperty("Ice.ACM.Client", "0"); initData.properties.setProperty("Ice.RetryIntervals", "-1"); bool restart; int ret = 0; do { // // A copy of the initialization data and the string array // needs to be passed to doMainInternal, as these can be // changed by the application. // Ice.InitializationData id = (Ice.InitializationData)initData.Clone(); id.properties = id.properties.ice_clone_(); string[] args = (string[])originArgs.Clone(); restart = doMain(args, id, out ret); }while(restart); return(ret); }
public int runmain(string[] args, Ice.InitializationData initializationData) { _testName = AppDomain.CurrentDomain.FriendlyName; if (_communicator != null) { Console.Out.WriteLine(_testName + ": only one instance of the Application class can be used"); return(1); } // // We parse the properties here to extract Ice.ProgramName. // if (initializationData == null) { initializationData = getInitData(ref args); } Ice.InitializationData initData; if (initializationData != null) { initData = (Ice.InitializationData)initializationData.Clone(); } else { initData = new Ice.InitializationData(); } initData.properties = Ice.Util.createProperties(ref args, initData.properties); // // If the process logger is the default logger, we replace it with a // a logger that uses the program name as the prefix. // if (Ice.Util.getProcessLogger() is Ice.LoggerI) { Ice.Util.setProcessLogger(new Ice.ConsoleLoggerI(initData.properties.getProperty("Ice.ProgramName"))); } int status = 0; try { _communicator = Ice.Util.initialize(ref args, initData); status = run(args); } catch (Exception ex) { Console.Out.WriteLine(_testName + ": " + ex); status = 1; } if (_communicator != null) { _communicator.destroy(); _communicator = null; } return(status); }