示例#1
5
        public Simulator(String fileName)
        {
            Lowest = 99999;
            output = new StreamWriter ("../../output.txt");
            try {
                ProcessList p = new ProcessList (fileName);
                if (debug) {
                    //Echo processes to console
                    output.WriteLine ("===================================");
                    output.WriteLine ("Quantum = " + p.getQuantum ());
                   // Console.Read();
                    for (int loop = 0; loop < p.getNumberOfProcesses (); loop++) {
                        output.WriteLine ("===================================");
                        output.WriteLine ("PID: " + p.getProcess (loop).getPID ());
                        output.WriteLine ("CPU Burst 1: " + p.getProcess (loop).getCPU_burst1 ());
                        output.WriteLine ("CPU Burst 2: " + p.getProcess (loop).getCPU_burst2 ());
                        output.WriteLine ("IO Burst : " + p.getProcess (loop).getIO_burst ());
                        output.WriteLine ("Priority: " + p.getProcess (loop).getPriority ());
                        output.WriteLine ("Period: " + p.getProcess (loop).getCurrentPeriod ());
                    }
                }

                //Populate Schedulers
                Scheduler[] sim = new Scheduler[6];
                {
                    int i = 0;

                    sim [i++] = new FCFS (new ProcessList(fileName),output);
                    sim [i++] = new SJF (new ProcessList(fileName),output);
                    sim [i++] = new SJR (new ProcessList(fileName),output);
                    sim [i++] = new RR (new ProcessList(fileName),output);
                    sim [i++] = new Priority(new ProcessList(fileName),output);
                    sim [i++] = new MFQ (new ProcessList(fileName), output);

                }
                int j;
                output.WriteLine ("ALGORITHM     AVERAGE TURNAROUND TIME");
                for(j =0 ; j < 6; j++){
                    try{
                        output.WriteLine ("{0,9}{1,7}",sim[j].GetType ().Name,sim[j].Average_TurnAround);
                        if(sim[j].Average_TurnAround < Lowest)
                            Lowest = sim[j].Average_TurnAround;
                    }catch(NullReferenceException){
                        //THIS MEANS WE DID NOT PUT ALL THE PROCESSES IN YET WHICH IS FINE
                    }
                }
                foreach(Scheduler item in sim){
                    try{
                        if(item.Average_TurnAround == Lowest)
                            output.WriteLine ("The best algorithm for the data set is "+item.GetType ().Name+" with a average turnaround time of "+item.Average_TurnAround);
                    }catch(NullReferenceException){
                        //THIS MEANS WE DID NOT PUT ALL THE PROCESSES IN YET WHICH IS FINE
                    }
                }
            } catch (Exception e) {
                Console.WriteLine ("Error trying to populate the process list: " + e.Message);
                output.WriteLine ("Program quitting");
            }finally{
                output.Close ();
            }
        }
    public void Init()
    {
        Debug.IsLogEnabled = false;

        if (FunctionsManager.ScheduledEvent == null)
        {
            new FunctionsManager();
        }

        FunctionsManager.ScheduledEvent.LoadScript(LuaFunctionString, "ScheduledEvent", Functions.Type.Lua);

        if (PrototypeManager.ScheduledEvent == null)
        {
            new PrototypeManager();
        }

        PrototypeManager.ScheduledEvent.Add(new ScheduledEvent("ping_log", evt => Debug.ULogChannel("Scheduler", "Event {0} fired", evt.Name)));
        PrototypeManager.ScheduledEvent.LoadPrototypes(XmlPrototypeString);

        // The problem with unit testing singletons
        ///scheduler = Scheduler.Scheduler.Current;
        scheduler = new Scheduler.Scheduler();

        callback = evt => Debug.ULogChannel("SchedulerTest", "Event {0} fired", evt.Name);
    }
