Salome HOME
Merge branch 'omu/py2yacs'
[modules/yacs.git] / src / py2yacs / Test / test_py2yacs.cxx
1 #include <iostream>
2 #include <fstream>
3 #include <sstream>
4 #include <cerrno>
5 #include "py2yacs.hxx"
6 #include "RuntimeSALOME.hxx"
7
8 /*
9 #include "Proc.hxx"
10 #include "Node.hxx"
11 #include "CORBAPorts.hxx"
12 #include "InputPort.hxx"
13 #include "Executor.hxx"
14 */
15
16 int main(int argc, char *argv[])
17 {
18   if (argc != 4)
19   {
20     std::cerr << "Usage: " <<  argv[0] << " pythonfile funcname outfile" << std::endl;
21     return 1;
22   }
23   YACS::ENGINE::RuntimeSALOME::setRuntime();
24   //Py_Initialize();
25   Py2yacs parser;
26   std::ifstream file_stream(argv[1]);
27   if(!file_stream)
28   {
29     std::cerr << "Error when opening file " << argv[1]
30              << ": " << strerror(errno)
31              << std::endl;
32     return 1;
33   }
34   std::stringstream buffer;
35   buffer << file_stream.rdbuf();
36   try
37   {
38     parser.load(buffer.str());
39     parser.save(argv[3], argv[2]);
40     
41     /*
42     YACS::ENGINE::Proc* p = parser.createProc(argv[2]);
43     //p->setInPortValue("Schema.default_name", "a", "42.");
44     YACS::ENGINE::Node* n = p->getChildByShortName("default_name");
45     //YACS::ENGINE::Node* n = p->nodeMap["default_name"];
46     if(!n)
47       std::cerr << "Node not found." << std::endl;
48     else
49       n->getInputPort("a")->edInit(42.);
50     p->saveSchema(argv[3]);
51     
52     YACS::ENGINE::Executor executor;
53     executor.RunW(p, 0);
54     n->getOutputPort("x")->dump();
55     */
56   }
57   catch(Py2yacsException& e)
58   {
59     std::cerr << e.what() << std::endl;
60   }
61   YACS::ENGINE::getRuntime()->fini();
62   //Py_Finalize();
63 }