Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }