|
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 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┆