|
|
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: 14336 (0x3800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Orb, seg_058371
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
with Communication;
with Message;
with General_Data_Base;
with Agent_Nb;
with Text_Io;
with Var_String;
with Com_Chanel;
with Trame_Registration;
with Trame_Publication;
with Trame_Request;
with Method_Defs;
procedure Orb is
V : Var_String.V_String;
S : Communication.Status_Code;
M : Message.Object;
Data_Base : General_Data_Base.T_General_Data_Base;
use Communication;
use Method_Defs;
begin
Text_Io.Put_Line ("Orb Avant Communication.Init");
Communication.Init (Chanel => Com_Chanel.Get_Orb_Chanel, Status => S);
Text_Io.Put_Line ("Status:" & Communication.Status_Code'Image (S));
Text_Io.Put_Line ("chanel:" &
Var_String.Image (Com_Chanel.Image
(Communication.Get_Chanel)));
if S /= Communication.Ok then
return;
end if;
General_Data_Base.Create_General_Data_Base (Data_Base);
loop
delay (100);
Communication.Receive (Message => V, Status => S);
Text_Io.Put_Line ("resultat:" & Var_String.Image (V) & " status :" &
Communication.Status_Code'Image (S));
if S = Communication.Ok then
M := Message.Value (Message => V);
case Message.Get_Class (M) is
----------------------------------------------
when Message.Registration =>
declare
Trame : Trame_Registration.Object;
Agent : Agent_Nb.T_Agent_Nb;
begin
Trame := Trame_Registration.Value
(Message.Get_Donnees (M));
General_Data_Base.Registration
(The_Data_Base => Data_Base,
The_Object =>
Trame_Registration.Get_Com_Chanel (Trame),
The_Agent_Nb => Agent,
The_Class => Trame_Registration.Get_Class (Trame));
Communication.Send
(Message =>
Message.Image
(Message =>
Message.Create
(Class => Message.Replay,
Source => Agent,
Destination => Agent_Nb.Null_Agent_Nb,
Donnees => Var_String.Null_V_String)),
Remote_Host =>
Com_Chanel.Get_Host_Id
(Trame_Registration.Get_Com_Chanel (Trame)),
Remote_Socket =>
Com_Chanel.Get_Socket_Id
(Trame_Registration.Get_Com_Chanel (Trame)),
Status => S);
if S = Communication.Ok then
Text_Io.Put_Line
("Registration agent " &
Var_String.Image (Agent_Nb.Image (Agent)) &
" Ok : " &
Var_String.Image
(Com_Chanel.Image
(Trame_Registration.Get_Com_Chanel
(Trame))));
else
Text_Io.Put_Line
("Erreur registration agent " &
Var_String.Image
(Com_Chanel.Image
(Trame_Registration.Get_Com_Chanel
(Trame))));
end if;
end;
----------------------------------------------
when Message.Unregistration =>
Text_Io.Put ("Unregistration");
General_Data_Base.Unregistration
(Data_Base, Message.Get_Source (M));
Text_Io.Put_Line
(" agent " & Var_String.Image
(Agent_Nb.Image
(Message.Get_Source (M))));
----------------------------------------------
when Message.Publication =>
declare
Trame : Trame_Publication.Object;
begin
Trame := Trame_Publication.Value
(Message.Get_Donnees (M));
General_Data_Base.Publication
(The_Data_Base => Data_Base,
The_Agent_Nb => Message.Get_Source (M),
The_Method_Name =>
Trame_Publication.Get_Methode (Trame),
The_Parameter =>
Trame_Publication.Get_Parameter (Trame));
Text_Io.Put_Line
("Publication agent " &
Var_String.Image
(Agent_Nb.Image (Message.Get_Source (M))) &
" Ok : " &
Var_String.Image
(Trame_Publication.Get_Methode (Trame)));
end;
----------------------------------------------
when Message.Unpublication =>
declare
Trame : Trame_Publication.Object;
begin
Text_Io.Put ("Unpublication");
Trame := Trame_Publication.Value
(Message.Get_Donnees (M));
General_Data_Base.Unpublication
(The_Data_Base => Data_Base,
The_Agent_Nb => Message.Get_Source (Message => M),
The_Method_Name =>
Trame_Publication.Get_Methode (Trame => Trame));
Text_Io.Put_Line
(" agent " &
Var_String.Image
(Agent_Nb.Image (Message.Get_Source (M))) &
" Ok : " &
Var_String.Image
(Trame_Publication.Get_Methode (Trame)));
end;
----------------------------------------------
when Message.Request =>
declare
C : Com_Chanel.Object;
Trame : Trame_Request.Object;
A_Agent_Nb_Set : Agent_Nb_Set.Set;
Request_Result : Boolean;
Iter : Agent_Nb_Set.Iterator;
Parameter : Var_String.V_String;
begin
Trame := Trame_Request.Value (Message.Get_Donnees (M));
Agent_Nb_Set.Initialize (A_Agent_Nb_Set);
General_Data_Base.Request
(Data_Base, Trame_Request.Get_Methode (Trame),
A_Agent_Nb_Set, Parameter, Request_Result);
if Request_Result then
Agent_Nb_Set.Init (Iter, A_Agent_Nb_Set);
General_Data_Base.Get_Com_Chanel
(Data_Base, Agent_Nb_Set.Value (Iter), C);
Message.Set_Destination (M,
Agent_Nb_Set.Value (Iter));
Communication.Send
(Message => Message.Image (Message => M),
Remote_Host => Com_Chanel.Get_Host_Id (C),
Remote_Socket => Com_Chanel.Get_Socket_Id (C),
Status => S);
else
General_Data_Base.Get_Com_Chanel
(Data_Base, Message.Get_Source (M), C);
Message.Set_Class (M, Message.Error);
Communication.Send
(Message => Message.Image (Message => M),
Remote_Host => Com_Chanel.Get_Host_Id (C),
Remote_Socket => Com_Chanel.Get_Socket_Id (C),
Status => S);
end if;
end;
----------------------------------------------
when Message.Replay =>
declare
C : Com_Chanel.Object;
begin
General_Data_Base.Get_Com_Chanel
(Data_Base, Message.Get_Destination (M), C);
Communication.Send
(Message => Message.Image (Message => M),
Remote_Host => Com_Chanel.Get_Host_Id (C),
Remote_Socket => Com_Chanel.Get_Socket_Id (C),
Status => S);
end;
----------------------------------------------
when others =>
null;
end case;
end if;
end loop;
end Orb;
nblk1=d
nid=0
hdr6=1a
[0x00] rec0=25 rec1=00 rec2=01 rec3=022
[0x01] rec0=00 rec1=00 rec2=0c rec3=002
[0x02] rec0=15 rec1=00 rec2=03 rec3=04a
[0x03] rec0=00 rec1=00 rec2=0b rec3=00c
[0x04] rec0=12 rec1=00 rec2=02 rec3=02c
[0x05] rec0=15 rec1=00 rec2=08 rec3=030
[0x06] rec0=0d rec1=00 rec2=07 rec3=022
[0x07] rec0=13 rec1=00 rec2=04 rec3=012
[0x08] rec0=17 rec1=00 rec2=06 rec3=016
[0x09] rec0=17 rec1=00 rec2=05 rec3=038
[0x0a] rec0=10 rec1=00 rec2=09 rec3=004
[0x0b] rec0=14 rec1=00 rec2=0d rec3=034
[0x0c] rec0=0d rec1=00 rec2=0a rec3=001
tail 0x21765996887e301e06c3c 0x42a00088462060003