Exemplo n.º 1
0
 /// <summary>
 /// Вывод получившей очереди из алгоритма в файл
 /// </summary>
 private void PrintToFile(Queue <Package> resultPackage)
 {
     foreach (Package package in resultPackage)
     {
         SettingFile.PrintToFile(SettingFile.pathForResultQueue, package.ToString());
     }
 }
Exemplo n.º 2
0
        public void Addpackage(object sender, EventArgs e)
        {
            bool    run     = false;
            Package package = new Package();

            //если тест, то заполнять готовыми пакетами
            if (ItExample)
            {
                package = genPackage.New(packageStartTests[curNumStartPackageTest].DSCP, packageStartTests[curNumStartPackageTest].Length);

                if (packageStartTests[curNumStartPackageTest].Delay != -1)
                {
                    timerGenPack.Interval = new TimeSpan(0, 0, 0, 0, Setting.frequencyUpdate * 1000 / packageStartTests[curNumStartPackageTest].Delay);
                }
                else
                {
                    timerGenPack.Stop();
                }
                run = true;
                curNumStartPackageTest++;
            }
            else if (GenerationNext())
            {
                //получили пакет
                package = genPackage.New();
                run     = true;
            }

            if (run)
            {
                //отправили на маркировку
                Classification.ClassificationPackage(package);

                //вывели в файл инфу
                SettingFile.PrintToFile(SettingFile.pathForGenerationPackage, package.ToString());

                SetStartQueue(package);

                //добавить пакет в алгоритм
                algorithm.Add(package);
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Имитация роутера
        /// </summary>
        /// <param name="numAlgorithm">Номер алгоритма</param>
        /// <param name="paint">Место отрисовки</param>
        /// <param name="info">Место отрисовки информации</param>
        /// <param name="numTest">Номер теста, если -1 - не тест</param>
        public Router(int numAlgorithm, Canvas paint, Canvas info, int numTest = -1)
        {
            genPackage  = new GenPackage();
            settingFile = new SettingFile();
            Graphica    = new MyGraphica(paint, info);

            Package.nextID          = 0;
            curNumStartPackageTest  = 0;
            curNumResultPackageTest = 0;

            if (numTest == -1)
            {
                ItExample = false;
            }
            else
            {
                ItExample = true;
            }

            this.numAlgorithm = numAlgorithm;

            resultPackage = new Queuering(Setting.MaxConstSizeQueuering);
            StartPackage  = new Queuering(Setting.MaxConstSizeQueuering);

            if (ItExample)
            {
                packageStartTests  = SettingFile.GetExample(numTest);
                packageResultTests = new List <Queuering>();

                /*for (int i = 0; i < 7; i++)
                 * {
                 *  packageResultTests.Add(new Queuering(Setting.MaxConstSizeQueuering));
                 * }*/
            }

            SetAlg(numAlgorithm);
        }