with Ada.Text_IO; with Szimulacio.Ontozorendszer.Megjelenito.Muveletek; with System.Address_Image; -- Megfigyeleshez / teszteleshez package body Szimulacio.Ontozorendszer.Elemek.Szorofej is package Megjelenito_Muveletek renames Szimulacio.Ontozorendszer.Megjelenito.Muveletek; function Megjelenit(Objektum : Szorofej_Tipus) return Megjelenito.String_Tomb_Tipus is begin return (01 => Megjelenito_Muveletek.Stringbe_Masol("Aktiv: " & Boolean'Image(Objektum.Szor))); end Megjelenit; procedure Inicializal (Objektum : in out Szorofej_Tipus) is begin -- a nezeti konverzio nem hoz letre objektumot, figyeljuk meg a cimeket Ada.Text_IO.Put_Line("Szorofej inicializalas"); Ada.Text_IO.Put_Line("Az Objektum cime konvertalas elott: " & System.Address_Image(Objektum'Address)); Ada.Text_IO.Put_Line("Az Objektum cime konvertalas utan: " & System.Address_Image(Megjelenitheto_Absztrakt_Tipus(Objektum)'Address)); Megjelenito_Muveletek.Regisztral("Szorofej: ", Megjelenitheto_Absztrakt_Tipus(Objektum)'Unchecked_Access); end Inicializal; procedure Frissit (Objektum : in out Szorofej_Tipus) is use type Modell.Cso_Allapot_Tipus; begin -- NAGYON FONTOS TERVEZESI ELV! + [*] -- Fontos a "masolas", kulonben az utemezese elromolhat a szimulatornak... -- ...elofordulhatna, hogy egy iteracioval korabban ertesulnenek a hasznalo kodok arrol, hogy szor -e az Objektum vagy nem case Objektum.Csovezetek_Elem.all is when Modell.Van_Benne_Viz => Objektum.Szor := True; when Modell.Ures => Objektum.Szor := False; end case; end Frissit; function Beallit(Azonosito : Terv.Valodi_Reszletpont_Azonosito_Tipus; Vizforrastol_Mert_Tavolsag : Natural; Csovezetek_Elem : Modell.Csovezetek_Modell_Elem_Mutato_Tipus) return Szorofej_Tipus is begin return (Frissitheto_Absztrakt_Tipus with Azonosito => Azonosito, Vizforrastol_Mert_Tavolsag => Vizforrastol_Mert_Tavolsag, Csovezetek_Elem => Csovezetek_Elem, Szor => False); end Beallit; function Szor(Objektum : Szorofej_Tipus) return Boolean is begin return Objektum.Szor; -- [*] rendkivul fontos, hogy itt ne kozvetlenul a Modell-bol ("osztott memoriabol") olvassunk end Szor; end Szimulacio.Ontozorendszer.Elemek.Szorofej;