Salome HOME
Copyright update 2022
[tools/yacsgen.git] / Examples / cpp1 / components.py
1 # Copyright (C) 2009-2022  EDF R&D
2 #
3 # This library is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU Lesser General Public
5 # License as published by the Free Software Foundation; either
6 # version 2.1 of the License, or (at your option) any later version.
7 #
8 # This library is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 # Lesser General Public License for more details.
12 #
13 # You should have received a copy of the GNU Lesser General Public
14 # License along with this library; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 #
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 #
19
20 import os
21
22 #import context from ..
23 exec(compile(open("../context.py").read(), "../context.py", 'exec'))
24 from module_generator import Generator,Module,Service,CPPComponent
25
26 cwd=os.getcwd()
27
28 body="""
29 std::cerr << "a: " << a << std::endl;
30 std::cerr << "b: " << b << std::endl;
31 int info;
32 double t1,t2;
33 int i=1;
34 int mval;
35 double val[10],rval[10];
36 val[0]=3.2;
37 cp_edb(component,CP_ITERATION,0.,1,"ba",1,val);
38 info=cp_ldb(component,CP_ITERATION,&t1,&t2,&i,"aa",1,&mval,rval);
39 std::cerr << "rval: " << rval[0] << std::endl;
40 c=2*rval[0];
41 std::cerr << "c: " << c << std::endl;
42 """
43 c1=CPPComponent("compo1",services=[
44           Service("s1",inport=[("a","double"),("b","double")],
45                        outport=[("c","double")],
46                        instream=[("aa","CALCIUM_double","I"),],
47                        outstream=[("ba","CALCIUM_double","I"),],
48                        defs="//def1",body=body,
49                  ),
50           ],
51          calciumextendedinterface=1,
52          )
53
54
55 g=Generator(Module("cppcompos",components=[c1],prefix="./install"),context)
56 g.generate()
57 g.configure()
58 g.make()
59 g.install()
60 g.make_appli("appli", restrict=["KERNEL"], altmodules={"GUI":GUI_ROOT_DIR,
61                                 "YACS":YACS_ROOT_DIR}, sys_modules=SYS_MODULES)
62