OMSimulatorLib
The OMSimulator project is a FMI-based co-simulation environment that supports ordinary (i.e., non-delayed) and TLM connections.
src
OMSimulatorLib
Option.h
Go to the documentation of this file.
1
/*
2
* This file is part of OpenModelica.
3
*
4
* Copyright (c) 1998-CurrentYear, Open Source Modelica Consortium (OSMC),
5
* c/o Linköpings universitet, Department of Computer and Information Science,
6
* SE-58183 Linköping, Sweden.
7
*
8
* All rights reserved.
9
*
10
* THIS PROGRAM IS PROVIDED UNDER THE TERMS OF GPL VERSION 3 LICENSE OR
11
* THIS OSMC PUBLIC LICENSE (OSMC-PL) VERSION 1.2.
12
* ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS PROGRAM CONSTITUTES
13
* RECIPIENT'S ACCEPTANCE OF THE OSMC PUBLIC LICENSE OR THE GPL VERSION 3,
14
* ACCORDING TO RECIPIENTS CHOICE.
15
*
16
* The OpenModelica software and the Open Source Modelica
17
* Consortium (OSMC) Public License (OSMC-PL) are obtained
18
* from OSMC, either from the above address,
19
* from the URLs: http://www.ida.liu.se/projects/OpenModelica or
20
* http://www.openmodelica.org, and in the OpenModelica distribution.
21
* GNU version 3 is obtained from: http://www.gnu.org/copyleft/gpl.html.
22
*
23
* This program is distributed WITHOUT ANY WARRANTY; without
24
* even the implied warranty of MERCHANTABILITY or FITNESS
25
* FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH
26
* IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS OF OSMC-PL.
27
*
28
* See the full OSMC Public License conditions for more details.
29
*
30
*/
31
32
#ifndef _OMS_OPTION_H_
33
#define _OMS_OPTION_H_
34
35
namespace
oms
36
{
37
template
<
typename
T>
38
class
Option
39
{
40
public
:
41
Option<T>
() :
some
(false) {}
42
Option<T>
(T
value
) :
some
(true),
value
(
value
) {}
43
Option<T>
(
Option<T>
const
& rhs) :
some
(rhs.
some
),
value
(rhs.
value
) {}
44
~
Option<T>
() {}
45
46
Option<T>
&
operator=
(
Option<T>
const
& rhs) {this->
some
= rhs.
some
; this->
value
= rhs.
value
;
return
*
this
;}
47
Option<T>
&
operator=
(T
const
& rhs) {this->
some
=
true
; this->
value
= rhs;
return
*
this
;}
48
49
inline
bool
isSome
()
const
{
return
some
;}
50
inline
bool
isNone
()
const
{
return
!
isSome
();}
51
T
getValue
()
const
{
return
value
;}
52
void
setValue
(
const
T&
value
) {
some
=
true
; this->value =
value
;}
53
void
setNone
() {
some
=
false
;}
54
55
private
:
56
bool
some
;
57
T
value
;
58
};
59
}
60
61
#endif
oms
Definition:
AlgLoop.h:44
oms::Option::getValue
T getValue() const
Definition:
Option.h:51
oms::Option::operator=
Option< T > & operator=(Option< T > const &rhs)
Definition:
Option.h:46
oms::Option::some
bool some
Definition:
Option.h:56
oms::Option::value
T value
Definition:
Option.h:57
oms::Option::setValue
void setValue(const T &value)
Definition:
Option.h:52
oms::Option::isNone
bool isNone() const
Definition:
Option.h:50
oms::Option::setNone
void setNone()
Definition:
Option.h:53
oms::Option::operator=
Option< T > & operator=(T const &rhs)
Definition:
Option.h:47
oms::Option::isSome
bool isSome() const
Definition:
Option.h:49
oms::Option
Definition:
Option.h:38
Generated by
1.8.17