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
43
class
core_IAlgorithm
:
public
core_OBJECT
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
53
core_IAlgorithm
(
core_ProgressEntry
progress,
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
92
mutable
core_ProgressEntry
m_progress
;
93
mutable
core_PlotterEntry
m_plotter
;
94
97
int
m_iStatusCode
;
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
src
core
base
core_IAlgorithm.h