QUAOAR STUDIO // Mobius API
core_IAlgorithm.h
1 //-----------------------------------------------------------------------------
2 // Created on: July 2018
3 //-----------------------------------------------------------------------------
4 // Copyright (c) 2017-present, Sergey Slyadnev
5 // All rights reserved.
6 //
7 // Redistribution and use in source and binary forms, with or without
8 // modification, are permitted provided that the following conditions are met:
9 //
10 // * Redistributions of source code must retain the above copyright
11 // notice, this list of conditions and the following disclaimer.
12 // * Redistributions in binary form must reproduce the above copyright
13 // notice, this list of conditions and the following disclaimer in the
14 // documentation and/or other materials provided with the distribution.
15 // * Neither the name of Sergey Slyadnev nor the
16 // names of all contributors may be used to endorse or promote products
17 // derived from this software without specific prior written permission.
18 //
19 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22 // DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY
23 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 //-----------------------------------------------------------------------------
30 
31 #ifndef core_IAlgorithm_HeaderFile
32 #define core_IAlgorithm_HeaderFile
33 
34 // Core includes
35 #include <mobius/core_IPlotter.h>
36 #include <mobius/core_IProgressNotifier.h>
37 
38 namespace mobius {
39 
44 {
45 public:
46 
47  core_ProgressEntry& GetProgress() const { return m_progress; }
48  core_PlotterEntry& GetPlotter() const { return m_plotter; }
49 
50 protected:
51 
52  mobiusCore_EXPORT
54  core_PlotterEntry plotter);
55 
56 public:
57 
60  void SetStatusCode(const int status)
61  {
62  m_iStatusCode = status;
63  }
64 
66  int GetStatusCode() const
67  {
68  return m_iStatusCode;
69  }
70 
76  void AddStatusCode(const int statBit)
77  {
78  m_iStatusCode |= statBit;
79  }
80 
85  bool HasStatusCode(const int statBit) const
86  {
87  return (m_iStatusCode & statBit) > 0;
88  }
89 
90 protected:
91 
94 
98 
99 protected:
100 
101  core_IAlgorithm() : core_OBJECT() {}
102 
103 };
104 
105 }
106 
107 #endif
mobius
Defines an exception class C1 that inherits an exception class C2.
Definition: bspl_Decompose.h:41
mobius::core_IAlgorithm
Definition: core_IAlgorithm.h:43
mobius::core_IAlgorithm::SetStatusCode
void SetStatusCode(const int status)
Definition: core_IAlgorithm.h:60
mobius::core_IAlgorithm::m_progress
core_ProgressEntry m_progress
Progress Notifier.
Definition: core_IAlgorithm.h:92
mobius::core_PlotterEntry
Definition: core_IPlotter.h:252
mobius::core_OBJECT
Definition: core_OBJECT.h:66
mobius::core_ProgressEntry
Definition: core_IProgressNotifier.h:193
mobius::core_IAlgorithm::HasStatusCode
bool HasStatusCode(const int statBit) const
Definition: core_IAlgorithm.h:85
mobius::core_IAlgorithm::GetStatusCode
int GetStatusCode() const
Definition: core_IAlgorithm.h:66
mobius::core_IAlgorithm::m_plotter
core_PlotterEntry m_plotter
Imperative Plotter.
Definition: core_IAlgorithm.h:93
mobius::core_IAlgorithm::m_iStatusCode
int m_iStatusCode
Definition: core_IAlgorithm.h:97
mobius::core_IAlgorithm::AddStatusCode
void AddStatusCode(const int statBit)
Definition: core_IAlgorithm.h:76