ANY LOOP_ITEM NONE
class interface SIMPLE_BACKGROUND_JOB
   -- Describe job to be executed in the background, when there nothing
   -- more important to do. Such job is ready to run at any time.

creation
   set_work (t: FUNCTION[ANY,TUPLE,BOOLEAN]; tr: PROCEDURE[ANY,TUPLE]; prio: INTEGER)
      -- t has to return True while continue
      require
         t /= Void;
         prio /= Minimum_integer
      ensure
         priority = prio

feature(s) from SIMPLE_BACKGROUND_JOB
   set_work (t: FUNCTION[ANY,TUPLE,BOOLEAN]; tr: PROCEDURE[ANY,TUPLE]; prio: INTEGER)
      -- t has to return True while continue
      require
         t /= Void;
         prio /= Minimum_integer
      ensure
         priority = prio


invariant

    priority /= Minimum_integer;

end of SIMPLE_BACKGROUND_JOB