Salome HOME
Join modifications from branch BR_DEBUG_3_2_0b1
[modules/geom.git] / src / GEOM / GEOM_IOperations.cxx
1 // Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
3 // 
4 // This library is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU Lesser General Public
6 // License as published by the Free Software Foundation; either 
7 // version 2.1 of the License.
8 // 
9 // This library is distributed in the hope that it will be useful 
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
12 // Lesser General Public License for more details.
13 //
14 // You should have received a copy of the GNU Lesser General Public  
15 // License along with this library; if not, write to the Free Software 
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
17 //
18 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 //
20 #include <Standard_Stream.hxx>
21
22 #include <GEOM_IOperations.hxx>
23
24 #include "utilities.h"
25 #include <OpUtil.hxx>
26 #include <Utils_ExceptHandlers.hxx>
27
28 #include <TDataStd_TreeNode.hxx>
29 #include <TDataStd_ChildNodeIterator.hxx>
30 #include <TDF_TagSource.hxx>
31
32 //=============================================================================
33 /*!
34  *  default constructor:
35  */
36 //=============================================================================
37
38 GEOM_IOperations::GEOM_IOperations(GEOM_Engine* theEngine, int theDocID)
39 : _engine(theEngine), _docID(theDocID)
40 {
41   _solver = new GEOM_Solver(theEngine);
42 }
43
44 //=============================================================================
45 /*!
46  *  destructor
47  */
48 //=============================================================================
49
50 GEOM_IOperations::~GEOM_IOperations()
51 {
52   delete _solver;
53   MESSAGE("GEOM_IOperations::~GEOM_IOperations");
54 }
55
56
57 //=============================================================================
58 /*!
59  *  StartOperation
60  */  
61 //=============================================================================   
62 void GEOM_IOperations::StartOperation()
63 {
64   Handle(TDocStd_Document) aDoc = _engine->GetDocument(_docID);
65   if(aDoc->GetUndoLimit() > 0) 
66     aDoc->NewCommand();
67 }
68
69  //=============================================================================
70  /*!
71   *  FinishOperation
72   */
73 //=============================================================================      
74 void GEOM_IOperations::FinishOperation()
75 {
76   Handle(TDocStd_Document) aDoc = _engine->GetDocument(_docID);
77   if(aDoc->GetUndoLimit() > 0) 
78     aDoc->CommitCommand();
79 }
80
81 //=============================================================================
82 /*!
83  *  AbortOperation
84  */
85 //=============================================================================   
86 void GEOM_IOperations::AbortOperation()
87 {
88   Handle(TDocStd_Document) aDoc = _engine->GetDocument(_docID);
89   aDoc->AbortCommand();
90 }
91    
92    
93 //=============================================================================
94 /*!
95  *  IsDone
96  */
97 //=============================================================================
98 bool GEOM_IOperations::IsDone()
99 {
100   return (_errorCode == OK);
101 }  
102
103