Salome HOME
0022712: [CEA 1300] LightApp_PreferencesDlg - invalid layout / resize policy
[modules/gui.git] / src / PVViewer / PVViewer_EngineWrapper.cxx
index 24f026f31e44d552b656b0774cf48ec6b48dbf27..1f1eeee735010a2b0400f44a7126bc9efe395722 100644 (file)
@@ -21,7 +21,7 @@
 #include "PVViewer_EngineWrapper.h"
 #include <Utils_SALOME_Exception.hxx>
 
-#include <SalomeApp_Application.h>
+//#include <SalomeApp_Application.h>
 #include <SUIT_Session.h>
 
 PVViewer_EngineWrapper * PVViewer_EngineWrapper::instance = NULL;
@@ -33,123 +33,123 @@ PVViewer_EngineWrapper * PVViewer_EngineWrapper::GetInstance()
   return instance;
 }
 
-static SalomeApp_Application* getApplication()
-{
-  if ( SUIT_Session::session() )
-    return dynamic_cast<SalomeApp_Application*>( SUIT_Session::session()->activeApplication() );
-  return 0;
-}
-
-PVViewer_EngineWrapper::PVViewer_EngineWrapper()
-// : paravisEngine(NULL)
-{
-  _component = getApplication()->lcc()->FindOrLoad_Component( "FactoryServer", "PARAVIS" );
-}
-
-bool PVViewer_EngineWrapper::GetGUIConnected()
-{
-  CORBA::Request_var req = _component->_request("GetGUIConnected");
-  req->set_return_type(CORBA::_tc_boolean);
-  req->invoke();
-  CORBA::Exception *exc =req->env()->exception();
-  if( exc )
-    throw SALOME_Exception("Unable to invoke PARAVIS engine!");
-  CORBA::Any & ret = req->return_value();
-  CORBA::Boolean bo;
-
-  if (ret >>= bo)
-    return bool(bo);
-  else
-    throw SALOME_Exception("Unable to convert engine result!");
-}
-
-void PVViewer_EngineWrapper::SetGUIConnected(bool isConnected)
-{
-  CORBA::Request_var req = _component->_request("SetGUIConnected");
-  CORBA::Boolean arg = isConnected;
-  req->add_in_arg() <<= arg;
-  req->set_return_type(CORBA::_tc_void);
-  req->invoke();
-  CORBA::Exception *exc =req->env()->exception();
-  if( exc )
-    throw SALOME_Exception("Unable to invoke PARAVIS engine!");
-}
-
-std::string PVViewer_EngineWrapper::FindOrStartPVServer(int port)
-{
-  CORBA::Request_var req = _component->_request("FindOrStartPVServer");
-  CORBA::Long arg = port;
-  req->add_in_arg() <<= arg;
-  req->set_return_type(CORBA::_tc_string);
-  req->invoke();
-  CORBA::Exception *exc =req->env()->exception();
-  if( exc )
-    throw SALOME_Exception("Unable to invoke PARAVIS engine!");
-
-  const char* ret;
-  if(req->return_value() >>= ret)
-    return std::string(ret);
-  else
-    throw SALOME_Exception("Unable to convert engine result!");
-}
-
-//PVViewer_EngineWrapper::PVViewer_EngineWrapper() :
-//    paravisEngine(NULL)
+//static SalomeApp_Application* getApplication()
 //{
-////  const char * cmd = "import PARAVIS_utils;e=";
-//  PyLockWrapper lock;
-//  const char* code = "import PARAVIS_utils as pa;__enginePARAVIS=pa.getEngine()";
-//  int ret = PyRun_SimpleString(const_cast<char*>(code));
-//
-//  if (ret == -1)
-//    throw SALOME_Exception("Unable to retrieve PARAVIS engine!");
-//
-//  // Now get the reference to __engine and save the pointer.
-//  PyObject* main_module = PyImport_AddModule((char*)"__main__");
-//  PyObject* global_dict = PyModule_GetDict(main_module);
-//  PyObjWrapper tmp(PyDict_GetItemString(global_dict, "__enginePARAVIS"));
-//  paravisEngine = tmp;
+//  if ( SUIT_Session::session() )
+//    return dynamic_cast<SalomeApp_Application*>( SUIT_Session::session()->activeApplication() );
+//  return 0;
 //}
 //
-//
+//PVViewer_EngineWrapper::PVViewer_EngineWrapper()
+//// : paravisEngine(NULL)
+//{
+//  _component = getApplication()->lcc()->FindOrLoad_Component( "FactoryServer", "PARAVIS" );
+//}
 //
 //bool PVViewer_EngineWrapper::GetGUIConnected()
 //{
