------------------------------------------------------------------------------ ------------------------------------------------------------------------------ -- 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-2023, Frank Singhoff, Alain Plantec, Jerome Legrand, -- Hai Nam Tran, Stephane Rubini -- -- The Cheddar project was started in 2002 by -- Frank Singhoff, Lab-STICC UMR 6285, 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 README.md -- -- 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 -- ------------------------------------------------------------------------------ -- Last update : -- $Rev: 4202 $ -- $Date: 2022-08-26 19:33:53 +0200 (ven., 26 août 2022) $ -- $Author: singhoff $ ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ -- this package should be automatically generated. -- -- -- we provide functions to converted the attributes of entity, in order -- to have a lisible presentation on Man Machine Interface: this include -- the label written with underscore, with lowercas and/or uppercase characters -- we consider by example the entity Scheduling_Parameters of the meta model. -- the attributes scheduler_type and preemptive_type have a list of parameters -- with undescores -- In accordance with meta model, scheduler_type may be Compiled_User_Defined_Protocol, -- Automata_User_Defined_Protocol, Pipeline_User_Defined_Protocol, .... -- In Man Machine Interface, scheduler_type should be Compiled User Defined Protocol, -- Automata User Defined Protocol, Pipeline User Defined Protocol, .... -- This package provide two functions, to_label and to_type to manage this kind of attributes with Text_IO; use Text_IO; package body graphical_editor.convert_text is function to_label (my_type : all_enumeration_type_ptr) return Unbounded_String is label : Unbounded_String; begin case my_type.enum_type is when preemptives => case my_type.preemptives_value is when preemptive => label := To_Unbounded_String ("Preemptive"); when not_preemptive => label := To_Unbounded_String ("Not Preemptive"); end case; return label; when cache_coherence_protocol_enum => case my_type.cache_coherence_protocol_value is when shared_cache_protocol => label := To_Unbounded_String ("Shared Cache Protocol"); when private_cache_protocol => label := To_Unbounded_String ("Private Cache Protocol"); when private_invalid_cache_protocol => label := To_Unbounded_String ("Private Invalid Cache Protocol"); when private_msi_cache_protocol => label := To_Unbounded_String ("Private MSI Cache Protocol"); when private_mesi_cache_protocol => label := To_Unbounded_String ("Private MESI Cache Protocol"); end case; return label; when cache_replacement_policy_enum => case my_type.cache_replacement_policy_value is when lru => label := To_Unbounded_String ("LRU"); when lrr => label := To_Unbounded_String ("LRR"); when fifo => label := To_Unbounded_String ("FIFO"); when random => label := To_Unbounded_String ("Random"); end case; return label; when schedulers => case my_type.schedulers_value is when rate_monotonic_protocol => label := To_Unbounded_String ("Rate Monotonic Protocol"); when deadline_monotonic_protocol => label := To_Unbounded_String ("Deadline Monotonic Protocol"); when posix_1003_highest_priority_first_protocol => label := To_Unbounded_String ("Posix 1003 Highest Priority First Protocol"); when earliest_deadline_first_energy_to_time_protocol => label := To_Unbounded_String ("Earliest Deadline First Energy To Time Protocol"); when earliest_deadline_first_energy_harvesting_protocol => label := To_Unbounded_String ("Earliest Deadline First Energy Harvesting Protocol"); when earliest_deadline_first_protocol => label := To_Unbounded_String ("Earliest Deadline First Protocol"); when least_laxity_first_protocol => label := To_Unbounded_String ("Least Laxity First Protocol"); when least_runtime_laxity_first_protocol => label := To_Unbounded_String ("Least Runtime Laxity First Protocol"); when compiled_user_defined_protocol => label := To_Unbounded_String ("Compiled User Defined Protocol"); when automata_user_defined_protocol => label := To_Unbounded_String ("Automata User Defined Protocol"); when pipeline_user_defined_protocol => label := To_Unbounded_String ("Pipeline User Defined Protocol"); when user_defined_protocol => label := To_Unbounded_String ("User Defined Protocol"); when round_robin_protocol => label := To_Unbounded_String ("Round Robin Protocol"); when time_sharing_based_on_wait_time_protocol => label := To_Unbounded_String ("Time Sharing Based On Wait Time Protocol"); when d_over_protocol => label := To_Unbounded_String ("D Over Protocol"); when maximum_urgency_first_based_on_laxity_protocol => label := To_Unbounded_String ("Maximum Urgency First Based On Laxity Protocol"); when maximum_urgency_first_based_on_deadline_protocol => label := To_Unbounded_String ("Maximum Urgency First Based On Deadline Protocol"); when time_sharing_based_on_cpu_usage_protocol => label := To_Unbounded_String ("Time Sharing Based On Cpu Usage Protocol"); when no_scheduling_protocol => label := To_Unbounded_String ("No Scheduling Protocol"); when mixed_criticality_smc_protocol => label := To_Unbounded_String ("Mixed Criticality SMC"); when mixed_criticality_amc_protocol => label := To_Unbounded_String ("Mixed Criticality AMC"); when mixed_criticality_anytime_amc_protocol => label := To_Unbounded_String ("Mixed Criticality Anytime AMC"); when mixed_criticality_recurrent_anytime_amc_protocol => label := To_Unbounded_String ("Mixed Criticality Recurrent Anytime AMC"); when mixed_criticality_edf_vd_protocol => label := To_Unbounded_String ("Mixed Criticality EDF-VD"); when hierarchical_cyclic_protocol => label := To_Unbounded_String ("Hierarchical Cyclic Protocol"); when hierarchical_round_robin_protocol => label := To_Unbounded_String ("Hierarchical Round Robin Protocol"); when hierarchical_fixed_priority_protocol => label := To_Unbounded_String ("Hierarchical Fixed Priority Protocol"); when hierarchical_polling_aperiodic_server_protocol => label := To_Unbounded_String ("Hierarchical Polling Aperiodic Server Protocol"); when hierarchical_priority_exchange_aperiodic_server_protocol => label := To_Unbounded_String ("Hierarchical Priority Exchange Aperiodic Server Protocol"); when hierarchical_sporadic_aperiodic_server_protocol => label := To_Unbounded_String ("Hierarchical Sporadic Aperiodic Server Protocol"); when hierarchical_deferrable_aperiodic_server_protocol => label := To_Unbounded_String ("Hierarchical Deferrable Aperiodic Server Protocol"); when proportionate_fair_pf_protocol => label := To_Unbounded_String ("Proportionate Fair PF Protocol"); when proportionate_fair_pd_protocol => label := To_Unbounded_String ("Proportionate Fair PD Protocol"); when proportionate_fair_pd2_protocol => label := To_Unbounded_String ("Proportionate Fair PD2 Protocol"); when hierarchical_offline_protocol => label := To_Unbounded_String ("Hierarchical Offline Protocol"); when reduction_to_uniprocessor_protocol => label := To_Unbounded_String ("Reduction To Uniprocessor Protocol"); when earliest_deadline_zero_laxity_protocol => label := To_Unbounded_String ("Earliest Deadline Zero Laxity Protocol"); when largest_local_remaining_execution_first_protocol => label := To_Unbounded_String ("Largest Local Remaining Execution First Protocol"); when dag_highest_level_first_estimated_times_protocol => label := To_Unbounded_String ("DAG Highest Level First Estimated Times Protocol"); end case; return label; when processors_enum => case my_type.processors_value is when monocore_type => label := To_Unbounded_String ("Monocore Type"); when identical_multicores_type => label := To_Unbounded_String ("Identical Multicores Type"); when uniform_multicores_type => label := To_Unbounded_String ("Uniform Multicores Type"); when unrelated_multicores_type => label := To_Unbounded_String ("Unrelated Multicores Type"); end case; return label; when queueings => case my_type.queueings_value is when qs_pp1 => label := To_Unbounded_String ("Qs Pp1"); when qs_mm1 => label := To_Unbounded_String ("Qs Mm1"); when qs_md1 => label := To_Unbounded_String ("Qs Md1"); when qs_mp1 => label := To_Unbounded_String ("Qs Mp1"); when qs_mg1 => label := To_Unbounded_String ("Qs Mg1"); when qs_mms => label := To_Unbounded_String ("Qs Mms"); when qs_mds => label := To_Unbounded_String ("Qs Mds"); when qs_mps => label := To_Unbounded_String ("Qs Mps"); when qs_mgs => label := To_Unbounded_String ("Qs Mgs"); when qs_mm1n => label := To_Unbounded_String ("Qs Mm1n"); when qs_md1n => label := To_Unbounded_String ("Qs Md1n"); when qs_mp1n => label := To_Unbounded_String ("Qs Mp1n"); when qs_mg1n => label := To_Unbounded_String ("Qs Mg1n"); when qs_mmsn => label := To_Unbounded_String ("Qs Mmsn"); when qs_mdsn => label := To_Unbounded_String ("Qs Mdsn"); when qs_mpsn => label := To_Unbounded_String ("Qs Mpsn"); when qs_mgsn => label := To_Unbounded_String ("Qs Mgsn"); end case; return label; when roles => case my_type.roles_value is when queuing_producer => label := To_Unbounded_String ("Queuing Producer"); when queuing_consumer => label := To_Unbounded_String ("Queuing Consumer"); when sampling_writer => label := To_Unbounded_String ("Sampling Writer"); when sampling_reader => label := To_Unbounded_String ("Sampling Reader"); when ucsdf_producer => label := To_Unbounded_String ("UCSDF Producer"); when ucsdf_consumer => label := To_Unbounded_String ("UCSDF Consumer"); end case; return label; when trigerres => case my_type.trigerres_value is when sampled_timing => label := To_Unbounded_String ("Sampled Timing"); when immediate_timing => label := To_Unbounded_String ("Immediate Timing"); when delayed_timing => label := To_Unbounded_String ("Delayed Timing"); end case; return label; when dependencies_enum => case my_type.dependencies_value is when remote_procedure_call_dependency => label := To_Unbounded_String ("Remote Procedure Call Dependency"); when precedence_dependency => label := To_Unbounded_String ("Precedence Dependency"); when queueing_buffer_dependency => label := To_Unbounded_String ("Queueing Buffer Dependency"); when asynchronous_communication_dependency => label := To_Unbounded_String ("Asynchronous Communication Dependency"); when time_triggered_communication_dependency => label := To_Unbounded_String ("Time Triggered Communication Dependency"); when resource_dependency => label := To_Unbounded_String ("Resource Dependency"); when black_board_buffer_dependency => label := To_Unbounded_String ("Black Board Buffer Dependency"); end case; return label; when message_protocol => case my_type.message_protocol_value is when first_message => label := To_Unbounded_String ("First Message"); when all_messages => label := To_Unbounded_String ("All Messages"); end case; return label; when orientations => case my_type.orientations_value is when from_object_to_task => label := To_Unbounded_String ("From Object To Task"); when from_task_to_object => label := To_Unbounded_String ("From Task To Object"); end case; return label; when messages_enum => case my_type.messages_value is when periodic_type => label := To_Unbounded_String ("Periodic message"); when aperiodic_type => label := To_Unbounded_String ("Aperiodic message"); end case; return label; when migrations => case my_type.migrations_value is when no_migration_type => label := To_Unbounded_String ("No Migration Type"); when job_level_migration_type => label := To_Unbounded_String ("Job Level Migration Type"); when time_unit_migration_type => label := To_Unbounded_String ("Time Unit Migration Type"); end case; return label; when multiprocessors_type_enum => case my_type.multiprocessors_type_value is when identical => label := To_Unbounded_String ("Identical"); when homogeneous => label := To_Unbounded_String ("Homogeneous"); when heterogeneous => label := To_Unbounded_String ("Heterogeneous"); end case; return label; when networks_delay_enum => case my_type.networks_delay_value is when bounded_delay => label := To_Unbounded_String ("Bounded Delay"); when jitter_delay => label := To_Unbounded_String ("Jitter Delay"); when parametric_delay => label := To_Unbounded_String ("Parametric Delay"); end case; return label; when networks_architecture_enum => case my_type.networks_architecture_value is when shared_bus => label := To_Unbounded_String ("Shared_Bus"); when star => label := To_Unbounded_String ("Star"); when point_to_point_link => label := To_Unbounded_String ("Point To Point Link"); when crossbar => label := To_Unbounded_String ("Crossbar"); when noc => label := To_Unbounded_String ("NoC"); when spacewire => label := To_Unbounded_String ("Spacewire"); end case; return label; when switching_type_enum => case my_type.switching_type_value is when virtual_cut_through => label := To_Unbounded_String ("Virtual Cut Through"); when wormwole => label := To_Unbounded_String ("Wormwole"); when store_and_forward => label := To_Unbounded_String ("Store And Forward"); end case; return label; when routing_enum => case my_type.routing_value is when programmable_routing => label := To_Unbounded_String ("Programmable Routing"); when xy => label := To_Unbounded_String ("XY"); when yx => label := To_Unbounded_String ("YX"); when xyx => label := To_Unbounded_String ("XYX"); end case; return label; when task_group_types_enum => case my_type.task_group_types_value is when transaction_type => label := To_Unbounded_String ("Transaction"); when multiframe_type => label := To_Unbounded_String ("Multiframe"); end case; return label; when protocols => case my_type.protocols_value is when no_protocol => label := To_Unbounded_String ("No Protocol"); when pool_based_priority_ceiling_protocol => label := To_Unbounded_String ("Pool based Priority Ceiling Protocol"); when priority_ceiling_protocol => label := To_Unbounded_String ("Priority Ceiling Protocol"); when priority_inheritance_protocol => label := To_Unbounded_String ("Priority Inheritance Protocol"); when immediate_priority_ceiling_protocol => label := To_Unbounded_String ("Immediate Priority Ceiling Protocol"); end case; return label; when assignments => case my_type.assignments_value is when automatic_assignment => label := To_Unbounded_String ("Automatic Assignment"); when manual_assignment => label := To_Unbounded_String ("Manual Assignment"); end case; return label; when predictables => case my_type.predictables_value is when True or True => label := To_Unbounded_String ("True"); when False or False => label := To_Unbounded_String ("False"); end case; return label; when policies_enum => case my_type.policies_value is when sched_fifo => label := To_Unbounded_String ("Sched Fifo"); when sched_rr => label := To_Unbounded_String ("Sched Rr"); when sched_others => label := To_Unbounded_String ("Sched Others"); end case; return label; when tasks_enum => case my_type.tasks_value is when periodic_type => label := To_Unbounded_String ("Periodic"); when aperiodic_type => label := To_Unbounded_String ("Aperiodic"); when timed_type => label := To_Unbounded_String ("Timed"); when sporadic_type => label := To_Unbounded_String ("Sporadic"); when poisson_type => label := To_Unbounded_String ("Poisson"); when parametric_type => label := To_Unbounded_String ("Parametric"); when periodic_inner_periodic_type => label := To_Unbounded_String ("Periodic inner periodic"); when sporadic_inner_periodic_type => label := To_Unbounded_String ("Sporadic inner periodic"); when scheduling_task_type => label := To_Unbounded_String ("Scheduling"); when frame_task_type => label := To_Unbounded_String ("Multi Frame"); end case; return label; when parameters_enum => case my_type.params_value is when boolean_parameter => label := To_Unbounded_String ("Boolean"); when integer_parameter => label := To_Unbounded_String ("Integer"); when double_parameter => label := To_Unbounded_String ("Double"); when string_parameter => label := To_Unbounded_String ("String"); end case; return label; when crpd_computation_approach_enum => case my_type.crpd_computation_approach_value is when no_crpd => label := To_Unbounded_String ("No CRPD"); when ecb_only => label := To_Unbounded_String ("ECB Only"); when ecb_union_multiset => label := To_Unbounded_String ("ECB Union Multiset"); when ucb_union_multiset => label := To_Unbounded_String ("UCB Union Multiset"); when combined_multiset => label := To_Unbounded_String ("Combined Multiset"); end case; return label; when memory_interference_computation_approach_enum => case my_type.memory_interference_computation_approach_value is when no_memory_interference => label := To_Unbounded_String ("No Memory Interference"); when dram_single_arbiter => label := To_Unbounded_String ("DRAM Single Arbiter"); when kalray_multi_arbiter => label := To_Unbounded_String ("Kalray Multi Arbiter"); end case; return label; when resources_synchronization_enum => case my_type.resource_synchronization_value is when mutex => label := To_Unbounded_String ("Mutex"); when post => label := To_Unbounded_String ("Post"); when wait => label := To_Unbounded_String ("Wait"); end case; return label; end case; end to_label; function to_type (my_gvalue : gvalue) return all_enumeration_type_ptr is begin return to_type (To_Unbounded_String (Get_String (my_gvalue))); end to_type; function to_type (my_label : Unbounded_String) return all_enumeration_type_ptr is my_type : all_enumeration_type_ptr; begin if my_label = To_Unbounded_String ("Shared Cache Protocol") then my_type := new t_all_enumeration_type' (enum_type => cache_coherence_protocol_enum, cache_coherence_protocol_value => shared_cache_protocol); end if; if my_label = To_Unbounded_String ("Private Cache Protocol") then my_type := new t_all_enumeration_type' (enum_type => cache_coherence_protocol_enum, cache_coherence_protocol_value => private_cache_protocol); end if; if my_label = To_Unbounded_String ("Private Invalid Cache Protocol") then my_type := new t_all_enumeration_type' (enum_type => cache_coherence_protocol_enum, cache_coherence_protocol_value => private_invalid_cache_protocol); end if; if my_label = To_Unbounded_String ("Private MSI Cache Protocol") then my_type := new t_all_enumeration_type' (enum_type => cache_coherence_protocol_enum, cache_coherence_protocol_value => private_msi_cache_protocol); end if; if my_label = To_Unbounded_String ("Private MESI Cache Protocol") then my_type := new t_all_enumeration_type' (enum_type => cache_coherence_protocol_enum, cache_coherence_protocol_value => private_mesi_cache_protocol); end if; if my_label = To_Unbounded_String ("Random") then my_type := new t_all_enumeration_type' (enum_type => cache_replacement_policy_enum, cache_replacement_policy_value => random); end if; if my_label = To_Unbounded_String ("LRU") then my_type := new t_all_enumeration_type' (enum_type => cache_replacement_policy_enum, cache_replacement_policy_value => lru); end if; if my_label = To_Unbounded_String ("LRR") then my_type := new t_all_enumeration_type' (enum_type => cache_replacement_policy_enum, cache_replacement_policy_value => lrr); end if; if my_label = To_Unbounded_String ("FIFO") then my_type := new t_all_enumeration_type' (enum_type => cache_replacement_policy_enum, cache_replacement_policy_value => fifo); end if; if my_label = To_Unbounded_String ("Preemptive") then my_type := new t_all_enumeration_type' (enum_type => preemptives, preemptives_value => preemptive); end if; if my_label = To_Unbounded_String ("Not Preemptive") then my_type := new t_all_enumeration_type' (enum_type => preemptives, preemptives_value => not_preemptive); end if; if my_label = To_Unbounded_String ("Compiled User Defined Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => compiled_user_defined_protocol); end if; if my_label = To_Unbounded_String ("Automata User Defined Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => automata_user_defined_protocol); end if; if my_label = To_Unbounded_String ("Pipeline User Defined Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => pipeline_user_defined_protocol); end if; if my_label = To_Unbounded_String ("User Defined Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => user_defined_protocol); end if; if my_label = To_Unbounded_String ("Earliest Deadline First Energy To Time Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => earliest_deadline_first_energy_to_time_protocol); end if; if my_label = To_Unbounded_String ("Earliest Deadline First Energy Harvesting Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => earliest_deadline_first_energy_harvesting_protocol); end if; if my_label = To_Unbounded_String ("Earliest Deadline First Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => earliest_deadline_first_protocol); end if; if my_label = To_Unbounded_String ("Least Laxity First Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => least_laxity_first_protocol); end if; if my_label = To_Unbounded_String ("Least Runtime Laxity First Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => least_runtime_laxity_first_protocol); end if; if my_label = To_Unbounded_String ("Rate Monotonic Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => rate_monotonic_protocol); end if; if my_label = To_Unbounded_String ("Mixed Criticality AMC") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => mixed_criticality_amc_protocol); end if; if my_label = To_Unbounded_String ("Mixed Criticality SMC") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => mixed_criticality_smc_protocol); end if; if my_label = To_Unbounded_String ("Mixed Criticality Anytime AMC") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => mixed_criticality_anytime_amc_protocol); end if; if my_label = To_Unbounded_String ("Mixed Criticality Recurrent Anytime AMC") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => mixed_criticality_Recurrent_anytime_amc_protocol); end if; if my_label = To_Unbounded_String ("Mixed Criticality EDF-VD") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => mixed_criticality_edf_vd_protocol); end if; if my_label = To_Unbounded_String ("Reduction To Uniprocessor Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => reduction_to_uniprocessor_protocol); end if; if my_label = To_Unbounded_String ("Earliest Deadline Zero Laxity Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => earliest_deadline_zero_laxity_protocol); end if; if my_label = To_Unbounded_String ("Largest Local Remaining Execution First Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => largest_local_remaining_execution_first_protocol); end if; if my_label = To_Unbounded_String ("DAG Highest Level First Estimated Times Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => dag_highest_level_first_estimated_times_protocol); end if; if my_label = To_Unbounded_String ("Deadline Monotonic Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => deadline_monotonic_protocol); end if; if my_label = To_Unbounded_String ("Round Robin Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => round_robin_protocol); end if; if my_label = To_Unbounded_String ("Time Sharing Based On Wait Time Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => time_sharing_based_on_wait_time_protocol); end if; if my_label = To_Unbounded_String ("Posix 1003 Highest Priority First Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => posix_1003_highest_priority_first_protocol); end if; if my_label = To_Unbounded_String ("D Over Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => d_over_protocol); end if; if my_label = To_Unbounded_String ("Maximum Urgency First Based On Laxity Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => maximum_urgency_first_based_on_laxity_protocol); end if; if my_label = To_Unbounded_String ("Maximum Urgency First Based On Deadline Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => maximum_urgency_first_based_on_deadline_protocol); end if; if my_label = To_Unbounded_String ("Time Sharing Based On Cpu Usage Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => time_sharing_based_on_cpu_usage_protocol); end if; if my_label = To_Unbounded_String ("No Scheduling Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => no_scheduling_protocol); end if; if my_label = To_Unbounded_String ("Hierarchical Cyclic Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => hierarchical_cyclic_protocol); end if; if my_label = To_Unbounded_String ("Hierarchical Round Robin Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => hierarchical_round_robin_protocol); end if; if my_label = To_Unbounded_String ("Hierarchical Fixed Priority Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => hierarchical_fixed_priority_protocol); end if; if my_label = To_Unbounded_String ("Hierarchical Polling Aperiodic Server Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => hierarchical_polling_aperiodic_server_protocol); end if; if my_label = To_Unbounded_String ("Hierarchical Priority Exchange Aperiodic Server Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => hierarchical_priority_exchange_aperiodic_server_protocol); end if; if my_label = To_Unbounded_String ("Hierarchical Sporadic Aperiodic Server Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => hierarchical_sporadic_aperiodic_server_protocol); end if; if my_label = To_Unbounded_String ("Hierarchical Deferrable Aperiodic Server Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => hierarchical_deferrable_aperiodic_server_protocol); end if; if my_label = To_Unbounded_String ("Hierarchical Offline Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => hierarchical_offline_protocol); end if; if my_label = To_Unbounded_String ("Proportionate Fair PF Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => proportionate_fair_pf_protocol); end if; if my_label = To_Unbounded_String ("Proportionate Fair PD Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => proportionate_fair_pd_protocol); end if; if my_label = To_Unbounded_String ("Proportionate Fair PD2 Protocol") then my_type := new t_all_enumeration_type' (enum_type => schedulers, schedulers_value => proportionate_fair_pd2_protocol); end if; if my_label = To_Unbounded_String ("Monocore Type") then my_type := new t_all_enumeration_type' (enum_type => processors_enum, processors_value => monocore_type); end if; if my_label = To_Unbounded_String ("Identical Multicores Type") then my_type := new t_all_enumeration_type' (enum_type => processors_enum, processors_value => identical_multicores_type); end if; if my_label = To_Unbounded_String ("Uniform Multicores Type") then my_type := new t_all_enumeration_type' (enum_type => processors_enum, processors_value => uniform_multicores_type); end if; if my_label = To_Unbounded_String ("Unrelated Multicores Type") then my_type := new t_all_enumeration_type' (enum_type => processors_enum, processors_value => unrelated_multicores_type); end if; if my_label = To_Unbounded_String ("Qs Pp1") then my_type := new t_all_enumeration_type' (enum_type => queueings, queueings_value => qs_pp1); end if; if my_label = To_Unbounded_String ("Qs Mm1") then my_type := new t_all_enumeration_type' (enum_type => queueings, queueings_value => qs_mm1); end if; if my_label = To_Unbounded_String ("Qs Md1") then my_type := new t_all_enumeration_type' (enum_type => queueings, queueings_value => qs_md1); end if; if my_label = To_Unbounded_String ("Qs Mp1") then my_type := new t_all_enumeration_type' (enum_type => queueings, queueings_value => qs_mp1); end if; if my_label = To_Unbounded_String ("Qs Mg1") then my_type := new t_all_enumeration_type' (enum_type => queueings, queueings_value => qs_mg1); end if; if my_label = To_Unbounded_String ("Qs Mms") then my_type := new t_all_enumeration_type' (enum_type => queueings, queueings_value => qs_mms); end if; if my_label = To_Unbounded_String ("Qs Mds") then my_type := new t_all_enumeration_type' (enum_type => queueings, queueings_value => qs_mds); end if; if my_label = To_Unbounded_String ("Qs Mps") then my_type := new t_all_enumeration_type' (enum_type => queueings, queueings_value => qs_mps); end if; if my_label = To_Unbounded_String ("Qs Mgs") then my_type := new t_all_enumeration_type' (enum_type => queueings, queueings_value => qs_mgs); end if; if my_label = To_Unbounded_String ("Qs Mm1n") then my_type := new t_all_enumeration_type' (enum_type => queueings, queueings_value => qs_mm1n); end if; if my_label = To_Unbounded_String ("Qs Md1n") then my_type := new t_all_enumeration_type' (enum_type => queueings, queueings_value => qs_md1n); end if; if my_label = To_Unbounded_String ("Qs Mp1n") then my_type := new t_all_enumeration_type' (enum_type => queueings, queueings_value => qs_mp1n); end if; if my_label = To_Unbounded_String ("Qs Mg1n") then my_type := new t_all_enumeration_type' (enum_type => queueings, queueings_value => qs_mg1n); end if; if my_label = To_Unbounded_String ("Qs Mmsn") then my_type := new t_all_enumeration_type' (enum_type => queueings, queueings_value => qs_mmsn); end if; if my_label = To_Unbounded_String ("Qs Mdsn") then my_type := new t_all_enumeration_type' (enum_type => queueings, queueings_value => qs_mdsn); end if; if my_label = To_Unbounded_String ("Qs Mpsn") then my_type := new t_all_enumeration_type' (enum_type => queueings, queueings_value => qs_mpsn); end if; if my_label = To_Unbounded_String ("Qs Mgsn") then my_type := new t_all_enumeration_type' (enum_type => queueings, queueings_value => qs_mgsn); end if; if my_label = To_Unbounded_String ("Queuing Producer") then my_type := new t_all_enumeration_type' (enum_type => roles, roles_value => queuing_producer); end if; if my_label = To_Unbounded_String ("Queuing Consumer") then my_type := new t_all_enumeration_type' (enum_type => roles, roles_value => queuing_consumer); end if; if my_label = To_Unbounded_String ("Sampling Writer") then my_type := new t_all_enumeration_type' (enum_type => roles, roles_value => sampling_writer); end if; if my_label = To_Unbounded_String ("Sampling Reader") then my_type := new t_all_enumeration_type' (enum_type => roles, roles_value => sampling_reader); end if; if my_label = To_Unbounded_String ("Sampled Timing") then my_type := new t_all_enumeration_type' (enum_type => trigerres, trigerres_value => sampled_timing); end if; if my_label = To_Unbounded_String ("Immediate Timing") then my_type := new t_all_enumeration_type' (enum_type => trigerres, trigerres_value => immediate_timing); end if; if my_label = To_Unbounded_String ("Delayed Timing") then my_type := new t_all_enumeration_type' (enum_type => trigerres, trigerres_value => delayed_timing); end if; if my_label = To_Unbounded_String ("Precedence Dependency") then my_type := new t_all_enumeration_type' (enum_type => dependencies_enum, dependencies_value => precedence_dependency); end if; if my_label = To_Unbounded_String ("Queueing Buffer Dependency") then my_type := new t_all_enumeration_type' (enum_type => dependencies_enum, dependencies_value => queueing_buffer_dependency); end if; if my_label = To_Unbounded_String ("Asynchronous Communication Dependency") then my_type := new t_all_enumeration_type' (enum_type => dependencies_enum, dependencies_value => asynchronous_communication_dependency); end if; if my_label = To_Unbounded_String ("Time Triggered Communication Dependency") then my_type := new t_all_enumeration_type' (enum_type => dependencies_enum, dependencies_value => time_triggered_communication_dependency); end if; if my_label = To_Unbounded_String ("Resource Dependency") then my_type := new t_all_enumeration_type' (enum_type => dependencies_enum, dependencies_value => resource_dependency); end if; if my_label = To_Unbounded_String ("Black Board Buffer Dependency") then my_type := new t_all_enumeration_type' (enum_type => dependencies_enum, dependencies_value => black_board_buffer_dependency); end if; if my_label = To_Unbounded_String ("First Message") then my_type := new t_all_enumeration_type' (enum_type => message_protocol, message_protocol_value => first_message); end if; if my_label = To_Unbounded_String ("All Messages") then my_type := new t_all_enumeration_type' (enum_type => message_protocol, message_protocol_value => all_messages); end if; if my_label = To_Unbounded_String ("From Object To Task") then my_type := new t_all_enumeration_type' (enum_type => orientations, orientations_value => from_object_to_task); end if; if my_label = To_Unbounded_String ("From Task To Object") then my_type := new t_all_enumeration_type' (enum_type => orientations, orientations_value => from_task_to_object); end if; if my_label = To_Unbounded_String ("Periodic message") then my_type := new t_all_enumeration_type' (enum_type => messages_enum, messages_value => periodic_type); end if; if my_label = To_Unbounded_String ("Aperiodic message") then my_type := new t_all_enumeration_type' (enum_type => messages_enum, messages_value => aperiodic_type); end if; if my_label = To_Unbounded_String ("No Migration Type") then my_type := new t_all_enumeration_type' (enum_type => migrations, migrations_value => no_migration_type); end if; if my_label = To_Unbounded_String ("Job Level Migration Type") then my_type := new t_all_enumeration_type' (enum_type => migrations, migrations_value => job_level_migration_type); end if; if my_label = To_Unbounded_String ("Time Unit Migration Type") then my_type := new t_all_enumeration_type' (enum_type => migrations, migrations_value => time_unit_migration_type); end if; if my_label = To_Unbounded_String ("XY") then my_type := new t_all_enumeration_type' (enum_type => routing_enum, routing_value => xy); end if; if my_label = To_Unbounded_String ("XYX") then my_type := new t_all_enumeration_type' (enum_type => routing_enum, routing_value => xyx); end if; if my_label = To_Unbounded_String ("YX") then my_type := new t_all_enumeration_type' (enum_type => routing_enum, routing_value => yx); end if; if my_label = To_Unbounded_String ("NoC") then my_type := new t_all_enumeration_type' (enum_type => networks_architecture_enum, networks_architecture_value => noc); end if; if my_label = To_Unbounded_String ("Shared_Bus") then my_type := new t_all_enumeration_type' (enum_type => networks_architecture_enum, networks_architecture_value => shared_bus); end if; if my_label = To_Unbounded_String ("Spacewire") then my_type := new t_all_enumeration_type' (enum_type => networks_architecture_enum, networks_architecture_value => spacewire); end if; if my_label = To_Unbounded_String ("Star") then my_type := new t_all_enumeration_type' (enum_type => networks_architecture_enum, networks_architecture_value => star); end if; if my_label = To_Unbounded_String ("Crossbar") then my_type := new t_all_enumeration_type' (enum_type => networks_architecture_enum, networks_architecture_value => crossbar); end if; if my_label = To_Unbounded_String ("Point To Point Link") then my_type := new t_all_enumeration_type' (enum_type => networks_architecture_enum, networks_architecture_value => point_to_point_link); end if; if my_label = To_Unbounded_String ("Bounded Delay") then my_type := new t_all_enumeration_type' (enum_type => networks_delay_enum, networks_delay_value => bounded_delay); end if; if my_label = To_Unbounded_String ("Jitter Delay") then my_type := new t_all_enumeration_type' (enum_type => networks_delay_enum, networks_delay_value => jitter_delay); end if; if my_label = To_Unbounded_String ("Parametric Delay") then my_type := new t_all_enumeration_type' (enum_type => networks_delay_enum, networks_delay_value => parametric_delay); end if; if my_label = To_Unbounded_String ("No Protocol") then my_type := new t_all_enumeration_type' (enum_type => protocols, protocols_value => no_protocol); end if; if my_label = To_Unbounded_String ("Priority Ceiling Protocol") then my_type := new t_all_enumeration_type' (enum_type => protocols, protocols_value => priority_ceiling_protocol); end if; if my_label = To_Unbounded_String ("Pool based Priority Ceiling Protocol") then my_type := new t_all_enumeration_type' (enum_type => protocols, protocols_value => pool_based_priority_ceiling_protocol); end if; if my_label = To_Unbounded_String ("Priority Inheritance Protocol") then my_type := new t_all_enumeration_type' (enum_type => protocols, protocols_value => priority_inheritance_protocol); end if; if my_label = To_Unbounded_String ("Immediate Priority Ceiling Protocol") then my_type := new t_all_enumeration_type' (enum_type => protocols, protocols_value => immediate_priority_ceiling_protocol); end if; if my_label = To_Unbounded_String ("Automatic Assignment") then my_type := new t_all_enumeration_type' (enum_type => assignments, assignments_value => automatic_assignment); end if; if my_label = To_Unbounded_String ("Manual Assignment") then my_type := new t_all_enumeration_type' (enum_type => assignments, assignments_value => manual_assignment); end if; if my_label = To_Unbounded_String ("True") or my_label = To_Unbounded_String ("true") then my_type := new t_all_enumeration_type' (enum_type => predictables, predictables_value => True); end if; if my_label = To_Unbounded_String ("False") or my_label = To_Unbounded_String ("false") or my_label = To_Unbounded_String ("") then my_type := new t_all_enumeration_type' (enum_type => predictables, predictables_value => False); end if; if my_label = To_Unbounded_String ("Sched Fifo") then my_type := new t_all_enumeration_type' (enum_type => policies_enum, policies_value => sched_fifo); end if; if my_label = To_Unbounded_String ("Sched Rr") then my_type := new t_all_enumeration_type' (enum_type => policies_enum, policies_value => sched_rr); end if; if my_label = To_Unbounded_String ("Sched Others") then my_type := new t_all_enumeration_type' (enum_type => policies_enum, policies_value => sched_others); end if; if my_label = To_Unbounded_String ("Periodic") then my_type := new t_all_enumeration_type' (enum_type => tasks_enum, tasks_value => periodic_type); end if; if my_label = To_Unbounded_String ("Aperiodic") then my_type := new t_all_enumeration_type' (enum_type => tasks_enum, tasks_value => aperiodic_type); end if; if my_label = To_Unbounded_String ("Sporadic") then my_type := new t_all_enumeration_type' (enum_type => tasks_enum, tasks_value => sporadic_type); end if; if my_label = To_Unbounded_String ("Timed") then my_type := new t_all_enumeration_type' (enum_type => tasks_enum, tasks_value => timed_type); end if; if my_label = To_Unbounded_String ("Sporadic inner periodic") then my_type := new t_all_enumeration_type' (enum_type => tasks_enum, tasks_value => sporadic_inner_periodic_type); end if; if my_label = To_Unbounded_String ("Periodic inner periodic") then my_type := new t_all_enumeration_type' (enum_type => tasks_enum, tasks_value => periodic_inner_periodic_type); end if; if my_label = To_Unbounded_String ("Poisson") then my_type := new t_all_enumeration_type' (enum_type => tasks_enum, tasks_value => poisson_type); end if; if my_label = To_Unbounded_String ("Parametric") then my_type := new t_all_enumeration_type' (enum_type => tasks_enum, tasks_value => parametric_type); end if; if my_label = To_Unbounded_String ("Scheduling") then my_type := new t_all_enumeration_type' (enum_type => tasks_enum, tasks_value => scheduling_task_type); end if; if my_label = To_Unbounded_String ("Multi Frame") then my_type := new t_all_enumeration_type' (enum_type => tasks_enum, tasks_value => frame_task_type); end if; if my_label = To_Unbounded_String ("Boolean") then my_type := new t_all_enumeration_type' (enum_type => parameters_enum, params_value => boolean_parameter); end if; if my_label = To_Unbounded_String ("Integer") then my_type := new t_all_enumeration_type' (enum_type => parameters_enum, params_value => integer_parameter); end if; if my_label = To_Unbounded_String ("Double") then my_type := new t_all_enumeration_type' (enum_type => parameters_enum, params_value => double_parameter); end if; if my_label = To_Unbounded_String ("String") then my_type := new t_all_enumeration_type' (enum_type => parameters_enum, params_value => string_parameter); end if; if my_label = To_Unbounded_String ("Transaction") then my_type := new t_all_enumeration_type' (enum_type => task_group_types_enum, task_group_types_value => transaction_type); end if; if my_label = To_Unbounded_String ("Multiframe") then my_type := new t_all_enumeration_type' (enum_type => task_group_types_enum, task_group_types_value => multiframe_type); end if; if my_label = To_Unbounded_String ("No CRPD") then my_type := new t_all_enumeration_type' (enum_type => crpd_computation_approach_enum, crpd_computation_approach_value => no_crpd); end if; if my_label = To_Unbounded_String ("ECB Only") then my_type := new t_all_enumeration_type' (enum_type => crpd_computation_approach_enum, crpd_computation_approach_value => ecb_only); end if; if my_label = To_Unbounded_String ("ECB Union Multiset") then my_type := new t_all_enumeration_type' (enum_type => crpd_computation_approach_enum, crpd_computation_approach_value => ecb_union_multiset); end if; if my_label = To_Unbounded_String ("UCB Union Multiset") then my_type := new t_all_enumeration_type' (enum_type => crpd_computation_approach_enum, crpd_computation_approach_value => ucb_union_multiset); end if; if my_label = To_Unbounded_String ("Combined Multiset") then my_type := new t_all_enumeration_type' (enum_type => crpd_computation_approach_enum, crpd_computation_approach_value => combined_multiset); end if; if my_label = To_Unbounded_String ("No Memory Interference") then my_type := new t_all_enumeration_type' (enum_type => memory_interference_computation_approach_enum, memory_interference_computation_approach_value => no_memory_interference); end if; if my_label = To_Unbounded_String ("DRAM Single Arbiter") then my_type := new t_all_enumeration_type' (enum_type => memory_interference_computation_approach_enum, memory_interference_computation_approach_value => dram_single_arbiter); end if; if my_label = To_Unbounded_String ("Wait") then my_type := new t_all_enumeration_type' (enum_type => resources_synchronization_enum, resource_synchronization_value => wait); end if; if my_label = To_Unbounded_String ("Post") then my_type := new t_all_enumeration_type' (enum_type => resources_synchronization_enum, resource_synchronization_value => post); end if; if my_label = To_Unbounded_String ("Mutex") then my_type := new t_all_enumeration_type' (enum_type => resources_synchronization_enum, resource_synchronization_value => Mutex); end if; return my_type; end to_type; end graphical_editor.convert_text;