|
|
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: 6144 (0x1800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Class_Block, seg_033089
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
with Bounded_String;
package body Class_Block is
Ghost : Object.Reference;
function Send (This_Message : Object.Keyword; To : Object.Reference)
return Object.Reference is
Mess : Object.Keyword := This_Message;
Ident : Object.Unary := Block.Get_Ident (Table (Object.Get (To)).Node);
begin
Object.Init (This => Mess);
Object.Init (This => Ident);
while not Object.Is_Done (This_Message) loop
Block.Put_Table (This_Object => Object.Get (Mess),
Named => Object.Get (Ident),
Into => Table (Object.Get (To)).Node);
Object.Next (Mess);
Object.Next (Ident);
end loop;
return Block.Interpret (N => Table (Object.Get (To)).Node);
end Send;
function Send (This_Message : Object.Binary; To : Object.Reference)
return Object.Reference is
begin
return Object.Void_Reference;
end Send;
function Send (This_Message : Object.Unary; To : Object.Reference)
return Object.Reference is
type Message is (En_Texte, Valeur);
Token : Message;
package Bs renames Bounded_String;
begin
if Bs.Length (Object.Get (This_Message)) /= 0 then
begin
Token := Message'Value (Bs.Image (Object.Get (This_Message)));
case Token is
when En_Texte =>
return To;
when Valeur =>
return Block.Interpret
(N => Table (Object.Get (To)).Node);
end case;
exception
when Constraint_Error =>
return Object.Void_Reference;
end;
end if;
end Send;
function Create (Node : Block.Node := Block.Empty_Node)
return Object.Reference is
use Object;
begin
Last := Last + 1;
Table (Last).Node := Node;
return Object.Create (Class => Object.Block_Class, Object => Last);
end Create;
function How_Many return Object.Index is
begin
return Last;
end How_Many;
begin
Ghost := Create (Block.Get_Current_Node);
end Class_Block;
nblk1=5
nid=2
hdr6=8
[0x00] rec0=1d rec1=00 rec2=01 rec3=01c
[0x01] rec0=01 rec1=00 rec2=04 rec3=012
[0x02] rec0=1e rec1=00 rec2=03 rec3=00a
[0x03] rec0=11 rec1=00 rec2=05 rec3=000
[0x04] rec0=80 rec1=00 rec2=00 rec3=100
tail 0x2152bbb7884cd44b4b7d9 0x42a00088462060003
Free Block Chain:
0x2: 0000 00 00 00 2c 80 10 20 20 65 6e 64 20 47 65 74 5f ┆ , end Get_┆