Salome HOME
Merge from V5_1_main 14/05/2010
[modules/kernel.git] / src / ParallelContainer / SALOME_ParallelComponent_i.cxx
index 8e8cc6aee039c82c1e4b95072d231312e63245d2..fcebd659b41ab9172def02a55e63a3331011a865 100644 (file)
@@ -1,4 +1,4 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//  Copyright (C) 2007-2010  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 //  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -19,6 +19,7 @@
 //
 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 //  SALOME_ParallelComponent : implementation of container and engine for Parallel Kernel
 //  File   : SALOME_ParallelComponent_i.cxx
 //  Author : AndrĂ© RIBES, EDF
@@ -34,6 +35,7 @@
 #endif
 #include <cstdlib>
 #include "utilities.h"
+#include "Basics_Utils.hxx"
 
 #ifndef WIN32
 #include <sys/time.h>
@@ -47,7 +49,6 @@ int SIGUSR11 = 1000;
 #include <paco_dummy.h>
 #include <paco_omni.h>
 
-using namespace std;
 
 extern bool _Sleeping ;
 static Engines_Parallel_Component_i * theEngines_Component ;
@@ -55,21 +56,6 @@ static Engines_Parallel_Component_i * theEngines_Component ;
 bool Engines_Parallel_Component_i::_isMultiStudy = true;
 bool Engines_Parallel_Component_i::_isMultiInstance = false;
 
