|
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: 11264 (0x2c00) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Client_Orb, seg_058381
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
with Trame_Registration; with Trame_Publication; with Trame_Request; with Message; with Communication; with Text_Io; package body Client_Orb is use Communication; use Message; S : Communication.Status_Code; function Register (Class : Var_String.V_String) return Agent_Nb.T_Agent_Nb is S : Communication.Status_Code; V : Var_String.V_String; M : Message.Object; begin M := Message.Create (Class => Message.Registration, Source => Agent_Nb.Null_Agent_Nb, Destination => Agent_Nb.Null_Agent_Nb, Donnees => Trame_Registration.Image (Trame => Trame_Registration.Create (Class => Class, Chanel => Communication. Get_Chanel))); Communication.Send (Message => Message.Image (Message => M), Remote_Host => Com_Chanel.Get_Host_Id (O => Com_Chanel.Get_Orb_Chanel), Remote_Socket => Com_Chanel.Get_Socket_Id (O => Com_Chanel.Get_Orb_Chanel), Status => S); Text_Io.Put_Line ("registration " & Var_String.Image (Com_Chanel.Image (Communication.Get_Chanel)) & " en cours "); loop Communication.Receive (Message => V, Status => S); Text_Io.Put_Line ("resultat:" & Var_String.Image (V) & " status :" & Communication.Status_Code'Image (S)); exit when S = Communication.Ok; if S = Communication.No_Message then delay (10.0); end if; end loop; M := Message.Value (Message => V); return Message.Get_Source (M); end Register; procedure Unregister (Agent : Agent_Nb.T_Agent_Nb) is M : Message.Object; begin M := Message.Create (Class => Message.Unregistration, Source => Agent, Destination => Agent_Nb.Null_Agent_Nb, Donnees => Var_String.Null_V_String); Communication.Send (Message => Message.Image (Message => M), Remote_Host => Com_Chanel.Get_Host_Id (O => Com_Chanel.Get_Orb_Chanel), Remote_Socket => Com_Chanel.Get_Socket_Id (O => Com_Chanel.Get_Orb_Chanel), Status => S); end Unregister; procedure Publication (Agent : Agent_Nb.T_Agent_Nb; Methode : Var_String.V_String; Parameter : Var_String.V_String) is M : Message.Object; begin M := Message.Create (Class => Message.Publication, Source => Agent, Destination => Agent_Nb.Null_Agent_Nb, Donnees => Trame_Publication.Image (Trame => Trame_Publication.Create (Methode => Methode, Parameter => Parameter))); Communication.Send (Message => Message.Image (Message => M), Remote_Host => Com_Chanel.Get_Host_Id (O => Com_Chanel.Get_Orb_Chanel), Remote_Socket => Com_Chanel.Get_Socket_Id (O => Com_Chanel.Get_Orb_Chanel), Status => S); end Publication; procedure Unpublication (Agent : Agent_Nb.T_Agent_Nb; Methode : Var_String.V_String) is M : Message.Object; begin M := Message.Create (Class => Message.Unpublication, Source => Agent, Destination => Agent_Nb.Null_Agent_Nb, Donnees => Trame_Publication.Image (Trame => Trame_Publication.Create (Methode => Methode, Parameter => Var_String. Null_V_String))); Communication.Send (Message => Message.Image (Message => M), Remote_Host => Com_Chanel.Get_Host_Id (O => Com_Chanel.Get_Orb_Chanel), Remote_Socket => Com_Chanel.Get_Socket_Id (O => Com_Chanel.Get_Orb_Chanel), Status => S); end Unpublication; procedure Request (Agent : Agent_Nb.T_Agent_Nb; Methode : Var_String.V_String; Parameter : in out Var_String.V_String; Ok : out Boolean) is S : Communication.Status_Code; V : Var_String.V_String; M : Message.Object; Trame : Trame_Request.Object; begin M := Message.Create (Class => Message.Request, Source => Agent, Destination => Agent_Nb.Null_Agent_Nb, Donnees => Trame_Request.Image (Trame => Trame_Request.Create (Methode => Methode, Parameter => Parameter))); Communication.Send (Message => Message.Image (Message => M), Remote_Host => Com_Chanel.Get_Host_Id (O => Com_Chanel.Get_Orb_Chanel), Remote_Socket => Com_Chanel.Get_Socket_Id (O => Com_Chanel.Get_Orb_Chanel), Status => S); loop loop Communication.Receive (Message => V, Status => S); Text_Io.Put_Line ("resultat:" & Var_String.Image (V) & " status :" & Communication.Status_Code'Image (S)); exit when S = Communication.Ok; if S = Communication.No_Message then delay (10.0); end if; end loop; M := Message.Value (Message => V); exit when Message.Get_Class (M) = Message.Replay; exit when Message.Get_Class (M) = Message.Error; end loop; Ok := False; if Message.Get_Class (M) = Message.Replay then Trame := Trame_Request.Value (S => Message.Get_Donnees (M)); Parameter := Trame_Request.Get_Parameter (Trame); Ok := True; end if; end Request; procedure Replay (Agent_Source : Agent_Nb.T_Agent_Nb; Agent_Destination : Agent_Nb.T_Agent_Nb; Methode : Var_String.V_String; Parameter : in Var_String.V_String) is S : Communication.Status_Code; M : Message.Object; begin M := Message.Create (Class => Message.Replay, Source => Agent_Source, Destination => Agent_Destination, Donnees => Trame_Request.Image (Trame => Trame_Request.Create (Methode => Methode, Parameter => Parameter))); Communication.Send (Message => Message.Image (Message => M), Remote_Host => Com_Chanel.Get_Host_Id (O => Com_Chanel.Get_Orb_Chanel), Remote_Socket => Com_Chanel.Get_Socket_Id (O => Com_Chanel.Get_Orb_Chanel), Status => S); end Replay; begin Communication.Init (Chanel => Com_Chanel.Null_Object, Status => S); Text_Io.Put_Line ("Initialisation du client :" & Communication.Status_Code'Image (S)); end Client_Orb;
nblk1=a nid=a hdr6=12 [0x00] rec0=21 rec1=00 rec2=01 rec3=00c [0x01] rec0=1d rec1=00 rec2=08 rec3=00c [0x02] rec0=1a rec1=00 rec2=07 rec3=014 [0x03] rec0=1a rec1=00 rec2=05 rec3=034 [0x04] rec0=17 rec1=00 rec2=03 rec3=02c [0x05] rec0=19 rec1=00 rec2=06 rec3=040 [0x06] rec0=1a rec1=00 rec2=09 rec3=064 [0x07] rec0=1b rec1=00 rec2=02 rec3=00e [0x08] rec0=03 rec1=00 rec2=04 rec3=001 [0x09] rec0=c9 rec1=0f rec2=ac rec3=56e tail 0x21765993887e2a895e791 0x42a00088462060003 Free Block Chain: 0xa: 0000 00 00 03 fc 80 14 20 20 43 6f 6d 6d 75 6e 69 63 ┆ Communic┆