|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 8192 (0x2000) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Classbehavior, seg_00dc65, separate Expertsystem
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─⟦5a81ac88f⟧ »Space Info Vol 1« └─⟦this⟧
with Expertsystem, Instancecounter; separate (Expertsystem) package body Classbehavior is type Cellelement is record Cell : Element; Free : Boolean := True; Masked : Boolean := False; end record; type Eltarray is array (1 .. Taille) of Cellelement; type Classset is record Classarray : Eltarray; Count : Natural := 0; end record; Localclass : Idc := 1; Contents : Classset; Thevisiblecollection : Collection.Object; Thecompletecollection : Collection.Object; function Allocate (Initvalue : Element) return Expertsystem.Reference is Ref : Expertsystem.Reference; begin if Contents.Count + 1 = Contents.Classarray'Last then raise Classfull; end if; for I in Contents.Classarray'Range loop if Contents.Classarray (I).Free then Contents.Count := Contents.Count + 1; Contents.Classarray (I) := Cellelement'(Initvalue, False, False); Ref.Idobject := I; exit; end if; end loop; Ref.Idclass := Localclass; Ref.Date := Instancecounter.Newobject; Collection.Add (Thevisiblecollection, Ref); Collection.Add (Thecompletecollection, Ref); return Ref; end Allocate; procedure Allocate (Initvalue : Element) is R : Expertsystem.Reference; begin R := Allocate (Initvalue); end Allocate; procedure Dispose (Aref : Expertsystem.Reference) is begin if Aref.Idclass /= Localclass then raise Badclass; end if; if Contents.Classarray (Aref.Idobject).Free then raise Badreference; end if; Contents.Classarray (Aref.Idobject).Free := True; Contents.Classarray (Aref.Idobject).Masked := False; Contents.Count := Contents.Count - 1; Collection.Remove (Thevisiblecollection, Aref); Collection.Remove (Thecompletecollection, Aref); end Dispose; procedure Clear is begin for I in Contents.Classarray'Range loop Contents.Classarray (I).Free := True; Contents.Classarray (I).Masked := False; end loop; Collection.Clear (Thevisiblecollection); Collection.Clear (Thecompletecollection); end Clear; procedure Mask (Aref : Expertsystem.Reference) is begin if Aref.Idclass /= Localclass then raise Badclass; end if; if Contents.Classarray (Aref.Idobject).Free then raise Badreference; end if; if Contents.Classarray (Aref.Idobject).Masked = False then Contents.Classarray (Aref.Idobject).Masked := True; Collection.Update (Thecompletecollection, Aref); Collection.Remove (Thevisiblecollection, Aref); end if; end Mask; procedure Maskall is begin for I in Contents.Classarray'Range loop Contents.Classarray (I).Masked := True; end loop; Collection.Updateall (Thecompletecollection); Collection.Clear (Thevisiblecollection); end Maskall; procedure Unmask (Aref : Expertsystem.Reference) is Sameref : Expertsystem.Reference; Adate : Long_Integer; begin if Aref.Idclass /= Localclass then raise Badclass; end if; if Contents.Classarray (Aref.Idobject).Free then raise Badreference; end if; if Contents.Classarray (Aref.Idobject).Masked = True then Contents.Classarray (Aref.Idobject).Masked := False; Adate := Instancecounter.Newobject; Collection.Update (Thecompletecollection, Aref, Adate); Sameref := Aref; Sameref.Date := Adate; Collection.Add (Thevisiblecollection, Sameref); end if; end Unmask; procedure Unmaskall is begin for I in Contents.Classarray'Range loop Contents.Classarray (I).Masked := False; end loop; Collection.Updateall (Thecompletecollection); Thevisiblecollection := Thecompletecollection; end Unmaskall; function Instances return Collection.Object is begin return Thevisiblecollection; end Instances; function Allinstances return Collection.Object is begin return Thecompletecollection; end Allinstances; function Cardinality return Natural is begin return Contents.Count; end Cardinality; function Get (Aref : Expertsystem.Reference) return Element is begin if Aref.Idclass /= Localclass then raise Badclass; end if; if Contents.Classarray (Aref.Idobject).Free then raise Badreference; end if; return Contents.Classarray (Aref.Idobject).Cell; end Get; procedure Set (Aref : Expertsystem.Reference; Withvalue : Element) is Adate : Long_Integer; begin if Aref.Idclass /= Localclass then raise Badclass; end if; if Contents.Classarray (Aref.Idobject).Free then raise Badreference; end if; Contents.Classarray (Aref.Idobject).Cell := Withvalue; Adate := Instancecounter.Newobject; Collection.Update (Thecompletecollection, Aref, Adate); Collection.Update (Thevisiblecollection, Aref, Adate); end Set; function Name return Classname is begin return Surname; end Name; function Name (Aref : Expertsystem.Reference) return Objectname is begin return Refname (Aref); end Name; begin Localclass := Instancecounter.Newclass (Surname); end Classbehavior;
nblk1=7 nid=0 hdr6=e [0x00] rec0=24 rec1=00 rec2=01 rec3=03e [0x01] rec0=1d rec1=00 rec2=02 rec3=062 [0x02] rec0=1b rec1=00 rec2=03 rec3=012 [0x03] rec0=1b rec1=00 rec2=04 rec3=038 [0x04] rec0=23 rec1=00 rec2=05 rec3=02e [0x05] rec0=20 rec1=00 rec2=06 rec3=034 [0x06] rec0=02 rec1=00 rec2=07 rec3=000 tail 0x21509b2c2821a489e19d4 0x42a00088462060003