+ +;
if (SohrListZayav == 0) {
// чергу порожня
_KonetsListZayav -> PredZayav = 0;
__NachaloListZayav = _KonetsListZayav;
return;
}
// чергу не порожня
_KonetsListZayav -> PredZayav = SohrListZayav;
ohrListZayav -> SledZayav = _KonetsListZayav;
}
// ------------------------- видача заявки згідно заданої дисципліни
virtual Zayavka * __ fastcall _Peredacha (Zayavka *) {
const ListZayav_t * preqentry;
try {//контроль засобів користувача
preqentry =
obsdiscipl :: GetSledZayav (__NachaloListZayav, _KonetsListZayav);
}
Zayavka * preadreq = preqentry -> ObrZayav;
__UdalitElement (& ___NachaloListZayav, & _KonetsListZayav,
const_cast (preqentry));
- _dlina;
if (this-> _marksObrZayav)
preadreq-> SetObrabot ();// заявка вважається обробленої
return preadreq;
}
private:
// --------------------------------- видалення елемента черги
void __ fastcall __ UdalitElem (ListZayav_t ** NachaloListZayav,
ListZayav_t ** KonetsListZayav, ListZayav_t * udalitzayav)
{
ListZayav_t * tmpliszayav;
if (udalitzayav == * NachaloListZayav)// видалення голови
{
tmpliszayav = * NachaloListZayav;
(* NachaloListZayav) = (* pNachaloListZayav) -> SledZayav;
(* KonetsListZayav) = (* NachaloListZayav) == 0? 0: (* KonetsListZayav);
if (* NachaloListZayav! = 0) (* NachaloListZayav) -> PredZayav = 0;
}
else
if (udalitzayav == * KonetsListZayav)// видалення хвоста
{
tmpliszayav = * KonetsListZayav;
(* KonetsListZayav) = (* KonetsListZayav) -> PredZayav;
(* NachaloListZayav) = (* KonetsListZayav) == 0? 0: (* NachaloListZayav);
if (* KonetsListZayav! = 0) (* preqKonetsListZayav) -> SledZayav = 0;
}
else
{//видалення з "середини" черги
tmpliszayav = udalitzayav;
udalitzayav -> SledZayav -> PredZayav = udalitzayav -> PredZayav;
udalitzayav -> PredZayav -> SledZayav = udalitzayav -> SledZayav;
}
delete tmpliszayav;
}
}; class bezkonochered: public ochered
{public:
// нескінченний накопичувач заявок
explicit __ fastcall bezkonochered (const std :: string & name):
structelem (name), obyavZayav (name), ochered (name),
peredatchik (name), priemnik (name)
;
}
~ bezkonochered () {}
virtual bool _GotovKPriem () const {//готовність до прийому заявки
return true;
}
private:
}; class konochered: public ochered
{public:
// обмежений накопичувач заявок
explicit __ fastcall konocher...