blob: c27ffeddcb5fc1eddfeb575213a95bc55ae9a2df [file] [log] [blame]
[comment encoding = UTF-8 /]
[comment
-----------------------------------------------------------------------
-- Ada infrastructural code generator --
-- for the CHESS component model --
-- --
-- Copyright (C) 2011-2012 --
-- University of Padova, ITALY --
-- --
-- Author: Marco Panunzio panunzio@math.unipd.it --
-- --
-- All rights reserved. This program and the accompanying materials --
-- are made available under the terms of the Eclipse Public License --
-- v1.0 which accompanies this distribution, and is available at --
-- http://www.eclipse.org/legal/epl-v20.html --
-----------------------------------------------------------------------
/]
[module Main('http://www.eclipse.org/uml2/3.0.0/UML')]
[import org::polarsys::chess::codegen::ada::main::Copyright /]
[template public generateMain(model : Model, procNode : InstanceSpecification)
{
procNodeName : String = procNode.name;
chHwProcessorStName : String = 'CHESS::Predictability::DeploymentConfiguration::HardwareBaseline::CH_HwProcessor';
}
]
[file (procNodeName.concat('/src/main.adb').toLower(), false, 'UTF-8')]
[generateCopyrightAda(model)/]
with Ada.Text_IO;
with System;
with Deployment;
with Ada.Synchronous_Task_Control;
procedure main is
pragma Priority(System.Priority'Last);
Suspension : Ada.Synchronous_Task_Control.Suspension_Object;
begin
--Ada.Text_IO.Put_Line ("System start");
Ada.Text_IO.Put_Line ("Initialize deployment");
Deployment.Initialize;
Deployment.Set_RI;
[if (not isSingleNodeSystem(InstanceSpecification.allInstances()->asSequence(), chHwProcessorStName))]
Deployment.Set_Remote_Msg_Client_Binding;
Deployment.Init_Remote_Msg_Client;
Deployment.Set_Remote_Msg_Server_Binding;
[/if]
Ada.Text_IO.Put_Line("Initialization complete");
-- Suspending indefinitely the main suprogram on a suspension object
Ada.Synchronous_Task_Control.Set_False(Suspension);
Ada.Synchronous_Task_Control.Suspend_Until_True(Suspension);
end main;
[/file]
[/template]
[query public isSingleNodeSystem(arg0 : Sequence(OclAny), arg1 : String) : Boolean
= invoke('org.polarsys.chess.codegen.ada.service.UML2Service', 'isSingleNodeSystem(java.util.List, java.lang.String)', Sequence{arg0, arg1}) /]