-//  PyLockWrapper lock;
-//  PyObjWrapper obj(PyObject_CallMethod(paravisEngine, (char*)("GetGUIConnected"), NULL));
-//  if (!obj)
-//    {
-//      PyErr_Print();
-//      throw SALOME_Exception("Unable to invoke PARAVIS engine!");
-//    }
-//  return PyObject_IsTrue(obj);
+//  CORBA::Request_var req = _component->_request("GetGUIConnected");
+//  req->set_return_type(CORBA::_tc_boolean);
+//  req->invoke();
+//  CORBA::Exception *exc =req->env()->exception();
+//  if( exc )
+//    throw SALOME_Exception("Unable to invoke PARAVIS engine!");
+//  CORBA::Any & ret = req->return_value();
+//  CORBA::Boolean bo;
+//
+//  if (ret >>= bo)
+//    return bool(bo);
+//  else
+//    throw SALOME_Exception("Unable to convert engine result!");
 //}
 //
 //void PVViewer_EngineWrapper::SetGUIConnected(bool isConnected)
 //{
-//  PyLockWrapper lock;
-//
-//  PyObjWrapper obj(PyObject_CallMethod(paravisEngine, (char*)("SetGUIConnected"),
-//                                       (char *)"i", (int)isConnected ) );
-//  if (!obj)
-//    {
-//      PyErr_Print();
-//      throw SALOME_Exception("Unable to invoke PARAVIS engine!");
-//    }
+//  CORBA::Request_var req = _component->_request("SetGUIConnected");
+//  CORBA::Boolean arg = isConnected;
+//  req->add_in_arg() <<= arg;
+//  req->set_return_type(CORBA::_tc_void);
+//  req->invoke();
+//  CORBA::Exception *exc =req->env()->exception();
+//  if( exc )
+//    throw SALOME_Exception("Unable to invoke PARAVIS engine!");
 //}
 //
 //std::string PVViewer_EngineWrapper::FindOrStartPVServer(int port)
 //{
-//  PyLockWrapper lock;
-//
-//  PyObjWrapper obj(PyObject_CallMethod(paravisEngine, (char*)("FindOrStartPVServer"),
-//                                         (char *)"i", port ) );
-//  if (!obj)
-//    {
-//      PyErr_Print();
-//      throw SALOME_Exception("Unable to invoke PARAVIS engine!");
-//    }
-//  char * s = PyString_AsString(obj);
+//  CORBA::Request_var req = _component->_request("FindOrStartPVServer");
+//  CORBA::Long arg = port;
+//  req->add_in_arg() <<= arg;
+//  req->set_return_type(CORBA::_tc_string);
+//  req->invoke();
+//  CORBA::Exception *exc =req->env()->exception();
+//  if( exc )
+//    throw SALOME_Exception("Unable to invoke PARAVIS engine!");
 //
-//  return std::string(s);
+//  const char* ret;
+//  if(req->return_value() >>= ret)
+//    return std::string(ret);
+//  else
+//    throw SALOME_Exception("Unable to convert engine result!");
 //}
+
+PVViewer_EngineWrapper::PVViewer_EngineWrapper() :
+    paravisEngine(NULL)
+{
+//  const char * cmd = "import PARAVIS_utils;e=";
+  PyLockWrapper lock;
+  const char* code = "import PARAVIS_utils as pa;__enginePARAVIS=pa.getEngine()";
+  int ret = PyRun_SimpleString(const_cast<char*>(code));
+
+  if (ret == -1)
+    throw SALOME_Exception("Unable to retrieve PARAVIS engine!");
+
+  // Now get the reference to __engine and save the pointer.
+  PyObject* main_module = PyImport_AddModule((char*)"__main__");
+  PyObject* global_dict = PyModule_GetDict(main_module);
+  PyObjWrapper tmp(PyDict_GetItemString(global_dict, "__enginePARAVIS"));
+  paravisEngine = tmp;
+}
+
+
+
+bool PVViewer_EngineWrapper::GetGUIConnected()
+{
+  PyLockWrapper lock;
+  PyObjWrapper obj(PyObject_CallMethod(paravisEngine, (char*)("GetGUIConnected"), NULL));
+  if (!obj)
+    {
+      PyErr_Print();
+      throw SALOME_Exception("Unable to invoke PARAVIS engine!");
+    }
+  return PyObject_IsTrue(obj);
+}
+
+void PVViewer_EngineWrapper::SetGUIConnected(bool isConnected)
+{
+  PyLockWrapper lock;
+
+  PyObjWrapper obj(PyObject_CallMethod(paravisEngine, (char*)("SetGUIConnected"),
+                                       (char *)"i", (int)isConnected ) );
+  if (!obj)
+    {
+      PyErr_Print();
+      throw SALOME_Exception("Unable to invoke PARAVIS engine!");
+    }
+}
+
+std::string PVViewer_EngineWrapper::FindOrStartPVServer(int port)
+{
+  PyLockWrapper lock;
+
+  PyObjWrapper obj(PyObject_CallMethod(paravisEngine, (char*)("FindOrStartPVServer"),
+                                         (char *)"i", port ) );
+  if (!obj)
+    {
+      PyErr_Print();
+      throw SALOME_Exception("Unable to invoke PARAVIS engine!");
+    }
+  char * s = PyString_AsString(obj);
+
+  return std::string(s);
+}