------------------------------------------------------------------------------ ------------------------------------------------------------------------------ -- This source file was automatically generated by Platypus -- see http://dossen.univ-brest.fr/apl -- -- Any modification of this file will be lost. -- Please see the "platypus" directory instead : it contains the Cheddar's -- model and its meta-model. ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ -- Cheddar is a free real time scheduling tool. -- This program provides services to automatically check temporal constraints -- of real time tasks. -- -- Copyright (C) 2002-2009 Frank Singhoff -- Cheddar is developed by the LAB-STICC Team, University of Brest -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -- -- -- Contact : cheddar@listes.univ-brest.fr -- To post to this mailing list, you must be subscribed -- (see http//beru.univ-brest.fr/~singhoff/cheddar for details) -- ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ with Ada.Strings.Unbounded; use Ada.Strings.Unbounded; with Framework_Config; use Framework_Config; with id_generators; use id_generators; with Objects; use Objects; with CFG_Nodes; use CFG_Nodes; with Processors; use Processors; with Task_Groups; use Task_Groups; with Convert_Strings; with Convert_Unbounded_Strings; with text_io; use text_io; with Ada.Finalization; with unbounded_strings; use unbounded_strings; use unbounded_strings.Unbounded_String_List_Package; with Unchecked_Deallocation; with Primitive_XML_Strings; use Primitive_XML_Strings; with Tables; with ada.strings.unbounded.text_io; use ada.strings.unbounded.text_io; Package Atomic_Operations is type Processor_Sort_Type is ( Processor_Index, Processor_Utilization); procedure To_Processor_Sort_Type is new Convert_Strings(Processor_Sort_Type, Processor_Index); procedure To_Processor_Sort_Type is new Convert_Unbounded_Strings(Processor_Sort_Type, Processor_Index); function XML_String (obj : in Processor_Sort_Type) return Unbounded_String; function XML_Ref_String (obj : in Processor_Sort_Type) return Unbounded_String; package Processor_Sort_Type_io is new text_io.enumeration_io(Processor_Sort_Type); use Processor_Sort_Type_io; type Task_Sort_Type is ( Task_Period, Task_Deadline); procedure To_Task_Sort_Type is new Convert_Strings(Task_Sort_Type, Task_Period); procedure To_Task_Sort_Type is new Convert_Unbounded_Strings(Task_Sort_Type, Task_Period); function XML_String (obj : in Task_Sort_Type) return Unbounded_String; function XML_Ref_String (obj : in Task_Sort_Type) return Unbounded_String; package Task_Sort_Type_io is new text_io.enumeration_io(Task_Sort_Type); use Task_Sort_Type_io; type Feasibility_Test_Type is ( Condition_IP_Test, Utilization_Test); procedure To_Feasibility_Test_Type is new Convert_Strings(Feasibility_Test_Type, Condition_IP_Test); procedure To_Feasibility_Test_Type is new Convert_Unbounded_Strings(Feasibility_Test_Type, Condition_IP_Test); function XML_String (obj : in Feasibility_Test_Type) return Unbounded_String; function XML_Ref_String (obj : in Feasibility_Test_Type) return Unbounded_String; package Feasibility_Test_Type_io is new text_io.enumeration_io(Feasibility_Test_Type); use Feasibility_Test_Type_io; type Loop_Operation_Type is ( RMFF_loop, RMBF_loop, RMNF_loop); procedure To_Loop_Operation_Type is new Convert_Strings(Loop_Operation_Type, RMFF_loop); procedure To_Loop_Operation_Type is new Convert_Unbounded_Strings(Loop_Operation_Type, RMFF_loop); function XML_String (obj : in Loop_Operation_Type) return Unbounded_String; function XML_Ref_String (obj : in Loop_Operation_Type) return Unbounded_String; package Loop_Operation_Type_io is new text_io.enumeration_io(Loop_Operation_Type); use Loop_Operation_Type_io; -- --------= Atomic_Operation =-------- type Atomic_Operation; type Atomic_Operation_Ptr is access all Atomic_Operation'Class; type Atomic_Operation is new CFG_Node with record task_sorting : Task_Sort_Type; processor_sorting : Processor_Sort_Type; feasibility_test : Feasibility_Test_Type; end record; procedure Initialize(obj : in out Atomic_Operation); procedure Put(obj : in Atomic_Operation); procedure Put(obj : in Atomic_Operation_Ptr); procedure Put_Name(obj : in Atomic_Operation_Ptr); procedure Build_Attributes_XML_String(obj : in Atomic_Operation; result : in out Unbounded_String); function XML_String(obj : in Atomic_Operation) return Unbounded_String; function XML_String(obj : in Atomic_Operation_Ptr) return Unbounded_String; function XML_Ref_String(obj : in Atomic_Operation) return Unbounded_String; function XML_Ref_String(obj : in Atomic_Operation_Ptr) return Unbounded_String; function Get_Name (obj : in Atomic_Operation) return Unbounded_String; function Get_Name (obj : in Atomic_Operation_Ptr) return Unbounded_String; function Copy(obj : in Atomic_Operation_Ptr) return Atomic_Operation_Ptr; function Copy(obj : in Atomic_Operation) return Atomic_Operation_Ptr; function type_of(obj : in Atomic_Operation) return unbounded_string_list; function type_of(obj : in Atomic_Operation_Ptr) return unbounded_string_list; procedure Free is new Unchecked_Deallocation (Atomic_Operation'Class, Atomic_Operation_Ptr); package Atomic_Operations_Table_Package is new Tables(Atomic_Operation_Ptr, Framework_Config.Max_CFG_Nodes, Put, XML_String, XML_Ref_String); use Atomic_Operations_Table_Package; subtype Atomic_Operations_Range is Atomic_Operations_Table_Package.table_range; subtype Atomic_Operations_Range_Ptr is Atomic_Operations_Table_Package.table_range_Ptr; subtype Atomic_Operations_Table is Atomic_Operations_Table_Package.table; subtype Atomic_Operations_Table_Ptr is Atomic_Operations_Table_Package.table_Ptr; -- --------= Partitioning_Algorithm =-------- type Partitioning_Algorithm; type Partitioning_Algorithm_Ptr is access all Partitioning_Algorithm'Class; type Partitioning_Algorithm is new Ada.Finalization.Controlled with record cheddar_private_id : Unbounded_String; name : Unbounded_String; task_set : Unbounded_String; processor_set : Unbounded_String; task_sorting : Task_Sort_Type; looping : Loop_Operation_Type; processor_sorting : Processor_Sort_Type; feasibility_test : Feasibility_Test_Type; end record; procedure Initialize(obj : in out Partitioning_Algorithm); procedure Put(obj : in Partitioning_Algorithm); procedure Put(obj : in Partitioning_Algorithm_Ptr); procedure Put_Name(obj : in Partitioning_Algorithm_Ptr); procedure Build_Attributes_XML_String(obj : in Partitioning_Algorithm; result : in out Unbounded_String); function XML_String(obj : in Partitioning_Algorithm) return Unbounded_String; function XML_String(obj : in Partitioning_Algorithm_Ptr) return Unbounded_String; function XML_Ref_String(obj : in Partitioning_Algorithm) return Unbounded_String; function XML_Ref_String(obj : in Partitioning_Algorithm_Ptr) return Unbounded_String; function Copy(obj : in Partitioning_Algorithm_Ptr) return Partitioning_Algorithm_Ptr; function Copy(obj : in Partitioning_Algorithm) return Partitioning_Algorithm_Ptr; function type_of(obj : in Partitioning_Algorithm) return unbounded_string_list; function type_of(obj : in Partitioning_Algorithm_Ptr) return unbounded_string_list; procedure Free is new Unchecked_Deallocation (Partitioning_Algorithm'Class, Partitioning_Algorithm_Ptr); End Atomic_Operations;