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

⟦be9c0db72⟧ Ada Source

    Length: 13312 (0x3400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Orb_Tools, seg_055c40

Derivation

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

E3 Source Code



with Text_Io;
with Bounded_String;
with Record_Tables;
with Const_Orb;

package body Orb_Tools is

    Mess_Error : My_Message.My_String;


    procedure Initialize_Data_Structures is
    begin
        Record_Tables.Initialize_Data_Structures;
    end Initialize_Data_Structures;


    procedure Reply_Error (Message : My_Message.Object;
                           Mess_Error : My_Message.My_String) is
        New_Message : My_Message.Object;
    begin
        New_Message := My_Message.Initialize
                          (Op => My_Message.Reply_Error,
                           Cont => Mess_Error,
                           Req_I => My_Message.Get_Request_Identifier (Message),
                           L_I => My_Message.Get_Local_Identifier (Message));
        My_Message.Send (New_Message,
                         My_Message.Get_Local_Identifier (Message));
    end Reply_Error;


    procedure Registrate (Message : My_Message.Object) is
    begin
        Text_Io.Put_Line (Bounded_String.Image (My_Message.Image (Message)) &
                          "  has been received");

        if not (Record_Tables.Client_Is_Registrate (Message)) then
            Record_Tables.Fill_In (Message);
        else
            Bounded_String.Copy (Mess_Error, "Client is already registrated !");
            Reply_Error (Message, Mess_Error);
        end if;  
    end Registrate;


    procedure Unregistrate (Message : My_Message.Object) is
    begin
        Text_Io.Put_Line (Bounded_String.Image (My_Message.Image (Message)) &
                          "  has been received");
        if (Record_Tables.Client_Is_Registrate (Message)) then
            Record_Tables.Delete (Message);
        else
            Bounded_String.Copy (Mess_Error, "Client is not  registrated !");
            Reply_Error (Message, Mess_Error);
        end if;
    end Unregistrate;


    procedure Require (Message : My_Message.Object) is
        New_Message : My_Message.Object;
        No_Remote_Id : My_Message.My_String;
    begin  
        Text_Io.Put_Line (Bounded_String.Image (My_Message.Image (Message)) &
                          "  has been received");
        New_Message := My_Message.Initialize
                          (Op => My_Message.Forward,
                           Cont => My_Message.Get_Content (Message),
                           L_I => My_Message.Get_Local_Identifier (Message),
                           Req_I => My_Message.Get_Request_Identifier (Message),
                           R_I => My_Message.Get_Content (Message));
        Bounded_String.Copy (No_Remote_Id, Const_Orb.No_Remote_Id);

        if (Record_Tables.Client_Is_Registrate (Message)) then

            -- si l'adresse est contenue dans le champs R_I
            if not (Bounded_String.Image  
                       (My_Message.Get_Remote_Identifier (Message)) =
                    Bounded_String.Image (No_Remote_Id)) then
                My_Message.Send (New_Message,
                                 My_Message.Get_Remote_Identifier (Message));
            else   -- sinon l'adresse est a rechercher dans la table
                if (Record_Tables.Request_Exists (Message)) then
                    My_Message.Send
                       (New_Message,
                        Record_Tables.Extract_Rem_Id_For_Request (Message));
                else
                    Bounded_String.Copy (Mess_Error,
                                         "Request does not exists !");
                    Reply_Error (Message, Mess_Error);
                end if;
            end if;
        else
            Bounded_String.Copy (Mess_Error, "Client is not  registrated !");
            Reply_Error (Message, Mess_Error);
        end if;
    end Require;


    procedure Notify (Message : My_Message.Object) is
    begin
        Text_Io.Put_Line (Bounded_String.Image (My_Message.Image (Message)) &
                          "  has been received");
        if (Record_Tables.Client_Is_Registrate (Message)) then
            Record_Tables.Send_To_All (Message);
        else
            Bounded_String.Copy (Mess_Error, "Client is not  registrated !");
            Reply_Error (Message, Mess_Error);
        end if;
    end Notify;


    procedure Publicate (Message : My_Message.Object) is
    begin
        Text_Io.Put_Line (Bounded_String.Image (My_Message.Image (Message)) &
                          "  has been received");
        if (Record_Tables.Client_Is_Registrate (Message)) then
            Record_Tables.Record_Of_Publication (Message);
        else
            Bounded_String.Copy (Mess_Error, "Client is not  registrated !");
            Reply_Error (Message, Mess_Error);
        end if;
    end Publicate;


    procedure Publicate_Filter (Message : My_Message.Object) is
    begin
        Text_Io.Put_Line (Bounded_String.Image (My_Message.Image (Message)) &
                          "  has been received");
        if (Record_Tables.Client_Is_Registrate (Message)) then
            Record_Tables.Record_Of_Publication_Filter (Message);
        else
            Bounded_String.Copy (Mess_Error, "Client is not  registrated !");
            Reply_Error (Message, Mess_Error);
        end if;
    end Publicate_Filter;




    procedure Unpublicate (Message : My_Message.Object) is
    begin
        Text_Io.Put_Line (Bounded_String.Image (My_Message.Image (Message)) &
                          "  has been received");
        if (Record_Tables.Client_Is_Registrate (Message)) then
            Record_Tables.Unrecord_Of_Publication (Message);
        else
            Bounded_String.Copy (Mess_Error, "Client is not  registrated !");
            Reply_Error (Message, Mess_Error);
        end if;
    end Unpublicate;


    procedure Unpublicate_Filter (Message : My_Message.Object) is
    begin
        Text_Io.Put_Line (Bounded_String.Image (My_Message.Image (Message)) &
                          "  has been received");
        if (Record_Tables.Client_Is_Registrate (Message)) then
            Record_Tables.Unrecord_Of_Publication_Filter (Message);
        else
            Bounded_String.Copy (Mess_Error, "Client is not  registrated !");
            Reply_Error (Message, Mess_Error);
        end if;
    end Unpublicate_Filter;


    procedure Subscript (Message : My_Message.Object) is
    begin
        Text_Io.Put_Line (Bounded_String.Image (My_Message.Image (Message)) &
                          "  has been received");
        if (Record_Tables.Client_Is_Registrate (Message)) then
            Record_Tables.Set_Subscription (Message);
        else
            Bounded_String.Copy (Mess_Error, "Client is not  registrated !");
            Reply_Error (Message, Mess_Error);
        end if;

    end Subscript;


    procedure Unsubscript (Message : My_Message.Object) is
    begin
        Text_Io.Put_Line (Bounded_String.Image (My_Message.Image (Message)) &
                          "  has been received");
        if (Record_Tables.Client_Is_Registrate (Message)) then
            Record_Tables.Reset_Subscription (Message);
        else
            Bounded_String.Copy (Mess_Error, "Client is not  registrated !");
            Reply_Error (Message, Mess_Error);
        end if;
    end Unsubscript;


    procedure Filtrate (Message : My_Message.Object) is
    begin
        Text_Io.Put_Line (Bounded_String.Image (My_Message.Image (Message)) &
                          "  has been received");
        if (Record_Tables.Client_Is_Registrate (Message)) then
            Record_Tables.Set_Filter (Message);
        else
            Bounded_String.Copy (Mess_Error, "Client is not  registrated !");
            Reply_Error (Message, Mess_Error);
        end if;
    end Filtrate;


    procedure Unfiltrate (Message : My_Message.Object) is
    begin
        Text_Io.Put_Line (Bounded_String.Image (My_Message.Image (Message)) &
                          "  has been received");
        if (Record_Tables.Client_Is_Registrate (Message)) then
            Record_Tables.Reset_Filter (Message);
        else
            Bounded_String.Copy (Mess_Error, "Client is not  registrated !");
            Reply_Error (Message, Mess_Error);
        end if;
    end Unfiltrate;


    procedure Query (Message : My_Message.Object) is
    begin
        Text_Io.Put_Line (Bounded_String.Image (My_Message.Image (Message)) &
                          "  has been received");
        Record_Tables.Show_Content_And_Objects_Of_Orb (Message);
    end Query;


    procedure Reply (Message : My_Message.Object) is
        New_Message : My_Message.Object := Message;
    begin
        Text_Io.Put_Line (Bounded_String.Image (My_Message.Image (Message)) &
                          "  has been received");
        Record_Tables.Reply (New_Message);
    end Reply;

   procedure Content (Message : My_Message.Object) is
    begin
        Text_Io.Put_Line (Bounded_String.Image (My_Message.Image (Message)) &
                          "  has been received");
        if (Record_Tables.Client_Is_Registrate (Message)) then
            Record_Tables.Reply_The_Content (Message);
        else
            Bounded_String.Copy (Mess_Error, "Client is not  registrated !");
            Reply_Error (Message, Mess_Error);
        end if;
    end Content;


    procedure Reply_Filtration (Message : My_Message.Object) is
        New_Message : My_Message.Object := Message;
    begin
        Text_Io.Put_Line (Bounded_String.Image (My_Message.Image (Message)) &
                          "  has been received");
        Record_Tables.Reply_Filtration (Message);
    end Reply_Filtration;


end Orb_Tools;

E3 Meta Data

    nblk1=c
    nid=8
    hdr6=16
        [0x00] rec0=21 rec1=00 rec2=01 rec3=004
        [0x01] rec0=1a rec1=00 rec2=02 rec3=068
        [0x02] rec0=13 rec1=00 rec2=09 rec3=064
        [0x03] rec0=17 rec1=00 rec2=03 rec3=08c
        [0x04] rec0=1a rec1=00 rec2=0c rec3=072
        [0x05] rec0=1c rec1=00 rec2=0b rec3=006
        [0x06] rec0=19 rec1=00 rec2=0a rec3=04e
        [0x07] rec0=02 rec1=00 rec2=05 rec3=04e
        [0x08] rec0=1a rec1=00 rec2=04 rec3=042
        [0x09] rec0=1c rec1=00 rec2=06 rec3=002
        [0x0a] rec0=17 rec1=00 rec2=07 rec3=000
        [0x0b] rec0=fc rec1=00 rec2=00 rec3=000
    tail 0x2154d806c87c053ede1cc 0x42a00088462060003
Free Block Chain:
  0x8: 0000  00 00 00 48 80 0f 73 61 67 65 2e 4f 62 6a 65 63  ┆   H  sage.Objec┆