-//=============================================================================
-/*! 
- *  Default constructor, not for use
- */
-//=============================================================================
-
-Engines_Parallel_Component_i::Engines_Parallel_Component_i(CORBA::ORB_ptr orb, char * ior, int rank) : 
-  InterfaceParallel_impl(orb,ior,rank), 
-  Engines::Component_serv(orb,ior,rank), 
-  Engines::Parallel_Component_serv(orb,ior,rank)
-{
-  //ASSERT(0);
-  INFOS("Default Constructor...");
-}
-
 //=============================================================================
 /*! 
  *  Standard Constructor for generic Component, used in derived class
@@ -84,34 +70,43 @@ Engines_Parallel_Component_i::Engines_Parallel_Component_i(CORBA::ORB_ptr orb, c
 //=============================================================================
 
 Engines_Parallel_Component_i::Engines_Parallel_Component_i(CORBA::ORB_ptr orb, char * ior, int rank,
-                                        PortableServer::POA_ptr poa, 
-                                        PortableServer::ObjectId * contId, 
-                                        const char *instanceName,
-                                        const char *interfaceName,
-                                         bool notif) :
+                                         PortableServer::POA_ptr poa, 
+                                         PortableServer::ObjectId * contId, 
+                                         const char *instanceName,
+                                         const char *interfaceName,
+                                         bool notif,
+                                         bool regist) :
   InterfaceParallel_impl(orb,ior,rank), 
   Engines::Component_serv(orb,ior,rank),
+  Engines::Component_base_serv(orb,ior,rank),
   Engines::Parallel_Component_serv(orb,ior,rank),
+  Engines::Parallel_Component_base_serv(orb,ior,rank),
   _instanceName(instanceName),
   _interfaceName(interfaceName),
+  _id(NULL),
   _myConnexionToRegistry(0),
   _ThreadId(0) ,
   _ThreadCpuUsed(0) ,
   _Executed(false) ,
   _graphName("") ,
   _nodeName(""),
- _studyId(-1)
+  _studyId(-1),
+  _destroyed(false),
+  _CanceledThread(false)
 {
-  MESSAGE("Component constructor with instanceName "<< _instanceName);
+  MESSAGE("Parallel Component constructor with instanceName "<< _instanceName);
   //SCRUTE(pd_refCount);
   _orb = CORBA::ORB::_duplicate(orb);
   _poa = PortableServer::POA::_duplicate(poa);
   _contId = contId ;
   CORBA::Object_var o = _poa->id_to_reference(*contId); // container ior...
-  const CORBA::String_var the_ior = _orb->object_to_string(o);
-  _myConnexionToRegistry = new RegistryConnexion(0, 0, the_ior,"theSession",
-                                                _instanceName.c_str());
 
+  if (regist)
+  {
+    CORBA::String_var the_ior = _orb->object_to_string(o);
+    _myConnexionToRegistry = new RegistryConnexion(0, 0, the_ior,"theSession",
+                                                   _instanceName.c_str());
+  }
   _notifSupplier = new NOTIFICATION_Supplier(instanceName, notif);
 
   deploy_mutex = new pthread_mutex_t();
@@ -130,11 +125,15 @@ Engines_Parallel_Component_i::Engines_Parallel_Component_i(CORBA::ORB_ptr orb, c
 
 Engines_Parallel_Component_i::~Engines_Parallel_Component_i()
 {
-  MESSAGE("Component destructor");
+  MESSAGE("Parallel Component destructor");
   Engines_Parallel_Container_i::decInstanceCnt(_interfaceName);
+  if(_myConnexionToRegistry)delete _myConnexionToRegistry;
+  if(_notifSupplier)delete _notifSupplier;
+  if (_id)
+    delete(_id);
+
   pthread_mutex_destroy(deploy_mutex);
   delete deploy_mutex;
-
   if (_proxy)
     delete _proxy;
 }
@@ -183,7 +182,13 @@ CORBA::Long Engines_Parallel_Component_i::getStudyId()
 
 void Engines_Parallel_Component_i::ping()
 {
-  //  MESSAGE("Engines_Parallel_Component_i::ping_c() pid "<< getpid() << " threadid " << pthread_self());
+#ifndef WIN32
+  MESSAGE("Engines_Parallel_Component_i::ping() pid "<< getpid() << " threadid "
+          << pthread_self());
+#else
+  MESSAGE("Engines_Parallel_Component_i::ping() pid "<< _getpid()<< " threadid "
+          << pthread_self().p );
+#endif
 }
 
 //=============================================================================
@@ -200,20 +205,12 @@ void Engines_Parallel_Component_i::ping()
 void Engines_Parallel_Component_i::destroy()
 {
   MESSAGE("Engines_Parallel_Component_i::destroy()");
-  //SCRUTE(pd_refCount);
-
-  delete _notifSupplier;
-  _notifSupplier = 0;
-
-  delete _myConnexionToRegistry;
-  _myConnexionToRegistry = 0 ;
-  _poa->deactivate_object(*_id) ;
-  CORBA::release(_poa) ;
-  delete(_id) ;
-  //SCRUTE(pd_refCount);
-  _thisObj->_remove_ref();
-  //SCRUTE(pd_refCount);
-  MESSAGE("Engines_Parallel_Component_i::destroyed") ;
+  MESSAGE("Object Instance will be deleted when Shutdown of the container will be called");
+  if (!_destroyed)
+  {
+    _remove_ref();
+    _destroyed = true;
+  }
 }
 
 //=============================================================================
@@ -226,7 +223,7 @@ void Engines_Parallel_Component_i::destroy()
 Engines::Container_ptr Engines_Parallel_Component_i::GetContainerRef()
 {
   MESSAGE("Engines_Parallel_Component_i::GetContainerRef");
-  CORBA::Object_ptr o = _poa->id_to_reference(*_contId) ;
+  CORBA::Object_var o = _poa->id_to_reference(*_contId) ;
   return Engines::Container::_narrow(o);
 }
 
@@ -263,7 +260,7 @@ Engines::FieldsDict* Engines_Parallel_Component_i::getProperties()
 {
   Engines::FieldsDict_var copie = new Engines::FieldsDict;
   copie->length(_fieldsDict.size());
-  map<std::string,CORBA::Any>::iterator it;
+  std::map<std::string,CORBA::Any>::iterator it;
   CORBA::ULong i = 0;
   for (it = _fieldsDict.begin(); it != _fieldsDict.end(); it++, i++)
     {
@@ -283,10 +280,10 @@ Engines::FieldsDict* Engines_Parallel_Component_i::getProperties()
 void Engines_Parallel_Component_i::Names( const char * graphName ,
                                  const char * nodeName )
 {
-  _graphName = graphName ;
-  _nodeName = nodeName ;
-  INFOS("Engines_Parallel_Component_i::Names( '" << _graphName << "' , '"
-       << _nodeName << "' )");
+  _graphName = graphName;
+  _nodeName = nodeName;
+  MESSAGE("Engines_Parallel_Component_i::Names( '" << _graphName << "' , '" 
+                                                   << _nodeName << "' )");
 }
 
 //=============================================================================
@@ -308,7 +305,7 @@ bool Engines_Parallel_Component_i::Kill_impl()
 #ifndef WIN32
   if ( _ThreadId > 0 && pthread_self() != _ThreadId )
     {
-      RetVal = Killer( _ThreadId , 0 ) ;
+      RetVal = Killer( _ThreadId , SIGUSR2 ) ;
       _ThreadId = (pthread_t ) -1 ;
     }
 
@@ -331,11 +328,19 @@ bool Engines_Parallel_Component_i::Kill_impl()
 
 bool Engines_Parallel_Component_i::Stop_impl()
 {
+#ifndef WIN32
   MESSAGE("Engines_Parallel_Component_i::Stop_i() pthread_t "<< pthread_self()
           << " pid " << getpid() << " instanceName "
           << _instanceName.c_str() << " interface " << _interfaceName.c_str()
           << " machineName " << Kernel_Utils::GetHostname().c_str()<< " _id " << hex << _id
           << dec << " _ThreadId " << _ThreadId );
+#else
+  MESSAGE("Engines_Parallel_Component_i::Stop_i() pthread_t "<< pthread_self().p
+          << " pid " << _getpid() << " instanceName "
+          << _instanceName.c_str() << " interface " << _interfaceName.c_str()
+          << " machineName " << Kernel_Utils::GetHostname().c_str()<< " _id " << hex << _id
+          << dec << " _ThreadId " << _ThreadId );
+#endif
   
 
   bool RetVal = false ;
@@ -363,11 +368,19 @@ bool Engines_Parallel_Component_i::Stop_impl()
 
 bool Engines_Parallel_Component_i::Suspend_impl()
 {
+#ifndef WIN32
   MESSAGE("Engines_Parallel_Component_i::Suspend_i() pthread_t "<< pthread_self()
           << " pid " << getpid() << " instanceName "
           << _instanceName.c_str() << " interface " << _interfaceName.c_str()
           << " machineName " << Kernel_Utils::GetHostname().c_str()<< " _id " << hex << _id
           << dec << " _ThreadId " << _ThreadId );
+#else
+  MESSAGE("Engines_Parallel_Component_i::Suspend_i() pthread_t "<< pthread_self().p
+          << " pid " << _getpid() << " instanceName "
+          << _instanceName.c_str() << " interface " << _interfaceName.c_str()
+          << " machineName " << Kernel_Utils::GetHostname().c_str()<< " _id " << hex << _id
+          << dec << " _ThreadId " << _ThreadId );
+#endif
 
   bool RetVal = false ;
 #ifndef WIN32
@@ -377,17 +390,17 @@ bool Engines_Parallel_Component_i::Suspend_impl()
 #endif
     {
       if ( _Sleeping )
-       {
-         return false ;
-       }
+        {
+          return false ;
+        }
     else 
       {
 #ifndef WIN32
-       RetVal = Killer( _ThreadId ,SIGINT ) ;
+        RetVal = Killer( _ThreadId ,SIGINT ) ;
 #else
-       RetVal = Killer( *_ThreadId ,SIGINT ) ;
+        RetVal = Killer( *_ThreadId ,SIGINT ) ;
 #endif
-       //if ( RetVal ) _Sleeping = true;
+        //if ( RetVal ) _Sleeping = true;
 
       }
     }
@@ -402,11 +415,19 @@ bool Engines_Parallel_Component_i::Suspend_impl()
 
 bool Engines_Parallel_Component_i::Resume_impl()
 {
+#ifndef WIN32
   MESSAGE("Engines_Parallel_Component_i::Resume_i() pthread_t "<< pthread_self()
           << " pid " << getpid() << " instanceName "
           << _instanceName.c_str() << " interface " << _interfaceName.c_str()
           << " machineName " << Kernel_Utils::GetHostname().c_str()<< " _id " << hex << _id
           << dec << " _ThreadId " << _ThreadId );
+#else
+  MESSAGE("Engines_Parallel_Component_i::Resume_i() pthread_t "<< pthread_self().p
+          << " pid " << _getpid() << " instanceName "
+          << _instanceName.c_str() << " interface " << _interfaceName.c_str()
+          << " machineName " << Kernel_Utils::GetHostname().c_str()<< " _id " << hex << _id
+          << dec << " _ThreadId " << _ThreadId );
+#endif
   bool RetVal = false ;
 #ifndef WIN32
   if ( _ThreadId > 0 && pthread_self() != _ThreadId )
@@ -416,12 +437,12 @@ bool Engines_Parallel_Component_i::Resume_impl()
     {
     if ( _Sleeping ) 
       {
-       _Sleeping = false ;
-       RetVal = true ;
+        _Sleeping = false ;
+        RetVal = true ;
       }
     else
       {
-       RetVal = false ;
+        RetVal = false ;
       }
     }
   return RetVal ;
@@ -445,41 +466,41 @@ CORBA::Long Engines_Parallel_Component_i::CpuUsed_impl()
 #else
       if ( pthread_self().p != _ThreadId->p )
 #endif
-       {
+        {
         if ( _Sleeping )
-         {
-         }
+          {
+          }
         else
-         {
-           // Get Cpu in the appropriate thread with that object !...
-           theEngines_Component = this ;
+          {
+            // Get Cpu in the appropriate thread with that object !...
+            theEngines_Component = this ;
 #ifndef WIN32
-           Killer( _ThreadId ,SIGUSR1 ) ;
+            Killer( _ThreadId ,SIGUSR1 ) ;
 #else
-           Killer( *_ThreadId ,SIGUSR11 ) ;
+            Killer( *_ThreadId ,SIGUSR11 ) ;
 #endif
-         }
+          }
         cpu = _ThreadCpuUsed ;
-       }
+        }
       else
-       {
-         _ThreadCpuUsed = CpuUsed() ;
-         cpu = _ThreadCpuUsed ;
-         // cout << pthread_self() << " Engines_Parallel_Component_i::CpuUsed_impl "
-         //      << _serviceName << " " << cpu << endl ;
+        {
+          _ThreadCpuUsed = CpuUsed() ;
+          cpu = _ThreadCpuUsed ;
+          // std::cout << pthread_self() << " Engines_Parallel_Component_i::CpuUsed_impl "
+          //      << _serviceName << " " << cpu << std::endl ;
       }
     }
     else 
       {
-       cpu = _ThreadCpuUsed ;
-       // cout << pthread_self() << " Engines_Parallel_Component_i::CpuUsed_impl "
-       //      << _serviceName << " " << cpu<< endl ;
+        cpu = _ThreadCpuUsed ;
+        // std::cout << pthread_self() << " Engines_Parallel_Component_i::CpuUsed_impl "
+        //      << _serviceName << " " << cpu<< std::endl ;
       }
     }
   else
     {
-      // cout<< pthread_self()<<"Engines_Parallel_Component_i::CpuUsed_impl _ThreadId "
-      //     <<_ThreadId <<" "<<_serviceName<<" _StartUsed "<<_StartUsed<<endl;
+      // std::cout<< pthread_self()<<"Engines_Parallel_Component_i::CpuUsed_impl _ThreadId "
+      //     <<_ThreadId <<" "<<_serviceName<<" _StartUsed "<<_StartUsed<<std::endl;
     }
   return cpu ;
 }
@@ -542,8 +563,13 @@ PortableServer::ObjectId * Engines_Parallel_Component_i::getId()
 
 void Engines_Parallel_Component_i::beginService(const char *serviceName)
 {
+#ifndef WIN32
   MESSAGE(pthread_self() << "Send BeginService notification for " <<serviceName
-         << endl << "Component instance : " << _instanceName << endl << endl);
+          << endl << "Parallel Component instance : " << _instanceName << endl << endl);
+#else
+  MESSAGE(pthread_self().p << "Send BeginService notification for " <<serviceName
+          << endl << "Parallel Component instance : " << _instanceName << endl << endl);
+#endif
 #ifndef WIN32
   _ThreadId = pthread_self() ;
 #else
@@ -573,31 +599,31 @@ void Engines_Parallel_Component_i::beginService(const char *serviceName)
   // --- for supervisor : all strings given with setProperties
   //     are set in environment
   bool overwrite = true;
-  map<std::string,CORBA::Any>::iterator it;
+  std::map<std::string,CORBA::Any>::iterator it;
   for (it = _fieldsDict.begin(); it != _fieldsDict.end(); it++)
     {
       std::string cle((*it).first);
       if ((*it).second.type()->kind() == CORBA::tk_string)
-       {
-         const char* value;
-         (*it).second >>= value;
-         // ---todo: replace __GNUC__ test by an autoconf macro AC_CHECK_FUNC.
+        {
+          const char* value;
+          (*it).second >>= value;
+          // ---todo: replace __GNUC__ test by an autoconf macro AC_CHECK_FUNC.
 #if defined __GNUC__
-         //int ret = setenv(cle.c_str(), value, overwrite);
-         setenv(cle.c_str(), value, overwrite);
+          //int ret = setenv(cle.c_str(), value, overwrite);
+          setenv(cle.c_str(), value, overwrite);
 #else
-         //CCRT porting : setenv not defined in stdlib.h
-         std::string s(cle);
-         s+='=';
-         s+=value;
-         // char* cast because 1st arg of linux putenv function
-         // is not a const char* !
-         //int ret=putenv((char *)s.c_str());
-         putenv((char *)s.c_str());
-         //End of CCRT porting
+          //CCRT porting : setenv not defined in stdlib.h
+          std::string s(cle);
+          s+='=';
+          s+=value;
+          // char* cast because 1st arg of linux putenv function
+          // is not a const char* !
+          //int ret=putenv((char *)s.c_str());
+          putenv((char *)s.c_str());
+          //End of CCRT porting
 #endif
-         MESSAGE("--- setenv: "<<cle<<" = "<< value);
-       }
+          MESSAGE("--- setenv: "<<cle<<" = "<< value);
+        }
     }
 }
 
@@ -609,10 +635,18 @@ void Engines_Parallel_Component_i::beginService(const char *serviceName)
 
 void Engines_Parallel_Component_i::endService(const char *serviceName)
 {
-  _ThreadCpuUsed = CpuUsed_impl() ;
+  if ( !_CanceledThread )
+    _ThreadCpuUsed = CpuUsed_impl() ;
+
+#ifndef WIN32
   MESSAGE(pthread_self() << " Send EndService notification for " << serviceName
-         << endl << " Component instance : " << _instanceName << " StartUsed "
+          << endl << " Parallel Component instance : " << _instanceName << " StartUsed "
           << _StartUsed << " _ThreadCpuUsed "<< _ThreadCpuUsed << endl <<endl);
+#else
+  MESSAGE(pthread_self().p << " Send EndService notification for " << serviceName
+          << endl << " Parallel Component instance : " << _instanceName << " StartUsed "
+    << _StartUsed << " _ThreadCpuUsed "<< _ThreadCpuUsed << endl <<endl);
+#endif
   _ThreadId = 0 ;
 }
 
@@ -653,31 +687,41 @@ bool Engines_Parallel_Component_i::Killer( pthread_t ThreadId , int signum )
 #endif
     {
       if ( signum == 0 )
-       {
-         if ( pthread_cancel( ThreadId ) )
-           {
-             perror("Killer pthread_cancel error") ;
-             return false ;
-           }
-         else
-           {
-             MESSAGE(pthread_self() << "Killer : ThreadId " << ThreadId
-                     << " pthread_canceled") ;
-           }
-       }
+        {
+          if ( pthread_cancel( ThreadId ) )
+            {
+              perror("Killer pthread_cancel error") ;
+              return false ;
+            }
+          else
+            {
+#ifndef WIN32
+              MESSAGE(pthread_self() << "Killer : ThreadId " << ThreadId
+                      << " pthread_canceled") ;
+#else
+        MESSAGE(pthread_self().p << "Killer : ThreadId " << ThreadId.p
+                      << " pthread_canceled") ;
+#endif
+            }
+        }
       else
-       {
-         if ( pthread_kill( ThreadId , signum ) == -1 )
-           {
-             perror("Killer pthread_kill error") ;
-             return false ;
-           }
-         else 
-           {
-             MESSAGE(pthread_self() << "Killer : ThreadId " << ThreadId
-                     << " pthread_killed(" << signum << ")") ;
-           }
-       }
+        {
+          if ( pthread_kill( ThreadId , signum ) == -1 )
+            {
+              perror("Killer pthread_kill error") ;
+              return false ;
+            }
+          else 
+            {
+#ifndef WIN32
+        MESSAGE(pthread_self() << "Killer : ThreadId " << ThreadId
+                      << " pthread_killed(" << signum << ")") ;
+#else
+        MESSAGE(pthread_self().p << "Killer : ThreadId " << ThreadId.p
+                      << " pthread_killed(" << signum << ")") ;
+#endif
+            }
+        }
     }
   return true ;
 }
@@ -690,7 +734,8 @@ bool Engines_Parallel_Component_i::Killer( pthread_t ThreadId , int signum )
 
 void SetCpuUsed()
 {
-  theEngines_Component->SetCurCpu() ;
+  if (theEngines_Component)
+    theEngines_Component->SetCurCpu();
 }
 
 //=============================================================================
@@ -720,29 +765,46 @@ long Engines_Parallel_Component_i::CpuUsed()
   if ( _ThreadId || _Executed )
     {
       if ( getrusage( RUSAGE_SELF , &usage ) == -1 )
-       {
-         perror("Engines_Parallel_Component_i::CpuUsed") ;
-         return 0 ;
-       }
+        {
+          perror("Engines_Parallel_Component_i::CpuUsed") ;
+          return 0 ;
+        }
       cpu = usage.ru_utime.tv_sec - _StartUsed ;
-      // cout << pthread_self() << " Engines_Parallel_Component_i::CpuUsed " << " "
+      // std::cout << pthread_self() << " Engines_Parallel_Component_i::CpuUsed " << " "
       //      << _serviceName   << usage.ru_utime.tv_sec << " - " << _StartUsed
-      //      << " = " << cpu << endl ;
+      //      << " = " << cpu << std::endl ;
     }
   else
     {
-      // cout << pthread_self() << "Engines_Parallel_Component_i::CpuUsed _ThreadId "
+      // std::cout << pthread_self() << "Engines_Parallel_Component_i::CpuUsed _ThreadId "
       //      << _ThreadId << " " << _serviceName<< " _StartUsed " 
-      //      << _StartUsed << endl ;
+      //      << _StartUsed << std::endl ;
     }
 #else
-       // NOT implementet yet
+        // NOT implementet yet
 #endif
 
 
   return cpu ;
 }
 
+void CallCancelThread()
+{
+  if ( theEngines_Component )
+    theEngines_Component->CancelThread() ;
+}
+
+//=============================================================================
+/*!
+ *  C++ method:
+ */
+//=============================================================================
+
+void Engines_Parallel_Component_i::CancelThread()
+{
+  _CanceledThread = true;
+}
+
 //=============================================================================
 /*! 
  *  C++ method: Send message to event channel
@@ -750,7 +812,7 @@ long Engines_Parallel_Component_i::CpuUsed()
 //=============================================================================
 
 void Engines_Parallel_Component_i::sendMessage(const char *event_type,
-                                     const char *message)
+                                      const char *message)
 {
     _notifSupplier->Send(graphName(), nodeName(), event_type, message);
 }
@@ -761,9 +823,9 @@ void Engines_Parallel_Component_i::sendMessage(const char *event_type,
  */
 //=============================================================================
 
