| [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 CRClib('http://www.eclipse.org/uml2/3.0.0/UML')] |
| [import org::polarsys::chess::codegen::ada::main::Copyright /] |
| |
| [template public generateCRClib(model : Model, procNode: InstanceSpecification) { |
| procNodeName : String = procNode.name; |
| } |
| ] |
| |
| [comment crc_lib.ads /] |
| [file (procNodeName.concat('/middleware/src/crc_lib.ads').toLower(), false, 'UTF-8')] |
| [generateCopyrightAda(model)/] |
| |
| with GNAT.CRC32; |
| with Interfaces; |
| with Ada.Text_IO; |
| |
| package CRC_lib is |
| |
| procedure Init; |
| procedure Update (i : in Integer); |
| procedure Update (f : in Float); |
| procedure Update (b : in Boolean); |
| function Get_Value return Interfaces.Unsigned_32; |
| |
| |
| private |
| package IIO is new Ada.Text_IO.Modular_IO (Interfaces.Unsigned_32); |
| crc : GNAT.CRC32.CRC32; |
| num : Interfaces.Unsigned_32; |
| str : String := "The quick brown fox jumps over the lazy dog"; |
| |
| end CRC_lib; |
| [/file] |
| |
| [comment crc_lib.adb /] |
| [file (procNodeName.concat('/middleware/src/crc_lib.adb').toLower(), false, 'UTF-8')] |
| [generateCopyrightAda(model)/] |
| |
| package body CRC_lib is |
| |
| procedure Init is |
| begin |
| GNAT.CRC32.Initialize(crc); |
| end Init; |
| |
| function Get_Value return Interfaces.Unsigned_32 is |
| begin |
| return GNAT.CRC32.Get_Value(crc); |
| end Get_Value; |
| |
| procedure Update (i : in Integer) is |
| begin |
| GNAT.CRC32.Update(crc, Integer'Image(i)); |
| null; |
| end Update; |
| |
| procedure Update (f : in Float) is |
| begin |
| GNAT.CRC32.Update(crc, Float'Image(f)); |
| null; |
| end Update; |
| |
| procedure Update(b : in Boolean) is |
| begin |
| GNAT.CRC32.Update(crc, Boolean'Image(b)); |
| null; |
| end Update; |
| |
| end CRC_lib; |
| [/file] |
| |
| [/template] |
| |
| [query public getProvidedInterface(arg0 : Port, arg1 : String) : Interface |
| = invoke('org.polarsys.chess.codegen.ada.service.UML2Service', 'getProvidedInterface(org.eclipse.uml2.uml.Port, java.lang.String)', Sequence{arg0, arg1}) /] |
| |
| [query public getProvidedInterfaceSlotList(arg0 : Sequence(OclAny), arg1 : String) : Sequence(OclAny) |
| = invoke('org.polarsys.chess.codegen.ada.service.UML2Service', 'getProvidedInterfaceSlotList(java.util.List, java.lang.String)', Sequence{arg0, arg1}) /] |
| |
| [query public getComponentInstanceList(arg0 : Sequence(OclAny), arg1 : String) : Sequence(OclAny) |
| = invoke('org.polarsys.chess.codegen.ada.service.UML2Service', 'getComponentInstanceList(java.util.List, java.lang.String)', Sequence{arg0, arg1}) /] |
| |
| [query public getAllComponentTypeList(arg0: Sequence(OclAny), arg1 : String) : Sequence(OclAny) |
| = invoke('org.polarsys.chess.codegen.ada.service.UML2Service', 'getAllComponentTypeList(java.util.List, java.lang.String)', Sequence{arg0, arg1}) /] |
| |
| [query public getProvidedOperationList(arg0: Sequence(OclAny), arg1 : String) : Sequence(OclAny) |
| = invoke('org.polarsys.chess.codegen.ada.service.UML2Service', 'getProvidedOperationList(java.util.List, java.lang.String)', Sequence{arg0, arg1}) /] |