|
|
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: 6144 (0x1800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Orb, seg_05487c
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
with Filter_Storage;
with Abonnement_Storage;
with Observator_Storage;
with Contrat_Storage;
with Filter_Storage;
with Text_Io;
package body Orb is
procedure Type_Supervisor (Message : in out Message_Content) is
Id : Natural;
Place : Natural := 1;
Success : Boolean := False;
begin
case Message.Type_Msg is
when Registration =>
Text_Io.Put_Line ("demande d'enregistrement d'un objet");
Message.Source_Id := Abonnement_Storage.Add
(Message.Name, Message.Socket);
Text_Io.Put_Line (Natural'Image (Message.Source_Id));
--envoyer message avec identificateur
Text_Io.Put_Line ("abonnement realise");
when Unregistration =>
Text_Io.Put_Line ("demande de retrait d'un objet ");
Abonnement_Storage.Delete (Message.Source_Id);
Observator_Storage.Delete (Message.Source_Id);
Filter_Storage.Delete (Message.Source_Id);
Text_Io.Put_Line ("abonnement resilie ");
when Query =>
Text_Io.Put_Line ("demande de maintenance");
--affichage de la table interne
Text_Io.Put_Line ("non realise");
when Request =>
Text_Io.Put_Line ("demande de travail");
Id := Contrat_Storage.Search (Message.Content, Place);
while not (Success) loop
if Abonnement_Storage.See_State (Id) = 1 then
--envoyer message avec para see_name et see_socket
--si message transmi success:=true sinon place++
Text_Io.Put_Line ("message envoye pour la requete");
else
Text_Io.Put_Line ("serveur n'est plus abonne);");
Place := Place + 1;
Id := Contrat_Storage.Search (Message.Content, Place);
end if;
end loop;
when Notification =>
Text_Io.Put_Line ("demande d'information");
Text_Io.Put_Line (" non realise");
when Forward =>
Text_Io.Put_Line ("demande de propagation de message");
--envoyer message au client concerne par destination_id
Text_Io.Put_Line ("envoi realise");
when Publication =>
Text_Io.Put_Line ("demande d'enregistrement de contrat");
Contrat_Storage.Add (Message.Content, Message.Source_Id);
Text_Io.Put_Line ("stockage du contrat realise");
when Unpublication =>
Text_Io.Put_Line ("demande de retrait de contrat");
Contrat_Storage.Delete (Message.Content, Message.Source_Id);
Text_Io.Put_Line (" realise");
when Subscription =>
Text_Io.Put_Line ("demande d'abonnement espion");
if Abonnement_Storage.See_State (Message.Source_Id) = 1 then
Observator_Storage.Add (Message.Source_Id);
Text_Io.Put_Line (" abonnement espion realise");
end if;
when Unsubscription =>
Text_Io.Put_Line ("demande de retrait d'abonnement espion");
Observator_Storage.Delete (Message.Source_Id);
Text_Io.Put_Line ("abonnement espion resilie ");
when Filtration =>
Text_Io.Put_Line ("demande d'enregistrement de filtre");
if Abonnement_Storage.See_State (Message.Source_Id) = 1 then
Filter_Storage.Add (Message.Source_Id);
Text_Io.Put_Line (" abonnement filtre realise");
end if;
when Unfiltration =>
Text_Io.Put_Line ("demande de retrait de filtre");
Filter_Storage.Delete (Message.Source_Id);
Text_Io.Put_Line ("abonnement filtre resilie");
when others =>
Text_Io.Put_Line ("Le type de contrat ne convient pas");
--envoyer message a la source
end case;
end Type_Supervisor;
end Orb;
nblk1=5
nid=0
hdr6=a
[0x00] rec0=1b rec1=00 rec2=01 rec3=038
[0x01] rec0=14 rec1=00 rec2=02 rec3=00c
[0x02] rec0=16 rec1=00 rec2=03 rec3=000
[0x03] rec0=15 rec1=00 rec2=04 rec3=044
[0x04] rec0=0b rec1=00 rec2=05 rec3=000
tail 0x2175d9b3287b886b6f3dc 0x42a00088462060003