-string Engines_Parallel_Component_i::GetDynLibraryName(const char *componentName)
+std::string Engines_Parallel_Component_i::GetDynLibraryName(const char *componentName)
 {
-  string ret="lib";
+  std::string ret="lib";
   ret+=componentName;
   ret+="Engine.so";
   return ret;
@@ -776,8 +838,8 @@ string Engines_Parallel_Component_i::GetDynLibraryName(const char *componentName
 //=============================================================================
 
 Engines::TMPFile* Engines_Parallel_Component_i::DumpPython(CORBA::Object_ptr theStudy, 
-                                                          CORBA::Boolean isPublished, 
-                                                          CORBA::Boolean& isValidScript)
+                                                           CORBA::Boolean isPublished, 
+                                                           CORBA::Boolean& isValidScript)
 {
   const char* aScript = "def RebuildData(theStudy): pass";
   char* aBuffer = new char[strlen(aScript)+1];
@@ -792,7 +854,7 @@ Engines::TMPFile* Engines_Parallel_Component_i::DumpPython(CORBA::Object_ptr the
 
 Engines::Salome_file_ptr 
 Engines_Parallel_Component_i::setInputFileToService(const char* service_name, 
-                                                   const char* Salome_file_name) 
+                                                    const char* Salome_file_name) 
 {
   // Try to find the service, if it doesn't exist, we add it.
   _Service_file_map_it = _Input_Service_file_map.find(service_name);
@@ -825,7 +887,7 @@ Engines_Parallel_Component_i::setInputFileToService(const char* service_name,
     Engines::Parallel_Salome_file_proxy_impl * proxy = NULL;
     if (getMyRank() == 0) {
       proxy = new Engines::Parallel_Salome_file_proxy_impl(CORBA::ORB::_duplicate(_orb),
-                                                          new paco_omni_fabrique());
+                                                           new paco_omni_fabrique());
       proxy->copyGlobalContext(this); 
       PaCO::PacoTopology_t serveur_topo;
       serveur_topo.total = getTotalNode();
@@ -836,7 +898,7 @@ Engines_Parallel_Component_i::setInputFileToService(const char* service_name,
 
       // We send the reference to all the nodes...
       Engines::Parallel_Component_var component_proxy = 
-       Engines::Parallel_Component::_narrow(InterfaceParallel_impl::_proxy);
+        Engines::Parallel_Component::_narrow(InterfaceParallel_impl::_proxy);
       component_proxy->send_parallel_proxy_object(proxy_ref);
 
       // Adding proxy into the map
@@ -853,30 +915,30 @@ Engines_Parallel_Component_i::setInputFileToService(const char* service_name,
     // into the proxy.
     for (int i = 0; i < getTotalNode(); i++) {
       if (i ==  getMyRank()) {
-       Parallel_Salome_file_i * servant = 
-         new Parallel_Salome_file_i(CORBA::ORB::_duplicate(_orb), 
-                                    proxy_ior.c_str(),
-                                    i);
-       servant->copyGlobalContext(this); 
-       
-       // We register the CORBA objet into the POA
-       servant->POA_PaCO::InterfaceParallel::_this();
-
-       // Register the servant
-       servant->deploy();
-
-       // Adding servant to the map
-       (*_map)[Salome_file_name] = servant;
+        Parallel_Salome_file_i * servant = 
+          new Parallel_Salome_file_i(CORBA::ORB::_duplicate(_orb), 
+                                     proxy_ior.c_str(),
+                                     i);
+        servant->copyGlobalContext(this); 
+        
+        // We register the CORBA objet into the POA
+        servant->POA_PaCO::InterfaceParallel::_this();
+
+        // Register the servant
+        servant->deploy();
+
+        // Adding servant to the map
+        (*_map)[Salome_file_name] = servant;
       }
 
       _my_com->paco_barrier();
       // start parallel object
       if (getMyRank() == 0) {
-       proxy->start();
-       _my_com->paco_barrier();
+        proxy->start();
+        _my_com->paco_barrier();
       }
       else
-       _my_com->paco_barrier();
+        _my_com->paco_barrier();
     }
     // Parallel_Salome_file is created and deployed
     delete _proxy;
@@ -891,7 +953,7 @@ Engines_Parallel_Component_i::setInputFileToService(const char* service_name,
 
 Engines::Salome_file_ptr 
 Engines_Parallel_Component_i::setOutputFileToService(const char* service_name, 
-                                                    const char* Salome_file_name) 
+                                                     const char* Salome_file_name) 
 {
   // Try to find the service, if it doesn't exist, we add it.
   _Service_file_map_it = _Output_Service_file_map.find(service_name);
@@ -923,8 +985,8 @@ Engines_Parallel_Component_i::setOutputFileToService(const char* service_name,
     // of the Salome_file and transmit his
     // reference to the other nodes.
     if (getMyRank() == 0) {
-       proxy = new Engines::Parallel_Salome_file_proxy_impl(CORBA::ORB::_duplicate(_orb),
-                                                            new paco_omni_fabrique());
+        proxy = new Engines::Parallel_Salome_file_proxy_impl(CORBA::ORB::_duplicate(_orb),
+                                                             new paco_omni_fabrique());
       proxy->copyGlobalContext(this); 
       PaCO::PacoTopology_t serveur_topo;
       serveur_topo.total = getTotalNode();
@@ -935,7 +997,7 @@ Engines_Parallel_Component_i::setOutputFileToService(const char* service_name,
 
       // We send the reference to all the nodes...
       Engines::Parallel_Component_var component_proxy = 
-       Engines::Parallel_Component::_narrow(InterfaceParallel_impl::_proxy);
+        Engines::Parallel_Component::_narrow(InterfaceParallel_impl::_proxy);
       component_proxy->send_parallel_proxy_object(proxy_ref);
 
       // Adding proxy into the map
@@ -952,30 +1014,30 @@ Engines_Parallel_Component_i::setOutputFileToService(const char* service_name,
     // into the proxy.
     for (int i = 0; i < getTotalNode(); i++) {
       if (i ==  getMyRank()) {
-       Parallel_Salome_file_i * servant = 
-         new Parallel_Salome_file_i(CORBA::ORB::_duplicate(_orb), 
-                                    proxy_ior.c_str(),
-                                    i);
-       servant->copyGlobalContext(this); 
-       
-       // We register the CORBA objet into the POA
-       servant->POA_PaCO::InterfaceParallel::_this();
-
-       // Register the servant
-       servant->deploy();
-
-       // Adding servant to the map
-       (*_map)[Salome_file_name] = servant;
+        Parallel_Salome_file_i * servant = 
+          new Parallel_Salome_file_i(CORBA::ORB::_duplicate(_orb), 
+                                     proxy_ior.c_str(),
+                                     i);
+        servant->copyGlobalContext(this); 
+        
+        // We register the CORBA objet into the POA
+        servant->POA_PaCO::InterfaceParallel::_this();
+
+        // Register the servant
+        servant->deploy();
+
+        // Adding servant to the map
+        (*_map)[Salome_file_name] = servant;
       }
 
       _my_com->paco_barrier();
       // start parallel object
       if (getMyRank() == 0) {
-       proxy->start();
-       _my_com->paco_barrier();
+        proxy->start();
+        _my_com->paco_barrier();
       }
       else
-       _my_com->paco_barrier();
+        _my_com->paco_barrier();
     }
 
     // Parallel_Salome_file is created and deployed
@@ -990,7 +1052,7 @@ Engines_Parallel_Component_i::setOutputFileToService(const char* service_name,
 
 Engines::Salome_file_ptr 
 Engines_Parallel_Component_i::getInputFileToService(const char* service_name, 
-                                                   const char* Salome_file_name) 
+                                                    const char* Salome_file_name) 
 {
   // Try to find the service, if it doesn't exist, we throw an exception.
   _Proxy_Service_file_map_it = _Proxy_Input_Service_file_map.find(service_name);
@@ -1018,7 +1080,7 @@ Engines_Parallel_Component_i::getInputFileToService(const char* service_name,
 
 Engines::Salome_file_ptr 
 Engines_Parallel_Component_i::getOutputFileToService(const char* service_name, 
-                                                    const char* Salome_file_name) 
+                                                     const char* Salome_file_name) 
 {
   // Try to find the service, if it doesn't exist, we throw an exception.
   _Proxy_Service_file_map_it = _Proxy_Output_Service_file_map.find(service_name);
@@ -1131,8 +1193,8 @@ Engines_Parallel_Component_i::get_parallel_proxy_object() {
 //=============================================================================
 void
 Engines_Parallel_Component_i::configureSalome_file(std::string service_name,
-                                                  std::string file_port_name,
-                                                  Engines::Parallel_Salome_file_proxy_impl * file) 
+                                                   std::string file_port_name,
+                                                   Engines::Parallel_Salome_file_proxy_impl * file) 
 {
   // By default this method does nothing
 }