DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ B T ┃
Length: 6377 (0x18e9) Types: TextFile Names: »B«
└─⟦149519bd4⟧ Bits:30000546 8mm tape, Rational 1000, !projects 93-07-13 └─ ⟦124ff5788⟧ »DATA« └─⟦this⟧ └─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16 └─ ⟦6f12a12be⟧ »DATA« └─⟦this⟧
with Class_Behavior; with Collection; with Instance; with Text_Io; package body Box is type Box_Structure is record Size : Natural; State : States; end record; package Behavior is new Class_Behavior (Element => Box_Structure, With_Name => Class_Name, With_Dates => Is_Dated, With_Date_Mode => Date_Mode); ------------------------------------------------------------------------------ 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 return Collection.Object is begin return Behavior.Instances; end Instances; 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 Collection.Restrict (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 Find (Between : Natural; And_Size : Natural; In_Kind_Of_Collection : Existences) return Instance.Reference 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 Find_Between is new Collection.Find_One (Is_Between); begin -- return Find_Between (Instances (Kind => In_Kind_Of_Collection)); return Find_Between (Behavior.Instances); end Find; function Exist (Between : Natural; And_Size : Natural; In_Kind_Of_Collection : Existences) return Boolean is O : Instance.Reference; Ok : Boolean := False; -- 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 O := Find (Between, And_Size, In_Kind_Of_Collection); Ok := Instance."/=" (O, Instance.Null_Reference); -- Text_Io.Put_Line ("EXIST : " & Boolean'Image (Ok)); return Ok; -- 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 (The_Element => A_Box); end Add; ------------------------------------------------------------------------------ procedure Change (O : Object; With_Size : Natural; With_State : States) is A_Box : Box_Structure; begin A_Box := Behavior.Get (The_Reference => O); A_Box.Size := With_Size; A_Box.State := With_State; Behavior.Set (The_Reference => O, With_Value => A_Box); end Change; procedure Change (O : Object; With_State : States) is A_Box : Box_Structure; begin A_Box := Behavior.Get (The_Reference => O); A_Box.State := With_State; Behavior.Set (The_Reference => O, With_Value => A_Box); end Change; ------------------------------------------------------------------------------ procedure Delete (O : Object) is begin Behavior.Dispose (The_Reference => O); end Delete; ------------------------------------------------------------------------------ procedure Mask (O : Object) is begin Behavior.Mask (The_Reference => O); end Mask; ------------------------------------------------------------------------------ procedure Unmask (O : Object) is begin Behavior.Unmask (The_Reference => O); end Unmask; ------------------------------------------------------------------------------ procedure Clean is begin Behavior.Clear; end Clean; ------------------------------------------------------------------------------ procedure Mask_All is begin Behavior.Mask_All; end Mask_All; ------------------------------------------------------------------------------ procedure Unmask_All is begin Behavior.Unmask_All; end Unmask_All; end Box;