|
|
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 - metrics - downloadIndex: B T
Length: 1756 (0x6dc)
Types: TextFile
Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
└─⟦129cab021⟧ »DATA«
└─⟦this⟧
with Text_Io;
with Unchecked_Conversion;
package body Animal is
type P_Animal_State is access Animal.State;
function Animal_View_Of is
new Unchecked_Conversion
(Source => Application.Object, Target => Animal.State);
function Application_View_Of is
new Unchecked_Conversion (Source => P_Animal_State,
Target => Application.Object);
function Part_Of (Object : Animal.Object) return State is
begin
return Animal_View_Of
(S => Application.Heir (Application.Object (Object)));
end Part_Of;
function Create (Offspring_No : Natural := 0) return Object is
App : Application.Object;
P : P_Animal_State;
begin
P := new Animal.State;
P.Offspring_No := Offspring_No;
P.Heir := null;
App := Application.Create (1);
Application.Set_Heir (App, Application_View_Of (P));
return Animal.Object (App);
end Create;
procedure Sleep (Animal : Standard.Animal.Object; Time : Duration) is
begin
Text_Io.Put_Line ("animal sleeping ...");
delay Time;
Text_Io.Put_Line ("animal waking up");
end Sleep;
procedure Set_Mass
(Animal : in out Standard.Animal.Object; Kg : Positive) is
A : Standard.Animal.State := Standard.Animal.Part_Of (Animal);
begin
A.Mass := Kg;
end Set_Mass;
function Mass (Animal : Standard.Animal.Object) return Positive is
begin
return Standard.Animal.Part_Of (Animal).Mass;
end Mass;
procedure Set_Heir (State : in out Animal.State;
Heir : Application.Object) is
begin
State.Heir := Heir;
end Set_Heir;
end Animal;