/** @page LEVEL3 Scheduled Job Queue Requirements. The ScheduledJobQueue is a helper object to the Scheduler. This object keeps an ordered queue of the jobs for a particular job class. The Scheduler adds and removes jobs from the queue. The Scheduler asks for the top job of the queue, or the next job that has an execution time that matches the current simulation time. Finally, the Scheduler asks the ScheduledJobQueue to insert an instrumentation job where the job is attached before or after a specific job in the queue, or attached before or after all jobs in the simulation. @section LEVEL4 Jobs -# Trick shall store an ordered queue of jobs of the same scheduling class. The order shall be based on job class, phase number, sim_object order, and finally order of jobs within the simulation object. [ @anchor r_exec_time_0 r_exec_time_0 ] -# Trick shall provide a method to add simulation objects to the queue. [ @anchor r_exec_jobs_2 r_exec_jobs_2 ] -# Trick shall provide a method to add simulation objects to the queue that ignores the sim_object and job order. [ @anchor r_exec_jobs_2 r_exec_jobs_2 ] -# Trick shall provide a method to clear the job queue. [ @anchor r_exec_jobs_2 r_exec_jobs_2 ] -# Trick shall provide a method to get the next job on the list. [ @anchor r_exec_jobs_2 r_exec_jobs_2 ] -# Trick shall provide a method to search for the next job on the list whose next job call time matches the current simulation time. [ @anchor r_exec_jobs_2 r_exec_jobs_2 ] -# Trick shall provide a method to reset the search index to the top of the list. [ @anchor r_exec_jobs_2 r_exec_jobs_2 ] @section LEVEL4 Job Call Time -# Trick shall track the lowest next job call time greater than the current call time. [ @anchor r_exec_jobs_2 r_exec_jobs_2 ] -# Trick shall provide a method to retrieve the next job call time. [ @anchor r_exec_jobs_2 r_exec_jobs_2 ] @section LEVEL4 Instrumentation Jobs -# Trick shall provide a method to insert a job before each job in the queue. [ @anchor r_exec_instrument_0 r_exec_instrument_0 ] -# Trick shall provide a method to insert a job before a single job in the queue. [ @anchor r_exec_instrument_1 r_exec_instrument_1 ] -# Trick shall provide a method to insert a job after each job in the queue. [ @anchor r_exec_instrument_2 r_exec_instrument_2 ] -# Trick shall provide a method to insert a job after a single job in the queue. [ @anchor r_exec_instrument_3 r_exec_instrument_3 ] */