(under construction)
with Bookstore.Books; with Bookstore.Cart_Items; with Bookstore.Cart_Items.Hashed_Maps; with Bookstore.Cart_Items.Lists; 5package Bookstore.Carts is -- java code use synchronized operations. For now we use a normal -- type 10 type Shopping_Cart is tagged private; type Cart_Size is new Natural; 15 function Create_Shopping_Cart return Shopping_Cart; procedure Add (Cart : in out Shopping_Cart; ID : in Books.Id_Str; Book : in Books.Book); 20 procedure Remove (Cart : in out Shopping_Cart; ID : in Books.Id_Str); procedure Clear (Cart : in out Shopping_Cart); 25 function Get_Number_Of_Items (Cart : in Shopping_Cart) return Cart_Size; function Get_Total (Cart : in Shopping_Cart) return Books.Value; 30 function Get_Items (Cart : in Shopping_Cart) return Cart_Items.Lists.List; Empty_Cart : constant Shopping_Cart; private 35 package Item_Maps renames Bookstore.Cart_Items.Hashed_Maps; type Shopping_Cart is tagged record Items : Item_Maps.Map := Item_Maps.Empty_Map; 40 Number_Of_Items : Cart_Size := 0; end record; Empty_Cart : constant Shopping_Cart := Shopping_Cart'(Item_Maps.Empty_Map, 0); 45 end Bookstore.Carts;