Salome HOME
Update copyright information
[modules/superv.git] / src / Supervision / ESNode_Impl.cxx
index cfaa8f3b1d4f182a343a15edf50c3f80d11f4e8e..5f43bff36c0de1026556818821b74aee15ac1bb5 100644 (file)
@@ -1,18 +1,36 @@
+//  Copyright (C) 2007-2008  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
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//  SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
+//  File   : ESNode_Impl.cxx
+//  Author : Jean Rahuel
+//  Module : SUPERV
+//
 using namespace std;
-//=============================================================================
-// File      : ESNode_Impl.cxx
-// Created   : 2003
-// Author    : Jean Rahuel
-// Project   : SALOME
-// $Header: 
-//=============================================================================
-
 #include <stdio.h>
 #include <fstream>
-#include <strstream>
+//#include <sstream>
 #include <string>
 
-#include "utilities.h"
+//#include "utilities.h"
 
 #include "ESNode_Impl.hxx"
 
@@ -31,10 +49,10 @@ ESNode_Impl::ESNode_Impl( CORBA::ORB_ptr orb ,
   GNode_Impl( orb , poa , contId , instanceName , interfaceName , aDataFlowEditor , FuncName , SUPERV::ListOfStrings() , NodeKindOfNode ) {
 //  MESSAGE( NodeName << " " );
   beginService( "ESNode_Impl::ESNode_Impl" );
-  if ( FuncName ) {
-    cout << "ESNode_Impl::GNode_Impl " << (void *) FuncName << " " << FuncName
-         << " " << strlen( FuncName ) << endl ;
-  }
+//  if ( FuncName ) {
+//    cout << "ESNode_Impl::GNode_Impl " << (void *) FuncName << " " << FuncName
+//         << " " << strlen( FuncName ) << endl ;
+//  }
   _thisObj = this ;
   _id = _poa->activate_object(_thisObj);
   _Orb = CORBA::ORB::_duplicate(orb);
@@ -76,25 +94,37 @@ ESNode_Impl::~ESNode_Impl() {
 void ESNode_Impl::destroy() {
   beginService( "ESNode_Impl::Destroy" );
   if ( DataFlowEditor()->IsEditing() ) {
+//    SUPERV::GNode_ptr aCoupled = SUPERV::GNode::_narrow( Coupled() ) ;
     if ( Delete() ) {
       _poa->deactivate_object(*_id) ;
-      CORBA::release(_poa) ;
+//      CORBA::release(_poa) ;
       delete(_id) ;
-      _thisObj->_remove_ref();
+//      _thisObj->_remove_ref();
+    }
+    else {
+      MESSAGE("ESNode_Impl::destroy ERROR ") ;
     }
+// destroy have to be used for the SwitchNode ==> destroy of the EndSwitchNode
+//    if ( !CORBA::is_nil( aCoupled ) ) {
+//      aCoupled->SetCoupled( "" ) ;
+//      aCoupled->destroy() ;
+//    }
   }
   endService( "ESNode_Impl::Destroy" );
 }
 
 bool ESNode_Impl::Delete() {
-//  beginService( "ESNode_Impl::Delete" );
+  beginService( "ESNode_Impl::Delete" );
   bool RetVal = false ;
   if ( DataFlowEditor()->IsEditing() ) {
+    DeletePorts() ;
     RetVal = DataFlowEditor()->RemoveNode( Name() ) ;
-    if ( RetVal )
-      RetVal = DataFlowEditor()->IsValid() ;
+// IsValid is done in SNode_Impl::Delete
+//    if ( RetVal ) {
+//      RetVal = DataFlowEditor()->IsValid() ;
+//    }
   }
-//  endService( "ESNode_Impl::Delete" );
+  endService( "ESNode_Impl::Delete" );
   return RetVal ;
 }