--:::::::::: --lplpcnad.ads -- -Advanced --:::::::::: with List_Pos_LPBase.Advanced; generic package List_Pos_Lpt_Cntl.Advanced is ---------------------------------------------- -- DO NOT USE adv_zqklst package adv_zqklst is new zqklst.Advanced; ---------------------------------------------- subtype EQ_Type is adv_zqklst.EQ_Type; -- access function (L, R: Object_Type) return boolean; function Equivalent (List_1, List_2: List_Type; EQ: EQ_Type) return boolean; ---------------------------------------------- -- Pre Cond : None -- Post Cond: returns (#(List_1) = #(List_2), FORALL i IN 1..#(List_1) -- List_1(i) = List_2(i) -- Exception: None ---------------------------------------------- function Size_Of (List: List_Type) return integer; ---------------------------------------------- -- Pre Cond : None -- Post Cond: returns the number of objects in the list -- Exception: None ---------------------------------------------- procedure Insert (Object : in out Object_Type; Position: in positive; List : in out List_Type); ---------------------------------------------- -- Pre Cond : 1 <= Position <= Size_Of (List) -- Post Cond : List'=(a ,...,a ,Object,a ,...,a ) -- 1 position-1 position n -- Exceptions: constraint_error -- NOTE: Swap is used to transfer the Object_Type -- value into the structure ---------------------------------------------- procedure Remove (List : in out List_Type; Position: in positive; Object : in out Object_Type); ---------------------------------------------- -- Pre Cond : 1 <= Position <= Size_Of (List) -- Post Cond : List'=(a ,...,a ,a ,...,a ) -- 1 position-1 position+1 n -- Object' = List(position) -- Exceptions: constraint_error -- NOTE: Swap is used to transfer the Object_Type -- value into the structure ---------------------------------------------- function Peek (List : List_Type; Index: positive) return Object_Type; ---------------------------------------------- -- Pre Cond : List /= {}, 1 <= Index <= #(List) -- Post Cond: Returns List(Index) -- Exception: List_Underflow or constraint_error ---------------------------------------------- procedure Poke (List : in out List_Type; Index : in positive; Object: in out Object_Type); ---------------------------------------------- -- Pre Cond : 1 <= Index <= #(List) -- Post Cond: List(Index)' = Object -- Exception: constraint_error -- NOTE: Swap is used to transfer the Object_Type -- value into the structure ---------------------------------------------- procedure Share (Source, Target: in out List_Type); function Is_Shared (Source: List_Type) return boolean; end List_Pos_Lpt_Cntl.Advanced;