public processCall(agenda agendaZd, double wzglCzasZdarzenia, SimClass klasaZgloszenia) : base(agendaZd, wzglCzasZdarzenia) { _zajPodgr = null; klasaZgl = klasaZgloszenia; faza = processStage.oczekiwanie; }
public SimGroup(Wiazka wSymulowana) { _n = 0; _K = wSymulowana.sumaK; _V = wSymulowana.V; totRozklZaj = new double[_V + 1]; _maxVi = wSymulowana.maxVi; maxWolnePJP = new double[maxVi + 1]; maxWolnePJPrez = new double[maxVi + 1]; lPrzyjZglWstanieN = new int[_V + 1]; lUtrZglWstanieN = new int[_V + 1]; _q = (wSymulowana.AlgorytmRezerwacji == reservationAlgorithm.R3) ? _V : wSymulowana.q; sPodgr = new SimSubGroup[_K]; int lP = 0; foreach (Subgroup klPodgr in wSymulowana.ListaPodgrupLaczy) { int lokQ = (wSymulowana.AlgorytmRezerwacji == reservationAlgorithm.R3) ? klPodgr.v - wSymulowana.tMax : lokQ = klPodgr.v; for (int i = 0; i < klPodgr.k; i++) { sPodgr[lP++] = new SimSubGroup(klPodgr.v, lokQ, this); } } aRez = wSymulowana.AlgorytmRezerwacji; switch (wSymulowana.aWybPodgr) { case subgroupChooseAlgorithm.sequence: arbWybPodgr = new ChooseArbiterSequence(this); break; case subgroupChooseAlgorithm.RR: arbWybPodgr = new ChooseArbiterRR(this); break; case subgroupChooseAlgorithm.random: arbWybPodgr = new ChooseArbitrRandom(this); break; case subgroupChooseAlgorithm.randomCapacityProportional: arbWybPodgr = new ChooseArbiterRandomProportional(this); break; case subgroupChooseAlgorithm.randomOccupancyProportional: arbWybPodgr = new ChooseArbiterOccupancyProportional(this); break; default: arbWybPodgr = null; break; } }