------------------------------------------------------------------------------ ------------------------------------------------------------------------------ -- 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 GNU GPL real-time scheduling analysis tool. -- This program provides services to automatically check schedulability and -- other performance criteria of real-time architecture models. -- -- Copyright (C) 2002-2016 Frank Singhoff, Alain Plantec, Jerome Legrand -- -- The Cheddar project was started in 2002 by -- Frank Singhoff, Lab-STICC UMR 6285 laboratory, Université de Bretagne Occidentale -- -- Cheddar has been published in the "Agence de Protection des Programmes/France" in 2008. -- Since 2008, Ellidiss technologies also contributes to the development of -- Cheddar and provides industrial support. -- -- The full list of contributors and sponsors can be found in AUTHORS.txt and SPONSORS.txt -- -- 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 Messages; use Messages; with Tasks; use Tasks; with Buffers; use Buffers; with Resources; use Resources; 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; Package Dependencies is type Dependency_Type is ( Precedence_Dependency, Queueing_Buffer_Dependency, Asynchronous_Communication_Dependency, Time_Triggered_Communication_Dependency, Resource_Dependency, Remote_Procedure_Call_Dependency, Black_Board_Buffer_Dependency); procedure To_Dependency_Type is new Convert_Strings(Dependency_Type, Precedence_Dependency); procedure To_Dependency_Type is new Convert_Unbounded_Strings(Dependency_Type, Precedence_Dependency); function XML_String (obj : in Dependency_Type) return Unbounded_String; function XML_Ref_String (obj : in Dependency_Type) return Unbounded_String; package Dependency_Type_io is new text_io.enumeration_io(Dependency_Type); use Dependency_Type_io; type Time_Triggered_Communication_Timing_Property_Type is ( Sampled_Timing, Immediate_Timing, Delayed_Timing); procedure To_Time_Triggered_Communication_Timing_Property_Type is new Convert_Strings(Time_Triggered_Communication_Timing_Property_Type, Sampled_Timing); procedure To_Time_Triggered_Communication_Timing_Property_Type is new Convert_Unbounded_Strings(Time_Triggered_Communication_Timing_Property_Type, Sampled_Timing); function XML_String (obj : in Time_Triggered_Communication_Timing_Property_Type) return Unbounded_String; function XML_Ref_String (obj : in Time_Triggered_Communication_Timing_Property_Type) return Unbounded_String; package Time_Triggered_Communication_Timing_Property_Type_io is new text_io.enumeration_io(Time_Triggered_Communication_Timing_Property_Type); use Time_Triggered_Communication_Timing_Property_Type_io; type Orientation_Dependency_Type is ( From_Object_To_Task, From_Task_To_Object); procedure To_Orientation_Dependency_Type is new Convert_Strings(Orientation_Dependency_Type, From_Object_To_Task); procedure To_Orientation_Dependency_Type is new Convert_Unbounded_Strings(Orientation_Dependency_Type, From_Object_To_Task); function XML_String (obj : in Orientation_Dependency_Type) return Unbounded_String; function XML_Ref_String (obj : in Orientation_Dependency_Type) return Unbounded_String; package Orientation_Dependency_Type_io is new text_io.enumeration_io(Orientation_Dependency_Type); use Orientation_Dependency_Type_io; type Asynchronous_Communication_Protocol_Property_Type is ( First_Message, All_Messages); procedure To_Asynchronous_Communication_Protocol_Property_Type is new Convert_Strings(Asynchronous_Communication_Protocol_Property_Type, First_Message); procedure To_Asynchronous_Communication_Protocol_Property_Type is new Convert_Unbounded_Strings(Asynchronous_Communication_Protocol_Property_Type, First_Message); function XML_String (obj : in Asynchronous_Communication_Protocol_Property_Type) return Unbounded_String; function XML_Ref_String (obj : in Asynchronous_Communication_Protocol_Property_Type) return Unbounded_String; package Asynchronous_Communication_Protocol_Property_Type_io is new text_io.enumeration_io(Asynchronous_Communication_Protocol_Property_Type); use Asynchronous_Communication_Protocol_Property_Type_io; type Dependency (type_of_dependency : Dependency_Type ) is record case type_of_dependency is when precedence_dependency => precedence_sink : Generic_Task_Ptr; precedence_source : Generic_Task_Ptr; when queueing_buffer_dependency => buffer_dependent_task : Generic_Task_Ptr; buffer_orientation : Orientation_Dependency_Type; buffer_dependency_object : Buffer_Ptr; when asynchronous_communication_dependency => asynchronous_communication_dependent_task : Generic_Task_Ptr; asynchronous_communication_orientation : Orientation_Dependency_Type; asynchronous_communication_dependency_object : Generic_Message_Ptr; asynchronous_communication_protocol_property : Asynchronous_Communication_Protocol_Property_Type; when time_triggered_communication_dependency => time_triggered_communication_sink : Generic_Task_Ptr; time_triggered_communication_source : Generic_Task_Ptr; time_triggered_timing_property : Time_Triggered_Communication_Timing_Property_Type; when resource_dependency => resource_dependency_resource : Generic_Resource_Ptr; resource_dependency_task : Generic_Task_Ptr; when remote_procedure_call_dependency => remote_procedure_call_client : Generic_Task_Ptr; remote_procedure_call_server : Generic_Task_Ptr; when black_board_Buffer_dependency => black_board_dependent_task : Generic_Task_Ptr; black_board_orientation : Orientation_Dependency_Type; black_board_dependency_object : Buffer_Ptr; end case; end record; type Dependency_Ptr is access all Dependency; procedure Initialize(obj : out Dependency_Ptr); procedure Put(obj : in Dependency_Ptr); function Copy(obj : in Dependency_Ptr) return Dependency_Ptr; function Copy(obj : in Dependency) return Dependency_Ptr; function XML_String(obj : in Dependency) return Unbounded_String; function XML_String(obj : in Dependency_Ptr) return Unbounded_String; procedure Free is new Unchecked_Deallocation (Dependency, Dependency_Ptr); function XML_Ref_String(obj : in Dependency) return Unbounded_String; function XML_Ref_String(obj : in Dependency_Ptr) return Unbounded_String; End Dependencies;