0024002: Overall code and build procedure refactoring -- automatic
[occt.git] / src / BOPAlgo / BOPAlgo_Algo.hxx
1 // Created by: Peter KURNEV
2 // Copyright (c) 2010-2014 OPEN CASCADE SAS
3 // Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE
4 // Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT,
5 //                         EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 //
7 // This file is part of Open CASCADE Technology software library.
8 //
9 // This library is free software; you can redistribute it and/or modify it under
10 // the terms of the GNU Lesser General Public License version 2.1 as published
11 // by the Free Software Foundation, with special exception defined in the file
12 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
13 // distribution for complete text of the license and disclaimer of any warranty.
14 //
15 // Alternatively, this file may be used under the terms of Open CASCADE
16 // commercial license or contractual agreement.
17
18 #ifndef _BOPAlgo_Algo_HeaderFile
19 #define _BOPAlgo_Algo_HeaderFile
20
21 #include <Standard.hxx>
22 #include <Standard_DefineAlloc.hxx>
23 #include <Standard_Handle.hxx>
24
25 #include <BOPCol_BaseAllocator.hxx>
26 #include <Standard_Integer.hxx>
27 #include <Standard_Boolean.hxx>
28 class Message_ProgressIndicator;
29
30
31 //! provides the root interface for algorithms
32 class BOPAlgo_Algo 
33 {
34 public:
35
36   DEFINE_STANDARD_ALLOC
37
38   
39   Standard_EXPORT static Standard_Boolean GetParallelMode();
40   
41   Standard_EXPORT static void SetParallelMode (const Standard_Boolean theNewMode);
42   
43   Standard_EXPORT virtual void Perform() = 0;
44   
45   Standard_EXPORT Standard_Integer ErrorStatus() const;
46   
47   Standard_EXPORT Standard_Integer WarningStatus() const;
48   
49   Standard_EXPORT const BOPCol_BaseAllocator& Allocator() const;
50   
51   //! Set the flag of parallel processing
52   //! if <theFlag> is true  the parallel processing is switched on
53   //! if <theFlag> is false the parallel processing is switched off
54   Standard_EXPORT void SetRunParallel (const Standard_Boolean theFlag);
55   
56   //! Returns the flag of parallel processing
57   Standard_EXPORT Standard_Boolean RunParallel() const;
58   
59   //! Set the Progress Indicator object.
60   Standard_EXPORT void SetProgressIndicator (const Handle(Message_ProgressIndicator)& theObj);
61
62
63
64
65 protected:
66
67   
68   Standard_EXPORT BOPAlgo_Algo();
69 Standard_EXPORT virtual ~BOPAlgo_Algo();
70   
71   Standard_EXPORT BOPAlgo_Algo(const BOPCol_BaseAllocator& theAllocator);
72   
73   Standard_EXPORT virtual void CheckData();
74   
75   Standard_EXPORT virtual void CheckResult();
76   
77   //! Breaks the execution if the break signal
78   //! is indicated by myProgressIndicator.
79   Standard_EXPORT void UserBreak() const;
80
81
82   BOPCol_BaseAllocator myAllocator;
83   Standard_Integer myErrorStatus;
84   Standard_Integer myWarningStatus;
85   Standard_Boolean myRunParallel;
86   Handle(Message_ProgressIndicator) myProgressIndicator;
87
88
89 private:
90
91
92
93
94
95 };
96
97
98
99
100
101
102
103 #endif // _BOPAlgo_Algo_HeaderFile