示例#3
0
        public AddEvent(Scheduler scheduler, SchedulerWindow schedulerForm)
        {
            InitializeComponent();
            _scheduler = scheduler;
            _schedulerForm = schedulerForm;
            DescriptionTextBox.Text = _enterDescription;
            NewEventDatePicker.MinDate = DateTime.Now;
            //NewEventTimePicker.MinDate = DateTime.Now;

            this.ShowDialog();
        }
    public void SchedulerReadXmlTest()
    {
        // prepare a scheduler instance to serialize
        scheduler.ScheduleEvent("ping_log", 1f, true, 0);
        scheduler.ScheduleEvent("ping_log_lua", 2f, false, 3);
        scheduler.Update(0.5f);

        // serialize it
        StringBuilder sb     = new StringBuilder();
        XmlWriter     writer = new XmlTextWriter(new StringWriter(sb));

        scheduler.WriteXml(writer);
        XmlReader reader = new XmlTextReader(new StringReader(sb.ToString()));

        // Tt is not actually necessary to replace the scheduler: it will properly clear the old one.
        // This just proves that it does work to recreate the scheduler from nothing.
        scheduler = new Scheduler.Scheduler();
        scheduler.ReadXml(reader);

        Assert.That(scheduler.Events.Count, Is.EqualTo(2));
        Assert.That(scheduler.Events[0].Name, Is.EqualTo("ping_log"));
        Assert.That(scheduler.Events[0].Cooldown, Is.EqualTo(1));
        Assert.That(scheduler.Events[0].TimeToWait, Is.EqualTo(0.5f));
        Assert.That(scheduler.Events[0].RepeatsForever, Is.True);
        Assert.That(scheduler.Events[0].RepeatsLeft, Is.EqualTo(0));
        Assert.That(scheduler.Events[1].Name, Is.EqualTo("ping_log_lua"));
        Assert.That(scheduler.Events[1].Cooldown, Is.EqualTo(2));
        Assert.That(scheduler.Events[1].TimeToWait, Is.EqualTo(1.5f));
        Assert.That(scheduler.Events[1].RepeatsForever, Is.False);
        Assert.That(scheduler.Events[1].RepeatsLeft, Is.EqualTo(3));

        // Prove that it works even without creating a new scheduler instance.
        // First add an event so that the Asserts will fail if ReadXml does nothing.
        scheduler.ScheduleEvent("ping_log_lua", 5f, false, 20);
        scheduler.Update(0);

        reader = new XmlTextReader(new StringReader(sb.ToString()));
        scheduler.ReadXml(reader);

        Assert.That(scheduler.Events.Count, Is.EqualTo(2));
        Assert.That(scheduler.Events[0].Name, Is.EqualTo("ping_log"));
        Assert.That(scheduler.Events[0].Cooldown, Is.EqualTo(1));
        Assert.That(scheduler.Events[0].TimeToWait, Is.EqualTo(0.5f));
        Assert.That(scheduler.Events[0].RepeatsForever, Is.True);
        Assert.That(scheduler.Events[0].RepeatsLeft, Is.EqualTo(0));
        Assert.That(scheduler.Events[1].Name, Is.EqualTo("ping_log_lua"));
        Assert.That(scheduler.Events[1].Cooldown, Is.EqualTo(2));
        Assert.That(scheduler.Events[1].TimeToWait, Is.EqualTo(1.5f));
        Assert.That(scheduler.Events[1].RepeatsForever, Is.False);
        Assert.That(scheduler.Events[1].RepeatsLeft, Is.EqualTo(3));
    }
示例#5
0
    /// <summary>
    /// Initializes a new instance of the <see cref="AutosaveManager"/> class.
    /// This class schedules autosave events which save the game at regular intervals
    /// of <see cref="AutosaveInterval"/> minutes with the default filename "Autosave###.sav".
    /// </summary>
    public AutosaveManager()
    {
        if (scheduler == null)
        {
            scheduler = Scheduler.Scheduler.Current;
        }

        AutosaveInterval = SettingsKeyHolder.AutosaveInterval;

        // autosaves disabled if AutosaveInterval <= 0
        if (AutosaveInterval > 0)
        {
            autosaveEvent = new ScheduledEvent("autosave", DoAutosave, AutosaveInterval * 60.0f, true, 0);
            scheduler.RegisterEvent(autosaveEvent);
        }

        // set autosaveCounter = maximum index of existing autosaves (so as not to clobber autosaves from previous games)
        if (Directory.Exists(GameController.Instance.FileSaveBasePath()))
        {
            string[] autosaveFileNames = Directory.GetFiles(GameController.Instance.FileSaveBasePath(), AutosaveBaseName + "*.sav");
            if (autosaveFileNames.Length == 0)
            {
                // no existing autosaves found
                return;
            }

            foreach (string fileName in autosaveFileNames)
            {
                // get the numeric part of the filename
                string autosaveNumAsString = Path.GetFileNameWithoutExtension(fileName).Replace(AutosaveBaseName, string.Empty);

                int autosaveNumber;
                if (int.TryParse(autosaveNumAsString, out autosaveNumber) == false)
                {
                    // filename not in the format of "Autosave<number>.sav" so move on
                    continue;
                }

                // if necessary, bump up autosaveCounter
                autosaveCounter = Math.Max(autosaveCounter, autosaveNumber);
            }
        }
        else
        {
            UnityDebugger.Debugger.Log("AutosaveManager", "Creating directory for autosaves.");
            Directory.CreateDirectory(GameController.Instance.FileSaveBasePath());
        }
    }
示例#6
0
        public static void Main(string[] args)
        {
            const string uName = "usernameHere";
            const string pWord = "passwordHere";

            try
            {
                var s = new Scheduler();
                s.RegisterForClass(uName, pWord, "75499");
            }
            catch(Exception e)
            {
                e.Dump();
            }

            "Done!".Dump();
            Console.ReadKey();
        }
    public void Init()
    {
        if (PrototypeManager.SchedulerEvent == null)
        {
            new PrototypeManager();
            PrototypeManager.SchedulerEvent.Add(
                "ping_log",
                new ScheduledEvent(
                    "ping_log",
                    (evt) => Debug.ULogChannel("Scheduler", "Event {0} fired", evt.Name)));
        }

        // The problem with unit testing singletons
        ///scheduler = Scheduler.Scheduler.Current;
        scheduler = new Scheduler.Scheduler();

        callback = (evt) => Debug.ULogChannel("SchedulerTest", "Event {0} fired", evt.Name);
    }
