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

⟦4853f119a⟧ Ada Source

    Length: 8192 (0x2000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Bbs_Conditions, seg_01169b

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 Instance;
with Tuple_Collection, Slot;

with Bbs_Tests;
use Bbs_Tests;
with New_Ball, New_Box, New_Sticker, Constant_Colours;  
with Ball_Features, Box_Features, Sticker_Features;

package body Bbs_Conditions is
    use New_Ball, New_Box, New_Sticker, Constant_Colours,  
        Ball_Features, Box_Features, Sticker_Features, Slot.Operators;

    function Pack_It_Restriction_1
                (The_Reference : Instance.Reference) return Boolean is
    begin
        return New_Ball.Value_Of (The_Reference, Place) = In_The_Heap;
    end Pack_It_Restriction_1;

    function Pack_It_Restriction_2
                (The_Reference : Instance.Reference) return Boolean is
    begin
        return New_Box.Value_Of (The_Reference, State) =
                  State_Slot_Box.Value (Is_Empty);
    end Pack_It_Restriction_2;

    function Pack_It_Restriction_3
                (The_Reference : Instance.Reference) return Boolean is
    begin
        return New_Sticker.Value_Of (The_Reference, State) =
                  State_Slot_Sticker.Value (Is_Unused);

    end Pack_It_Restriction_3;

    function Sticker_Lack_Restriction_1
                (The_Reference : Instance.Reference) return Boolean is
    begin
        return New_Ball.Value_Of (The_Reference, Place) = In_The_Heap;
    end Sticker_Lack_Restriction_1;

    function Box_Lack_Restriction_1
                (The_Reference : Instance.Reference) return Boolean is
    begin
        return New_Ball.Value_Of (The_Reference, Place) = In_The_Heap;
    end Box_Lack_Restriction_1;

    function Too_Big_Restriction_1
                (The_Reference : Instance.Reference) return Boolean is
    begin
        return New_Ball.Value_Of (The_Reference, Place) = In_The_Heap;
    end Too_Big_Restriction_1;




    function Pack_It_Filter is new Tuple_Collection.Join_3
                                      (Collection_1 => New_Ball.Instances,
                                       Restrict_1   => Pack_It_Restriction_1,
                                       Collection_2 => New_Box.Instances,
                                       Restrict_2   => Pack_It_Restriction_2,
                                       Collection_3 => New_Sticker.Instances,
                                       Restrict_3   => Pack_It_Restriction_3,
                                       Match        => Bbs_Tests.Pack_It_Test);

    function Sticker_Lack_Filter is
       new Tuple_Collection.Join_1 (Collection_1 => New_Ball.Instances,
                                    Restrict_1 => Sticker_Lack_Restriction_1,
                                    Match => Bbs_Tests.Sticker_Lack_Test);

    function Box_Lack_Filter is new Tuple_Collection.Join_1
                                       (Collection_1 => New_Ball.Instances,
                                        Restrict_1 => Box_Lack_Restriction_1,
                                        Match => Bbs_Tests.Box_Lack_Test);

    function Too_Big_Filter is new Tuple_Collection.Join_1
                                      (Collection_1 => New_Ball.Instances,
                                       Restrict_1   => Too_Big_Restriction_1,
                                       Match        => Bbs_Tests.Too_Big_Test);




    function Pack_It_Condition return Tuple_Collection.Object is
    begin
        return Pack_It_Filter;
    end Pack_It_Condition;


    function Sticker_Lack_Condition return Tuple_Collection.Object is
    begin
        return Sticker_Lack_Filter;
    end Sticker_Lack_Condition;


    function Box_Lack_Condition return Tuple_Collection.Object is
    begin
        return Box_Lack_Filter;
    end Box_Lack_Condition;


    function Too_Big_Condition return Tuple_Collection.Object is
    begin
        return Too_Big_Filter;
    end Too_Big_Condition;

end Bbs_Conditions;

E3 Meta Data

    nblk1=7
    nid=6
    hdr6=8
        [0x00] rec0=1e rec1=00 rec2=01 rec3=024
        [0x01] rec0=1c rec1=00 rec2=07 rec3=02e
        [0x02] rec0=0f rec1=00 rec2=04 rec3=086
        [0x03] rec0=22 rec1=00 rec2=02 rec3=000
        [0x04] rec0=0a rec1=00 rec2=03 rec3=000
        [0x05] rec0=04 rec1=00 rec2=02 rec3=000
        [0x06] rec0=00 rec1=3d rec2=41 rec3=075
    tail 0x2150cece0823993d2dc50 0x42a00088462063c03
Free Block Chain:
  0x6: 0000  00 03 00 0e 80 0b 65 77 5f 73 74 69 63 6b 65 72  ┆      ew_sticker┆
  0x3: 0000  00 05 00 19 00 13 65 6e 64 20 42 62 73 5f 43 6f  ┆      end Bbs_Co┆
  0x5: 0000  00 00 00 30 80 2d 20 20 20 20 20 20 20 20 20 20  ┆   0 -          ┆