|
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 - download
Length: 7168 (0x1c00) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Box, seg_011e8b
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
with Expertsystem; use Expertsystem; package body Box is type Box_Structure is record Size : Natural; State : States; end record; package Behavior is new Classbehavior (Box_Structure, "BOXES "); ------------------------------------------------------------------------------ function Size (O : Object) return Natural is begin return Behavior.Get (O).Size; end Size; function State (O : Object) return States is begin return Behavior.Get (O).State; end State; ------------------------------------------------------------------------------ function Instances (Kind : Existences := Empty_Boxes) return Collection.Object is function Empty_Predicate (O : Object) return Boolean is begin return Behavior.Get (O).State = Is_Empty; end Empty_Predicate; function Empty is new CollectionRestrict (Empty_Predicate); begin case Kind is when All_Boxes => return Behavior.Instances; when Empty_Boxes => return Empty (Behavior.Instances); when others => return Behavior.Instances; end case; end Instances; ------------------------------------------------------------------------------ function Exist (With_State : States; In_Kind_Of_Collection : Existences) return Boolean is function Is_State (O : Object) return Boolean is begin return Behavior.Get (O).State = With_State; end Is_State; function Exist_State is new Collection.Exist (Is_State); begin return Exist_State (Instances (Kind => In_Kind_Of_Collection)); end Exist; function Exist (Greater_Than : Natural; In_Kind_Of_Collection : Existences) return Boolean is function Is_Greater_Than (O : Object) return Boolean is begin return Behavior.Get (O).Size > Greater_Than; end Is_Greater_Than; function Exist_Greater is new Collection.Exist (Is_Greater_Than); begin return Exist_Greater (Instances (Kind => In_Kind_Of_Collection)); end Exist; function Exist (Between : Natural; And_Size : Natural; In_Kind_Of_Collection : Existences) return Boolean is function Is_Between (O : Object) return Boolean is begin return Behavior.Get (O).Size > Between and Behavior.Get (O).Size < And_Size; end Is_Between; function Exist_Between is new Collection.Exist (Is_Between); begin return Exist_Between (Instances (Kind => In_Kind_Of_Collection)); end Exist; ------------------------------------------------------------------------------ function Add (With_Size : Natural := Default_Size; With_State : States := Default_State) return Object is A_Box : Box_Structure; begin A_Box.Size := With_Size; A_Box.State := With_State; return Behavior.Allocate (Initvalue => A_Box); end Add; ------------------------------------------------------------------------------ procedure Change (O : Object; With_Size : Natural; With_State : States) is A_Box : Box_Structure; begin A_Box := Behavior.Get (Aref => O); A_Box.Size := With_Size; A_Box.State := With_State; Behavior.Set (Aref => O, Withvalue => A_Box); end Change; procedure Change (O : Object; With_State : States) is A_Box : Box_Structure; begin A_Box := Behavior.Get (Aref => O); A_Box.State := With_State; Behavior.Set (Aref => O, Withvalue => A_Box); end Change; ------------------------------------------------------------------------------ procedure Delete (O : Object) is begin Behavior.Dispose (Aref => O); end Delete; ------------------------------------------------------------------------------ procedure Clean is begin Behavior.Clear; end Clean; end Box;
nblk1=6 nid=0 hdr6=c [0x00] rec0=23 rec1=00 rec2=01 rec3=050 [0x01] rec0=00 rec1=00 rec2=06 rec3=002 [0x02] rec0=1a rec1=00 rec2=02 rec3=020 [0x03] rec0=17 rec1=00 rec2=03 rec3=012 [0x04] rec0=1b rec1=00 rec2=04 rec3=02a [0x05] rec0=0e rec1=00 rec2=05 rec3=000 tail 0x2170df02082466cd12c7e 0x42a00088462063c03