-- -- Uwe R. Zimmer, Australia, September 2011 -- package body Id_Generator_Sequential is
Current_Id : Id_Range := Id_Range'First;
Last_Id_Gone : Boolean := False;
function Set_Id return Id_Range is
Return_Id : constant Id_Range := Current_Id;
begin if Last_Id_Gone then
raise Out_Of_Ids;
else if Current_Id < Id_Range'Last then
Current_Id := Current_Id + 1;
else Last_Id_Gone := True;
end if;
return Return_Id;
end if;
end Set_Id;
end Id_Generator_Sequential;