|
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: 8192 (0x2000) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Orb, seg_056a6a
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
with Text_Io; with Message; with Communication; with Transport; with V_String; with Gestion_Orb; with Transport_Defs; package body Orb is Connection1 : Transport.Connection_Id; Connection2 : Transport.Connection_Id; Host_Id : Transport_Defs.Host_Id (1 .. 4); Socket_Id : Transport_Defs.Socket_Id (1 .. 2); Arret_General : Boolean := False; task Emission1 is entry Emission_Message (O : Message.Objet); entry Arret; entry Go; end Emission1; task Reception2 is entry Arret; entry Go; end Reception2; procedure Traitement (O : in out Message.Objet; Socket_Recue : Transport_Defs.Socket_Id; Host_Recu : Transport_Defs.Host_Id; Socket_Envoi : in out Transport_Defs.Socket_Id; Host_Envoi : in out Transport_Defs.Host_Id); task body Emission1 is O : Message.Objet; Stop : Boolean := False; begin loop accept Go do Communication.Ouvrir_Autre (Connection1); end Go; loop select accept Emission_Message (O : Message.Objet) do Text_Io.Put_Line ("objet avant emission orb"); Message.Afficher (O); Text_Io.Put_Line (""); Message.Emission_Orb (O, Connection1, Socket_Id, Host_Id); Text_Io.Put_Line ("apres emission de la reponse de l'orb"); end Emission_Message; or accept Arret do Communication.Fermer (Connection1); Stop := True; end Arret; end select; exit when Stop; end loop; exit when Stop; end loop; Text_Io.Put_Line ("fin emission"); end Emission1; task body Reception2 is Socket_A_Emettre : Transport_Defs.Socket_Id (1 .. 2); Host_A_Emettre : Transport_Defs.Host_Id (1 .. 4); O : Message.Objet; Stop : Boolean := False; begin loop accept Go do Communication.Ouvrir_Orb (Connection2); Gestion_Orb.Init_Tableaux; end Go; loop select accept Arret do Communication.Fermer_Orb (Connection2); Stop := True; end Arret; else Text_Io.Put_Line ("avant la reception de l'orb"); if Arret_General then Communication.Fermer (Connection2); Stop := True; else Message.Reception_Orb (O, Connection2, Socket_Id, Host_Id); Text_Io.Put_Line ("affichage apres reception de l'orb"); Message.Afficher (O); Text_Io.Put_Line (""); Text_Io.Put_Line ("avant traitement reception orb"); Traitement (O, Socket_Id, Host_Id, Socket_A_Emettre, Host_A_Emettre); end if; Text_Io.Put_Line ("apres traitement reception orb"); end select; exit when Stop; end loop; exit when Stop; end loop; Text_Io.Put_Line ("fin reception"); end Reception2; procedure Traitement (O : in out Message.Objet; Socket_Recue : Transport_Defs.Socket_Id; Host_Recu : Transport_Defs.Host_Id; Socket_Envoi : in out Transport_Defs.Socket_Id; Host_Envoi : in out Transport_Defs.Host_Id) is begin Gestion_Orb.Traite_Objet (O, Socket_Recue, Host_Recu, Socket_Envoi, Host_Envoi); Socket_Id := Socket_Envoi; Host_Id := Host_Envoi; Emission1.Emission_Message (O); end Traitement; procedure Mise_En_Route_Orb is begin Reception2.Go; Emission1.Go; end Mise_En_Route_Orb; procedure Arret_Orb is begin Emission1.Arret; Arret_General := True; end Arret_Orb; end Orb;
nblk1=7 nid=3 hdr6=a [0x00] rec0=24 rec1=00 rec2=01 rec3=016 [0x01] rec0=1a rec1=00 rec2=02 rec3=006 [0x02] rec0=20 rec1=00 rec2=05 rec3=008 [0x03] rec0=15 rec1=00 rec2=07 rec3=05e [0x04] rec0=18 rec1=00 rec2=04 rec3=000 [0x05] rec0=18 rec1=00 rec2=05 rec3=000 [0x06] rec0=68 rec1=5c rec2=00 rec3=000 tail 0x21763015287c4992b34bf 0x42a00088462060003 Free Block Chain: 0x3: 0000 00 06 03 fc 80 24 20 20 20 20 20 20 20 20 20 20 ┆ $ ┆ 0x6: 0000 00 00 01 d5 80 01 3b 01 00 22 20 20 20 20 20 20 ┆ ; " ┆