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

⟦bfb36b9c3⟧ Ada Source

    Length: 12288 (0x3000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Sub_Contrat, seg_05727c

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;

package body Sub_Contrat is

    procedure Switch_Status (List_Of_Contrats : in out Contrat_List.List;
                             Id : in Identification.Tclient_Id;
                             Buzzy : Boolean) is
        List_Inter : Contrat_List.List;
        Iter : Contrat_List.Iterator;
        A_Contrat : Tcontrat;
    begin  
        Contrat_List.Init (Iter, List_Of_Contrats);
        while not Contrat_List.Done (Iter) loop
            A_Contrat := Contrat_List.Value (Iter);
            if Identification.Tclient_Id'Image (Contrat_List.Value (Iter).Id) =
               Identification.Tclient_Id'Image (Id) then
                A_Contrat.Buzzy := Buzzy;
            end if;
            List_Inter := Contrat_List.Make (A_Contrat, List_Inter);
            Contrat_List.Next (Iter);
        end loop;
        List_Of_Contrats := List_Inter;
        Contrat_List.Free (List_Inter);
    end Switch_Status;

    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 : Orb_Tools.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;
        Contrat.Buzzy := False;
    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;
                              Id : Identification.Tclient_Id) 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 Identification.Tclient_Id'Image (Contrat_List.Value (Iter).Id) /=
               Identification.Tclient_Id'Image (Id) 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 Orb_Tools.Image (Contrat_List.Value (Iter).Nom_Contrat) =
                         Orb_Tools.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;  
        Default_Contrat : Tcontrat;

    begin
        Contrat_List.Init (Iter, List_Of_Contrats);

        while Orb_Tools.Image (Contrat_List.Value (Iter).Nom_Contrat) /=
                 Orb_Tools.Image (Nom) loop
            Contrat_List.Next (Iter);
        end loop;
        Default_Contrat := Contrat_List.Value (Iter);

        if not Contrat_List.Value (Iter).Buzzy then
            return Default_Contrat.Id;
        else
            while not Contrat_List.Done (Iter) loop
                exit when Orb_Tools.Image
                             (Contrat_List.Value (Iter).Nom_Contrat) =
                          Orb_Tools.Image (Nom) and
                          not Contrat_List.Value (Iter).Buzzy;
                Contrat_List.Next (Iter);
            end loop;
            if Contrat_List.Done (Iter) then
                return Default_Contrat.Id;
            else
                return Contrat_List.Value (Iter).Id;
            end if;
            return Contrat_List.Value (Iter).Id;  
        end if;
    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 (L : in Contrat_List.List;
                        Mess : in Message.Tmessage;
                        Sub : out Tsubscription) is
        Content_T : Orb_Tools.Content_String;
        Origin_N : Identification.Tclient_Id;
    begin
        Message.Unfill_Content (Mess, Content_T);
        if Contrat_Exists (L, Content_T) then
            Sub.On := Content_T;
            Message.Unfill_Origin (Mess, Origin_N);
            Sub.Who := Origin_N;
        end if;
    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; On : in Orb_Tools.Content_String)
                return Boolean is
        Iter : Sub_List.Iterator;
    begin
        Sub_List.Init (Iter, List_Of_Sub);
        while not Sub_List.Done (Iter) loop
            exit when Orb_Tools.Image (Sub_List.Value (Iter).On) =
                         Orb_Tools.Image (On);
            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;
                          On : in Orb_Tools.Content_String)
                         return Identification.Tclient_Id is
        Iter : Sub_List.Iterator;
    begin
        Sub_List.Init (Iter, List_Of_Sub);
        while Orb_Tools.Image (Sub_List.Value (Iter).On) /=
                 Orb_Tools.Image (On) loop
            Sub_List.Next (Iter);
        end loop;
        return Sub_List.Value (Iter).Who;
    end Subscripter;

end Sub_Contrat;

E3 Meta Data

    nblk1=b
    nid=b
    hdr6=14
        [0x00] rec0=1b rec1=00 rec2=01 rec3=042
        [0x01] rec0=1c rec1=00 rec2=0a rec3=024
        [0x02] rec0=18 rec1=00 rec2=06 rec3=014
        [0x03] rec0=1c rec1=00 rec2=04 rec3=084
        [0x04] rec0=01 rec1=00 rec2=09 rec3=020
        [0x05] rec0=1a rec1=00 rec2=02 rec3=010
        [0x06] rec0=1d rec1=00 rec2=08 rec3=01e
        [0x07] rec0=1c rec1=00 rec2=07 rec3=046
        [0x08] rec0=1b rec1=00 rec2=03 rec3=002
        [0x09] rec0=11 rec1=00 rec2=05 rec3=001
        [0x0a] rec0=77 rec1=1c rec2=70 rec3=000
    tail 0x2154df4ec87c679e6f13f 0x42a00088462060003
Free Block Chain:
  0xb: 0000  00 00 00 1b 80 18 20 20 20 20 20 20 20 20 20 20  ┆                ┆