with Ada.IO_Exceptions; use Ada.IO_Exceptions; with GNAT.Current_Exception; use GNAT.Current_Exception; with Unbounded_Strings; use Unbounded_Strings; with GNAT.Command_Line; use GNAT.Command_Line; with GNAT.OS_Lib; use GNAT.OS_Lib; with Text_IO; use Text_IO; with Version; use Version; with Ada.Strings.Unbounded; use Ada.Strings.Unbounded; with Systems; use Systems; with Task_Set; use Task_Set; with Processor_Set; use Processor_Set; with Address_Space_Set; use Address_Space_Set; with Resource_Set; use Resource_Set; with Buffer_Set; use Buffer_Set; with Call_Framework; use Call_Framework; with Tasks; use Tasks; with Debug; use Debug; use Task_Set.Generic_Task_Set; package body applicability_constraint.Simultaneous_Release_Time_Constraint is function APPLY_QUERY1_Condition (t1 : Generic_Task_Ptr) return Boolean is begin return (t1.task_type = Periodic_Type); end APPLY_QUERY1_Condition; function APPLY_QUERY3_Condition (t4 : Generic_Task_Ptr) return Boolean is begin return (t4.task_type = Periodic_Type); end APPLY_QUERY3_Condition; function APPLY_QUERY2_Condition (t2 : Generic_Task_Ptr) return Boolean is t3 : Generic_Task_Ptr; begin Get_Element_Number (Context.Tasks, t3, Tasks_Range (1)); return (t2.start_time = t3.start_time); end APPLY_QUERY2_Condition; function apply (Sys : System) return Boolean is begin Context := Sys; return (Task_Set.Get_Number_Of_Elements (Select_And_Copy (Context.Tasks, APPLY_QUERY1_Condition'Access)) < Tasks_Range (2)) or (Get_Number_Of_Elements (Select_And_Copy ((Select_And_Copy (Context.Tasks, APPLY_QUERY3_Condition'Access)), APPLY_QUERY2_Condition'Access)) > Tasks_Range (0)); end apply; end applicability_constraint.Simultaneous_Release_Time_Constraint;