DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦6d93442d6⟧ Ada Source

    Length: 4096 (0x1000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Treat_A_Client_Which_Know_The_Requested_Object_Id, seg_05691a, separate Orb_Service.Request

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦this⟧ 

E3 Source Code



separate (Orb_Service.Request)
procedure Treat_A_Client_Which_Know_The_Requested_Object_Id is
begin  
    The_Object_Id := Object_Manager.Search_Method_By_Object_Id
                        (Data_Base, Message.Get_Dest (Mess), Method_N);  
    if not Object_Manager.Is_Equal (The_Object_Id, Object_Manager.Null_Id) then
        -- the requested object exist
        Task_Io.Put_Line ("l'object demande existe");
        The_Object := Object_Manager.Get_Object_By_Id
                         (Data_Base, Parametre_Defs.Identificator
                                        (The_Object_Id));  
        Message.Set_Emet (Mess, Message.Get_Emet (Mess));
        Message.Set_Dest (Mess, Parametre_Defs.Identificator (The_Object_Id));

        Object_Manager.Talk_To_Object (Data_Base => Data_Base,
                                       Id => The_Object_Id,
                                       Mess => Mess,
                                       Result => Result);

        if not Result then
            Task_Io.Put_Line
               ("cannot talk to the object specified by the client");
            Task_Io.Put_Line ("renvoie une answer bidon au demandeur");
            Message.Set_Type (Mess, Parametre_Defs.Answe);
            Object_Manager.Talk_To_Object
               (Data_Base => Data_Base,
                Id => Object_Manager.Object_Id (Message.Get_Emet (Mess)),
                Mess => Mess,
                Result => Result);
            Object_Manager.Set_To_Unknow (Data_Base, The_Object_Id);
        else
            if Object_Manager.Is_Unknown (Data_Base, The_Object_Id) then  
                Object_Manager.Set_To_Free (Data_Base, The_Object_Id);
            end if;
            Object_Manager.Give_Work (Data_Base, The_Object_Id);
            Task_Io.Put_Line ("ok request sended");


        end if;
    else
        -- the requested object do not exist
        Task_Io.Put_Line ("l'object demande n'existe pas");
        Message.Set_Emet (Mess, Message.Get_Emet (Mess));
        Message.Set_Dest (Mess, Message.Get_Emet (Mess));
        Object_Manager.Talk_To_Object
           (Data_Base => Data_Base,
            Id => Object_Manager.Object_Id (Message.Get_Emet (Mess)),
            Mess => New_Mess,
            Result => Result);  
        if not Result then
            Object_Manager.Set_To_Unknow
               (Data_Base, Object_Manager.Object_Id (Message.Get_Emet (Mess)));
        end if;
    end if;

end Treat_A_Client_Which_Know_The_Requested_Object_Id;



E3 Meta Data

    nblk1=3
    nid=0
    hdr6=6
        [0x00] rec0=15 rec1=00 rec2=01 rec3=018
        [0x01] rec0=17 rec1=00 rec2=03 rec3=010
        [0x02] rec0=10 rec1=00 rec2=02 rec3=000
    tail 0x21762cefc87c48a2d0735 0x42a00088462060003