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

⟦388797eb2⟧ Ada Source

    Length: 11264 (0x2c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Sub_Contrat, seg_054dc1

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



package body Sub_Contrat is



    function Is_Publication (Mess : in Message.Tmessage) return Boolean is
        C : Message.Command_Type := Message.Publication;
        Co : Message.Command_Type;

    begin
        Message.Unfill_Command (Mess, Co);
        if Message.Command_Type'Image (Co) = Message.Command_Type'Image (C) then
            return True;
        else
            return False;
        end if;
    end Is_Publication;

    function Is_Unpublication (Mess : in Message.Tmessage) return Boolean is
        C : Message.Command_Type := Message.Unpublication;
        Co : Message.Command_Type;
    begin
        Message.Unfill_Command (Mess, Co);
        if Message.Command_Type'Image (Co) = Message.Command_Type'Image (C) then
            return True;
        else
            return False;
        end if;
    end Is_Unpublication;

    procedure Fill_Contrat (Mess : in Message.Tmessage;
                            Contrat : out Tcontrat) is
        Content_T : Message.Content_String;
        Origin_N : Identification.Tclient_Id;
    begin
        Message.Unfill_Content (Mess, Content_T);
        Contrat.Nom_Contrat := Content_T;
        Message.Unfill_Origin (Mess, Origin_N);
        Contrat.Id := Origin_N;

    end Fill_Contrat;

    procedure Add_Contrat (List_Of_Contrats : in out Contrat_List.List;
                           Contrat : in Tcontrat) is
    begin
        List_Of_Contrats := Contrat_List.Make (Contrat, List_Of_Contrats);
    end Add_Contrat;

    procedure Remove_Contrat (List_Of_Contrats : in out Contrat_List.List;
                              Nom : in Tnom_Contrat) is
        Lbis : Contrat_List.List;
        Iter : Contrat_List.Iterator;
    begin
        Contrat_List.Init (Iter, List_Of_Contrats);
        while not Contrat_List.Done (Iter) loop  
            if Bounded_String.Image (Contrat_List.Value (Iter).Nom_Contrat) /=
               Bounded_String.Image (Nom) then
                Lbis := Contrat_List.Make (Contrat_List.Value (Iter), Lbis);
            end if;
            Contrat_List.Next (Iter);
        end loop;
        List_Of_Contrats := Lbis;
        Contrat_List.Free (Lbis);
    end Remove_Contrat;


    function Contrat_Exists
                (List_Of_Contrats : Contrat_List.List; Nom : in Tnom_Contrat)
                return Boolean is
        Iter : Contrat_List.Iterator;
    begin
        Contrat_List.Init (Iter, List_Of_Contrats);
        while not Contrat_List.Done (Iter) loop
            exit when Bounded_String.Image
                         (Contrat_List.Value (Iter).Nom_Contrat) =
                      Bounded_String.Image (Nom);
            Contrat_List.Next (Iter);
        end loop;  
        if not Contrat_List.Done (Iter) then
            return True;
        else
            return False;
        end if;
    end Contrat_Exists;

    function Contrat_Provider
                (List_Of_Contrats : Contrat_List.List; Nom : in Tnom_Contrat)
                return Identification.Tclient_Id is
        Iter : Contrat_List.Iterator;

    begin
        Contrat_List.Init (Iter, List_Of_Contrats);
        while Bounded_String.Image (Contrat_List.Value (Iter).Nom_Contrat) /=
                 Bounded_String.Image (Nom) loop
            Contrat_List.Next (Iter);
        end loop;
        return Contrat_List.Value (Iter).Id;
    end Contrat_Provider;

    function Is_Subscription (Mess : in Message.Tmessage) return Boolean is
        C : Message.Command_Type := Message.Subscription;
        Co : Message.Command_Type;

    begin
        Message.Unfill_Command (Mess, Co);
        if Message.Command_Type'Image (Co) = Message.Command_Type'Image (C) then
            return True;
        else
            return False;
        end if;
    end Is_Subscription;

    function Is_Unsubscription (Mess : in Message.Tmessage) return Boolean is
        C : Message.Command_Type := Message.Unsubscription;
        Co : Message.Command_Type;

    begin
        Message.Unfill_Command (Mess, Co);
        if Message.Command_Type'Image (Co) = Message.Command_Type'Image (C) then
            return True;
        else
            return False;
        end if;
    end Is_Unsubscription;

    procedure Fill_Sub (Mess : in Message.Tmessage; Sub : out Tsubscription) is
        Content_T : Message.Content_String;
        Origin_N : Identification.Tclient_Id;
        To_Tmp : Integer;
        Ok : Boolean;
    begin
        Message.Unfill_Content (Mess, Content_T);  
        String_Utilities.String_To_Number
           (Bounded_String.Image (Content_T), To_Tmp, Ok);
        Sub.To := Identification.Tclient_Id (To_Tmp);
        Message.Unfill_Origin (Mess, Origin_N);
        Sub.Who := Origin_N;

    end Fill_Sub;

    procedure Add_Sub (List_Of_Sub : in out Sub_List.List;
                       Sub : in Tsubscription) is
    begin
        List_Of_Sub := Sub_List.Make (Sub, List_Of_Sub);
    end Add_Sub;

    procedure Remove_Sub (List_Of_Sub : in out Sub_List.List;
                          Who : in Identification.Tclient_Id) is
        Lbis : Sub_List.List;
        Iter : Sub_List.Iterator;
    begin
        Sub_List.Init (Iter, List_Of_Sub);
        while not Sub_List.Done (Iter) loop  
            if Identification.Tclient_Id'Image (Sub_List.Value (Iter).Who) /=
               Identification.Tclient_Id'Image (Who) then
                Lbis := Sub_List.Make (Sub_List.Value (Iter), Lbis);
            end if;
            Sub_List.Next (Iter);
        end loop;
        List_Of_Sub := Lbis;
        Sub_List.Free (Lbis);
    end Remove_Sub;

    function Subscription_Exists
                (List_Of_Sub : Sub_List.List; To : in Identification.Tclient_Id)
                return Boolean is
        Iter : Sub_List.Iterator;
    begin
        Sub_List.Init (Iter, List_Of_Sub);
        while not Sub_List.Done (Iter) loop
            exit when Identification.Tclient_Id'Image
                         (Sub_List.Value (Iter).To) =
                      Identification.Tclient_Id'Image (To);
            Sub_List.Next (Iter);
        end loop;  
        if not Sub_List.Done (Iter) then
            return True;
        else
            return False;
        end if;
    end Subscription_Exists;

    function Subscripter (List_Of_Sub : Sub_List.List;
                          To : in Identification.Tclient_Id)
                         return Identification.Tclient_Id is
        Iter : Sub_List.Iterator;
    begin
        Sub_List.Init (Iter, List_Of_Sub);
        while Identification.Tclient_Id'Image (Sub_List.Value (Iter).To) /=
                 Identification.Tclient_Id'Image (To) loop
            Sub_List.Next (Iter);
        end loop;
        return Sub_List.Value (Iter).Who;
    end Subscripter;

end Sub_Contrat;

E3 Meta Data

    nblk1=a
    nid=7
    hdr6=10
        [0x00] rec0=20 rec1=00 rec2=01 rec3=060
        [0x01] rec0=19 rec1=00 rec2=05 rec3=04c
        [0x02] rec0=1e rec1=00 rec2=04 rec3=01e
        [0x03] rec0=1b rec1=00 rec2=09 rec3=008
        [0x04] rec0=1c rec1=00 rec2=08 rec3=048
        [0x05] rec0=1b rec1=00 rec2=06 rec3=032
        [0x06] rec0=1b rec1=00 rec2=0a rec3=01a
        [0x07] rec0=01 rec1=00 rec2=02 rec3=001
        [0x08] rec0=bc rec1=32 rec2=80 rec3=007
        [0x09] rec0=dd rec1=0f rec2=56 rec3=645
    tail 0x2154d1dd687b9648c6736 0x42a00088462060003
Free Block Chain:
  0x7: 0000  00 03 03 fc 80 37 4f 66 5f 43 6f 6e 74 72 61 74  ┆     7Of_Contrat┆
  0x3: 0000  00 00 00 18 80 15 66 69 63 61 74 69 6f 6e 2e 54  ┆      fication.T┆