protected void debugMarketSimulationMaofCallback(IWrite iWrite, string cmdName, object[] cmdArguments)
        {
            string cmd = "", arg1 = "", arg2 = "";
            switch (cmdArguments.Length)
            {
                case 0:
                case 1:
                    iWrite.WriteLine("Usage: maof create <backlogfile> [speedup] | stop | start");
                    break;

                case 2:
                    cmd = cmdArguments[1].ToString().ToLower();
                    break;

                case 3:
                    cmd = cmdArguments[1].ToString().ToLower();
                    arg1 = cmdArguments[2].ToString();
                    break;

                case 4:
                    cmd = cmdArguments[1].ToString().ToLower();
                    arg1 = cmdArguments[2].ToString();
                    arg2 = cmdArguments[3].ToString();
                    break;
            }

            if (cmd == "stop")
            {
                if (dataMaofGenerator != default(MaofDataGeneratorLogFile))
                {
                    dataMaofGenerator.Stop();
                    // dataMaofGenerator.RemoveConsumer(marketSimulationMaof);
                    marketSimulationMaof.Dispose();
                    marketSimulationMaof = default(MarketSimulationMaof);
                    dataMaofGenerator = default(MaofDataGeneratorLogFile);

                    iWrite.WriteLine("maof stop called");
                }
                else
                {
                    iWrite.WriteLine("No active simulation to stop.");
                }
            }
            else if (cmd == "start") // log file name
            {
                if (this.dataMaofGenerator != default(MaofDataGeneratorLogFile))
                {
                    // call EventGenerator.Start() - start the data stream
                    dataMaofGenerator.Start();
                }
                else
                {
                    iWrite.WriteLine("Use 'create' first to create the market simulation");
                }
            }
            else if (cmd == "create") // log file name
            {
                string logfile = arg1;
                double speedup = JQuant.Convert.StrToDouble(arg2, 1.0);

                //if K300Class instance is not already initilazed, do it now
                if (this.dataMaofGenerator == default(MaofDataGeneratorLogFile))
                {
                    this.dataMaofGenerator =
                        new MaofDataGeneratorLogFile(logfile, speedup, 0);

                    //I need a cast here, because MarketSimulationMaof expects parameter of type IProducer
                    marketSimulationMaof = new MarketSimulationMaof();
                    //                    dataMaofGenerator.AddConsumer(marketSimulationMaof);

                    //                  marketSimulationMaof.EnableTrace(80608128, true);
                    //                  marketSimulationMaof.EnableTrace(80616808, true);
                    iWrite.WriteLine("Use 'start' to start the market simulation");
                }
                else    //for the moment I don't want the mess of running multiple simulations simultaneously.
                {
                    iWrite.WriteLine("Maof simulation " + dataMaofGenerator.Name + "is already running.");
                    iWrite.WriteLine("Only a single simulation at a time is possible.");
                }
            }
        }
Esempio n. 2
0
        protected void debugMarketSimulationMaofCallback(IWrite iWrite, string cmdName, object[] cmdArguments)
        {
            string cmd = "", arg1 = "", arg2 = "";

            switch (cmdArguments.Length)
            {
            case 0:
            case 1:
                iWrite.WriteLine("Usage: maof create <backlogfile> [speedup] | stop | start");
                break;

            case 2:
                cmd = cmdArguments[1].ToString().ToLower();
                break;

            case 3:
                cmd  = cmdArguments[1].ToString().ToLower();
                arg1 = cmdArguments[2].ToString();
                break;

            case 4:
                cmd  = cmdArguments[1].ToString().ToLower();
                arg1 = cmdArguments[2].ToString();
                arg2 = cmdArguments[3].ToString();
                break;
            }

            if (cmd == "stop")
            {
                if (dataMaofGenerator != default(MaofDataGeneratorLogFile))
                {
                    dataMaofGenerator.Stop();
                    // dataMaofGenerator.RemoveConsumer(marketSimulationMaof);
                    marketSimulationMaof.Dispose();
                    marketSimulationMaof = default(MarketSimulationMaof);
                    dataMaofGenerator    = default(MaofDataGeneratorLogFile);

                    iWrite.WriteLine("maof stop called");
                }
                else
                {
                    iWrite.WriteLine("No active simulation to stop.");
                }
            }
            else if (cmd == "start")             // log file name
            {
                if (this.dataMaofGenerator != default(MaofDataGeneratorLogFile))
                {
                    // call EventGenerator.Start() - start the data stream
                    dataMaofGenerator.Start();
                }
                else
                {
                    iWrite.WriteLine("Use 'create' first to create the market simulation");
                }
            }
            else if (cmd == "create")             // log file name
            {
                string logfile = arg1;
                double speedup = JQuant.Convert.StrToDouble(arg2, 1.0);

                //if K300Class instance is not already initilazed, do it now
                if (this.dataMaofGenerator == default(MaofDataGeneratorLogFile))
                {
                    this.dataMaofGenerator =
                        new MaofDataGeneratorLogFile(logfile, speedup, 0);

                    //I need a cast here, because MarketSimulationMaof expects parameter of type IProducer
                    marketSimulationMaof = new MarketSimulationMaof();
                    //                    dataMaofGenerator.AddConsumer(marketSimulationMaof);

                    //                  marketSimulationMaof.EnableTrace(80608128, true);
                    //                  marketSimulationMaof.EnableTrace(80616808, true);
                    iWrite.WriteLine("Use 'start' to start the market simulation");
                }
                else                    //for the moment I don't want the mess of running multiple simulations simultaneously.
                {
                    iWrite.WriteLine("Maof simulation " + dataMaofGenerator.Name + "is already running.");
                    iWrite.WriteLine("Only a single simulation at a time is possible.");
                }
            }
        }