------------------------------------------------------------------------------ ------------------------------------------------------------------------------ -- 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 Generic_Graph; use Generic_Graph; with Tasks; use Tasks; with Buffers; use Buffers; with Messages; use Messages; with Dependencies; use Dependencies; with Resources; use Resources; with Processors; use Processors; 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 DP_Graph is type Task_Node; type Task_Node_Ptr is access all Task_Node'Class; type Time_Triggered_Communication_Edge; type Time_Triggered_Communication_Edge_Ptr is access all Time_Triggered_Communication_Edge'Class; type Resource_Edge; type Resource_Edge_Ptr is access all Resource_Edge'Class; type Precedence_Edge; type Precedence_Edge_Ptr is access all Precedence_Edge'Class; type Communication_Edge; type Communication_Edge_Ptr is access all Communication_Edge'Class; type Buffer_Edge; type Buffer_Edge_Ptr is access all Buffer_Edge'Class; -- --------= Task_Node =-------- type Task_Node is new Generic_Node with record TaskRef : Generic_Task_Ptr; Kind : Tasks_Type; Proc : Generic_Processor_Ptr; end record; procedure Initialize(obj : in out Task_Node); procedure Put(obj : in Task_Node); procedure Put(obj : in Task_Node_Ptr); procedure Put_Name(obj : in Task_Node_Ptr); procedure Build_Attributes_XML_String(obj : in Task_Node; result : in out Unbounded_String); function XML_String(obj : in Task_Node) return Unbounded_String; function XML_String(obj : in Task_Node_Ptr) return Unbounded_String; function XML_Ref_String(obj : in Task_Node) return Unbounded_String; function XML_Ref_String(obj : in Task_Node_Ptr) return Unbounded_String; function Copy(obj : in Task_Node_Ptr) return Task_Node_Ptr; function Copy(obj : in Task_Node) return Task_Node_Ptr; function type_of(obj : in Task_Node) return unbounded_string_list; function type_of(obj : in Task_Node_Ptr) return unbounded_string_list; procedure Free is new Unchecked_Deallocation (Task_Node'Class, Task_Node_Ptr); -- --------= Time_Triggered_Communication_Edge =-------- type Time_Triggered_Communication_Edge is new Generic_Edge with record Timing_Property : Time_Triggered_Communication_Timing_Property_Type; Time_Triggered_Communication_Sink : Task_Node_Ptr; Time_Triggered_Communication_Source : Task_Node_Ptr; end record; procedure Initialize(obj : in out Time_Triggered_Communication_Edge); procedure Put(obj : in Time_Triggered_Communication_Edge); procedure Put(obj : in Time_Triggered_Communication_Edge_Ptr); procedure Put_Name(obj : in Time_Triggered_Communication_Edge_Ptr); procedure Build_Attributes_XML_String(obj : in Time_Triggered_Communication_Edge; result : in out Unbounded_String); function XML_String(obj : in Time_Triggered_Communication_Edge) return Unbounded_String; function XML_String(obj : in Time_Triggered_Communication_Edge_Ptr) return Unbounded_String; function XML_Ref_String(obj : in Time_Triggered_Communication_Edge) return Unbounded_String; function XML_Ref_String(obj : in Time_Triggered_Communication_Edge_Ptr) return Unbounded_String; function Copy(obj : in Time_Triggered_Communication_Edge_Ptr) return Time_Triggered_Communication_Edge_Ptr; function Copy(obj : in Time_Triggered_Communication_Edge) return Time_Triggered_Communication_Edge_Ptr; function type_of(obj : in Time_Triggered_Communication_Edge) return unbounded_string_list; function type_of(obj : in Time_Triggered_Communication_Edge_Ptr) return unbounded_string_list; procedure Free is new Unchecked_Deallocation (Time_Triggered_Communication_Edge'Class, Time_Triggered_Communication_Edge_Ptr); -- --------= Resource_Edge =-------- type Resource_Edge is new Generic_Edge with record Resource_Dependency_Resource : Generic_Resource_Ptr; end record; procedure Initialize(obj : in out Resource_Edge); procedure Put(obj : in Resource_Edge); procedure Put(obj : in Resource_Edge_Ptr); procedure Put_Name(obj : in Resource_Edge_Ptr); procedure Build_Attributes_XML_String(obj : in Resource_Edge; result : in out Unbounded_String); function XML_String(obj : in Resource_Edge) return Unbounded_String; function XML_String(obj : in Resource_Edge_Ptr) return Unbounded_String; function XML_Ref_String(obj : in Resource_Edge) return Unbounded_String; function XML_Ref_String(obj : in Resource_Edge_Ptr) return Unbounded_String; function Copy(obj : in Resource_Edge_Ptr) return Resource_Edge_Ptr; function Copy(obj : in Resource_Edge) return Resource_Edge_Ptr; function type_of(obj : in Resource_Edge) return unbounded_string_list; function type_of(obj : in Resource_Edge_Ptr) return unbounded_string_list; procedure Free is new Unchecked_Deallocation (Resource_Edge'Class, Resource_Edge_Ptr); -- --------= Precedence_Edge =-------- type Precedence_Edge is new Generic_Edge with null record; procedure Initialize(obj : in out Precedence_Edge); procedure Put(obj : in Precedence_Edge); procedure Put(obj : in Precedence_Edge_Ptr); procedure Put_Name(obj : in Precedence_Edge_Ptr); procedure Build_Attributes_XML_String(obj : in Precedence_Edge; result : in out Unbounded_String); function XML_String(obj : in Precedence_Edge) return Unbounded_String; function XML_String(obj : in Precedence_Edge_Ptr) return Unbounded_String; function XML_Ref_String(obj : in Precedence_Edge) return Unbounded_String; function XML_Ref_String(obj : in Precedence_Edge_Ptr) return Unbounded_String; function Copy(obj : in Precedence_Edge_Ptr) return Precedence_Edge_Ptr; function Copy(obj : in Precedence_Edge) return Precedence_Edge_Ptr; function type_of(obj : in Precedence_Edge) return unbounded_string_list; function type_of(obj : in Precedence_Edge_Ptr) return unbounded_string_list; procedure Free is new Unchecked_Deallocation (Precedence_Edge'Class, Precedence_Edge_Ptr); -- --------= Communication_Edge =-------- type Communication_Edge is new Generic_Edge with record Communication_Dependency_Object : Generic_Message_Ptr; end record; procedure Initialize(obj : in out Communication_Edge); procedure Put(obj : in Communication_Edge); procedure Put(obj : in Communication_Edge_Ptr); procedure Put_Name(obj : in Communication_Edge_Ptr); procedure Build_Attributes_XML_String(obj : in Communication_Edge; result : in out Unbounded_String); function XML_String(obj : in Communication_Edge) return Unbounded_String; function XML_String(obj : in Communication_Edge_Ptr) return Unbounded_String; function XML_Ref_String(obj : in Communication_Edge) return Unbounded_String; function XML_Ref_String(obj : in Communication_Edge_Ptr) return Unbounded_String; function Copy(obj : in Communication_Edge_Ptr) return Communication_Edge_Ptr; function Copy(obj : in Communication_Edge) return Communication_Edge_Ptr; function type_of(obj : in Communication_Edge) return unbounded_string_list; function type_of(obj : in Communication_Edge_Ptr) return unbounded_string_list; procedure Free is new Unchecked_Deallocation (Communication_Edge'Class, Communication_Edge_Ptr); -- --------= Buffer_Edge =-------- type Buffer_Edge is new Generic_Edge with record Buffer_Dependency_Object : Buffer_Ptr; end record; procedure Initialize(obj : in out Buffer_Edge); procedure Put(obj : in Buffer_Edge); procedure Put(obj : in Buffer_Edge_Ptr); procedure Put_Name(obj : in Buffer_Edge_Ptr); procedure Build_Attributes_XML_String(obj : in Buffer_Edge; result : in out Unbounded_String); function XML_String(obj : in Buffer_Edge) return Unbounded_String; function XML_String(obj : in Buffer_Edge_Ptr) return Unbounded_String; function XML_Ref_String(obj : in Buffer_Edge) return Unbounded_String; function XML_Ref_String(obj : in Buffer_Edge_Ptr) return Unbounded_String; function Copy(obj : in Buffer_Edge_Ptr) return Buffer_Edge_Ptr; function Copy(obj : in Buffer_Edge) return Buffer_Edge_Ptr; function type_of(obj : in Buffer_Edge) return unbounded_string_list; function type_of(obj : in Buffer_Edge_Ptr) return unbounded_string_list; procedure Free is new Unchecked_Deallocation (Buffer_Edge'Class, Buffer_Edge_Ptr); End DP_Graph;