示例#8
0
    public void Init()
    {
        FunctionsManager.Initialize();

        FunctionsManager.ScheduledEvent.LoadScript(LuaFunctionString, "ScheduledEvent", Functions.Type.Lua);

        PrototypeManager.Initialize();

        JToken reader = JToken.Parse(JsonPrototypeString);

        PrototypeManager.ScheduledEvent.Add(new ScheduledEvent("ping_log", evt => UnityDebugger.Debugger.LogFormat("Scheduler", "Event {0} fired", evt.Name)));
        PrototypeManager.ScheduledEvent.LoadJsonPrototypes((JProperty)reader.First);

        // The problem with unit testing singletons
        ///scheduler = Scheduler.Scheduler.Current;
        scheduler = new Scheduler.Scheduler();

        callback = evt => UnityDebugger.Debugger.LogFormat("SchedulerTest", "Event {0} fired", evt.Name);
    }
    public void Init()
    {
        Debug.IsLogEnabled = false;
        if (PrototypeManager.SchedulerEvent == null)
        {
            new PrototypeManager();
            PrototypeManager.SchedulerEvent.Add(
                "ping_log",
                new ScheduledEvent(
                    "ping_log",
                    evt => Debug.ULogChannel("Scheduler", "Event {0} fired", evt.Name)));
            PrototypeManager.SchedulerEvent.LoadPrototypesFromText(XmlPrototypeString);
        }

        // The problem with unit testing singletons
        ///scheduler = Scheduler.Scheduler.Current;
        scheduler = new Scheduler.Scheduler();

        callback = evt => Debug.ULogChannel("SchedulerTest", "Event {0} fired", evt.Name);
    }
    public void SchedulerFromJsonTest()
    {
        string schedulerJsonString = "[{\"Name\":\"ping_log\",\"Cooldown\":1.0,\"TimeToWait\":1.0,\"RepeatsForever\":true,\"RepeatsLeft\":0},{\"Name\":\"ping_log_lua\",\"Cooldown\":2.0,\"TimeToWait\":2.0,\"RepeatsForever\":false,\"RepeatsLeft\":3}]";
        JToken schedulerJson       = (JToken)JsonConvert.DeserializeObject(schedulerJsonString);

        scheduler = new Scheduler.Scheduler();
        scheduler.FromJson(schedulerJson);

        Assert.That(scheduler.Events.Count, Is.EqualTo(2));
        Assert.That(scheduler.Events[0].Name, Is.EqualTo("ping_log"));
        Assert.That(scheduler.Events[0].Cooldown, Is.EqualTo(1));
        Assert.That(scheduler.Events[0].TimeToWait, Is.EqualTo(1f));
        Assert.That(scheduler.Events[0].RepeatsForever, Is.True);
        Assert.That(scheduler.Events[0].RepeatsLeft, Is.EqualTo(0));
        Assert.That(scheduler.Events[1].Name, Is.EqualTo("ping_log_lua"));
        Assert.That(scheduler.Events[1].Cooldown, Is.EqualTo(2));
        Assert.That(scheduler.Events[1].TimeToWait, Is.EqualTo(2f));
        Assert.That(scheduler.Events[1].RepeatsForever, Is.False);
        Assert.That(scheduler.Events[1].RepeatsLeft, Is.EqualTo(3));

        // Prove that it works even without creating a new scheduler instance.
        // First add an event so that the Asserts will fail if FromJson does nothing.
        scheduler.ScheduleEvent("ping_log_lua", 5f, false, 20);
        scheduler.Update(0);

        scheduler.FromJson(schedulerJson);

        Assert.That(scheduler.Events.Count, Is.EqualTo(2));
        Assert.That(scheduler.Events[0].Name, Is.EqualTo("ping_log"));
        Assert.That(scheduler.Events[0].Cooldown, Is.EqualTo(1));
        Assert.That(scheduler.Events[0].TimeToWait, Is.EqualTo(1f));
        Assert.That(scheduler.Events[0].RepeatsForever, Is.True);
        Assert.That(scheduler.Events[0].RepeatsLeft, Is.EqualTo(0));
        Assert.That(scheduler.Events[1].Name, Is.EqualTo("ping_log_lua"));
        Assert.That(scheduler.Events[1].Cooldown, Is.EqualTo(2));
        Assert.That(scheduler.Events[1].TimeToWait, Is.EqualTo(2f));
        Assert.That(scheduler.Events[1].RepeatsForever, Is.False);
        Assert.That(scheduler.Events[1].RepeatsLeft, Is.EqualTo(3));
    }
 public bool ProcessCommand(EnOceanPacket packet, Scheduler.Classes.DeviceClass hsDev)
 {
     Console.WriteLine("Processing command : {0}", packet.getType().ToString());
     return true;
 }
示例#12
0
 /// <summary>
 /// Destroy this instance.
 /// </summary>
 public void Destroy()
 {
     instance = null;
 }