|
|
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: 7168 (0x1c00)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Data_Entree, seg_04af32
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
with Transport_Stream;
package body Data_Entree is
Iterator : S_Client_Memory.Iterator;
function "=" (X, Y : Transport_Stream.Stream_Id) return Boolean
renames Transport_Stream."=";
procedure Init_Iterateur (From_List : Liste_Memory) is
begin
S_Client_Memory.Init (Iter => Iterator, L => From_List.L_Client_Memory);
end Init_Iterateur;
function Create (Stream : Transport_Stream.Stream_Id;
Number_Request : Natural) return Object is
The_Object : Object;
begin
The_Object.Number_Request := Number_Request;
The_Object.Stream := Stream;
return The_Object;
end Create;
procedure Initialize (L : in out Liste_Memory) is
begin
S_Client_Memory.Free (L => L.L_Client_Memory);
end Initialize;
procedure Add (Element : Object; L : in out Liste_Memory) is
begin
L.L_Client_Memory := S_Client_Memory.Make
(X => Element, L => L.L_Client_Memory);
end Add;
function Equal (Left : Object; Right : Object) return Boolean is
begin
if Left.Number_Request = Right.Number_Request then
if Left.Stream = Right.Stream then
return True;
else
return False;
end if;
end if;
end Equal;
procedure Delete (Element : Object; L : in out Liste_Memory) is
Current : Liste_Memory := L;
Previous : Liste_Memory;
Iterator_1, Iterator_2 : S_Client_Memory.Iterator;
Found : Boolean := False;
Response : Object;
begin
S_Client_Memory.Free (L => Previous.L_Client_Memory);
S_Client_Memory.Init (Iter => Iterator_1, L => Current.L_Client_Memory);
S_Client_Memory.Init (Iter => Iterator_2,
L => Previous.L_Client_Memory);
while not S_Client_Memory.Done (Iter => Iterator_1) loop
Response := S_Client_Memory.Value (Iter => Iterator_1);
if Equal (Element, Response) then
S_Client_Memory.Next (Iter => Iterator_1);
else
Previous.L_Client_Memory :=
S_Client_Memory.Make (X => Response,
L => Previous.L_Client_Memory);
S_Client_Memory.Next (Iter => Iterator_1);
end if;
S_Client_Memory.Next (Iter => Iterator_2);
end loop;
L := Previous;
end Delete;
function Search (Number : Natural; L : Liste_Memory) return Object is
Found : Boolean := False;
Response : Object;
begin
S_Client_Memory.Init (Iter => Iterator, L => L.L_Client_Memory);
while not Found and not S_Client_Memory.Done (Iter => Iterator) loop
Response := S_Client_Memory.Value (Iter => Iterator);
if Identifie (The => Response) = Number then
Found := True;
else
S_Client_Memory.Next (Iter => Iterator);
end if;
end loop;
return Response;
end Search;
function Identifie (The : Object) return Natural is
begin
return The.Number_Request;
end Identifie;
function Streamer (The : Object) return Transport_Stream.Stream_Id is
begin
return The.Stream;
end Streamer;
end Data_Entree;
nblk1=6
nid=3
hdr6=8
[0x00] rec0=25 rec1=00 rec2=01 rec3=062
[0x01] rec0=1d rec1=00 rec2=06 rec3=044
[0x02] rec0=17 rec1=00 rec2=02 rec3=026
[0x03] rec0=15 rec1=00 rec2=04 rec3=000
[0x04] rec0=1c rec1=00 rec2=04 rec3=010
[0x05] rec0=0b rec1=00 rec2=03 rec3=000
tail 0x215480c52867a3188c27a 0x42a00088462060003
Free Block Chain:
0x3: 0000 00 05 01 1d 80 2f 74 69 6f 6e 20 49 64 65 6e 74 ┆ /tion Ident┆
0x5: 0000 00 00 00 7f 80 12 6e 74 2c 20 52 65 73 70 6f 6e ┆ nt, Respon┆