DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

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 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T V

⟦cf2c48923⟧ TextFile

    Length: 2012 (0x7dc)
    Types: TextFile
    Names: »V«

Derivation

└─⟦180fe333a⟧ Bits:30000405 8mm tape, Rational 1000, SW CATALOG, 10_20_0
└─⟦180fe333a⟧ Bits:30000537 8mm tape, Rational 1000, SW Catalog 10_20_0
    └─⟦5cb1d1d7f⟧ »DATA« 
        └─⟦3b1ee7bd8⟧ 
            └─⟦this⟧ 

TextFile

with Semaphore;
generic
    type Item is private;
package Bag_Simple_Guarded_Bounded_Managed_Noniterator is

    type Bag (The_Size : Positive) is limited private;

    procedure Seize (The_Bag : in Bag);
    procedure Release (The_Bag : in Bag);
    procedure Copy (From_The_Bag : in Bag; To_The_Bag : in out Bag);
    procedure Clear (The_Bag : in out Bag);
    procedure Add (The_Item : in Item; To_The_Bag : in out Bag);
    procedure Remove (The_Item : in Item; From_The_Bag : in out Bag);
    procedure Union (Of_The_Bag : in Bag;
                     And_The_Bag : in Bag;
                     To_The_Bag : in out Bag);
    procedure Intersection (Of_The_Bag : in Bag;
                            And_The_Bag : in Bag;
                            To_The_Bag : in out Bag);
    procedure Difference (Of_The_Bag : in Bag;
                          And_The_Bag : in Bag;
                          To_The_Bag : in out Bag);

    function Is_Equal (Left : in Bag; Right : in Bag) return Boolean;
    function Extent_Of (The_Bag : in Bag) return Natural;
    function Unique_Extent_Of (The_Bag : in Bag) return Natural;
    function Number_Of
                (The_Item : in Item; In_The_Bag : in Bag) return Positive;
    function Is_Empty (The_Bag : in Bag) return Boolean;
    function Is_A_Member
                (The_Item : in Item; Of_The_Bag : in Bag) return Boolean;
    function Is_A_Subset (Left : in Bag; Right : in Bag) return Boolean;
    function Is_A_Proper_Subset (Left : in Bag; Right : in Bag) return Boolean;

    Overflow : exception;
    Item_Is_Not_In_Bag : exception;

private
    type Node is
        record
            The_Item : Item;
            The_Count : Positive;
        end record;
    type Items is array (Positive range <>) of Node;
    type Bag (The_Size : Positive) is
        record
            Guard : Semaphore.Kind;
            The_Back : Natural := 0;
            The_Items : Items (1 .. The_Size);
        end record;
end Bag_Simple_Guarded_Bounded_Managed_Noniterator;