public override int WybPodgrupy(processCall przyjmowane)
            {
                bool rezerwacja = (_arbWiazka.aRez == reservationAlgorithm.R3);

                int lPropPas = 0;

                for (int i = 0; i < _arbWiazka.K; i++)
                {
                    if (_arbWiazka.sPodgr[i].SprDostZas(przyjmowane.t, rezerwacja))
                    {
                        lPropPas += _arbWiazka.sPodgr[i].lwPJP;
                    }
                }
                if (lPropPas > 0)
                {
                    int wybLos = (int)(losGen.NextDouble() * lPropPas);
                    for (int wynik = 0; wynik < _arbWiazka.K; wynik++)
                    {
                        if (_arbWiazka.sPodgr[wynik].SprDostZas(przyjmowane.t, rezerwacja))
                        {
                            if (wybLos <= _arbWiazka.sPodgr[wynik].lwPJP)
                            {
                                _ostWybrana = wynik;
                                return(wynik);
                            }
                            wybLos -= _arbWiazka.sPodgr[wynik].lwPJP;
                        }
                    }
                    return(-2);              //błąd arbitra
                }
                return(-1);
            }
        public bool DodajZgl(processCall dodawane, bool zlStatystyki)
        {
            if ((aRez == reservationAlgorithm.R1_R2) && (dodawane.klasaZgl.uprzyw == false))
            {
                if (_n > _q)
                {
                    if (zlStatystyki)
                    {
                        dodawane.klasaZgl.klasaRuchu.sigmyStanow.StrZgl(_n);
                    }
                    return(false);
                }
            }
            int wybrPodgr = arbWybPodgr.WybPodgrupy(dodawane);

            if (wybrPodgr >= 0)
            {
                if (zlStatystyki)
                {
                    dodawane.klasaZgl.klasaRuchu.sigmyStanow.PrzyjZgl(_n);
                }
                dodawane.zajeteZasoby = dodawane.t;
                _n += dodawane.zajeteZasoby;                                  //zwiększanie liczby zaj PJP
                sPodgr[wybrPodgr].ZajmijZasoby(dodawane.zajeteZasoby);
                dodawane.zajPodgr = sPodgr[wybrPodgr];
                return(true);
            }
            if (zlStatystyki)
            {
                dodawane.klasaZgl.klasaRuchu.sigmyStanow.StrZgl(_n);
            }
            return(false);
        }
            public override int WybPodgrupy(processCall przyjmowane)
            {
                bool rezerwacja = (_arbWiazka.aRez == reservationAlgorithm.R3);

                for (int wynik = 0; wynik < _arbWiazka.K; wynik++)
                {
                    if (_arbWiazka.sPodgr[wynik].SprDostZas(przyjmowane.t, rezerwacja))
                    {
                        _ostWybrana = wynik;
                        return(wynik);
                    }
                }
                return(-1);
            }
            public override int WybPodgrupy(processCall przyjmowane)
            {
                bool rezerwacja = (_arbWiazka.aRez == reservationAlgorithm.R3);

                for (int i = 0; i < _arbWiazka.K; i++)
                {
                    int spr = (++_ostWybrana) % _arbWiazka.K;
                    if (_arbWiazka.sPodgr[spr].SprDostZas(przyjmowane.t, rezerwacja))
                    {
                        _ostWybrana = spr;
                        return(spr);
                    }
                }
                return(-1);
            }
 public virtual int WybPodgrupy(processCall przyjmowane)
 {
     return(-1);
 }
 public void UsunZgl(processCall usuwane)
 {
     _n -= usuwane.zajeteZasoby;
     usuwane.zajPodgr.ZwolnijZasoby(usuwane.zajeteZasoby);
 }