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

⟦e24c884f6⟧ Ada Source

    Length: 6144 (0x1800)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Treat_A_Client_Which_Do_Not_Know_The_Requested_Object_Id, seg_056907, 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_Do_Not_Know_The_Requested_Object_Id is
begin  
    Id_List := Object_Manager.Search_Object_Doing_Method
                  (Data_Base, Class, Method_N);
    if not Object_Manager.Objects_Id.Is_Empty (Id_List) then
        --the object_manager found an object
        Task_Io.Put_Line ("un object correspond a la description ");
        Object_Manager.Objects_Id.Init (Id_Iter, Id_List);
        loop
            The_Object_Id := Object_Manager.Objects_Id.Value (Id_Iter);

            The_Object := Object_Manager.Get_Object_By_Id
                             (Data_Base, Parametre_Defs.Identificator
                                            (The_Object_Id));
            Object_Manager.Objects_Id.Next (Id_Iter);
            Task_Io.Put_Line ("the choosen object is" &
                              Registrated_Object.Image (The_Object));
            exit when not Registrated_Object.Is_Unknown (The_Object);

        end loop;
        Message.Set_Emet (Mess, Message.Get_Emet (Mess));
        Message.Set_Dest (Mess, Parametre_Defs.Identificator (The_Object_Id));
        Task_Io.Put_Line ("i have request from" &
                          Utils.Byte_String_To_String
                             (Byte_Defs.Byte_String (Message.Get_Emet (Mess))));
        Task_Io.Put_Line ("for " &
                          Utils.Byte_String_To_String
                             (Byte_Defs.Byte_String (Message.Get_Dest (Mess))));

        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 ("talk pas reussi");
            Object_Manager.Set_To_Unknow (Data_Base, The_Object_Id);
            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);

        else
            Object_Manager.Give_Work (Data_Base, The_Object_Id);
            Task_Io.Put_Line ("ok request sended");
        end if;
    else
        -- the object_manager don't found the requested method in any object
        Message.Set_Emet (Mess, Message.Get_Emet (Mess));
        Message.Set_Dest (Mess, Message.Get_Emet (Mess));
        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);
        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_Do_Not_Know_The_Requested_Object_Id;  

E3 Meta Data

    nblk1=5
    nid=3
    hdr6=8
        [0x00] rec0=15 rec1=00 rec2=01 rec3=000
        [0x01] rec0=13 rec1=00 rec2=04 rec3=024
        [0x02] rec0=17 rec1=00 rec2=05 rec3=012
        [0x03] rec0=07 rec1=00 rec2=02 rec3=000
        [0x04] rec0=01 rec1=00 rec2=03 rec3=000
    tail 0x21762cdba87c489e820fd 0x42a00088462060003
Free Block Chain:
  0x3: 0000  00 00 00 0b 80 05 49 64 3b 20 20 05 00 00 00 20  ┆      Id;       ┆