Chrysalis - Pattern
Toggle main menu visibility
Loading...
Searching...
No Matches
Option.h
Go to the documentation of this file.
1
#ifndef CHRYSALIS_OPTION_H
2
#define CHRYSALIS_OPTION_H
3
4
#include "
BaseNamedElement.h
"
5
#include "
arguments/Argument.h
"
6
#include "
ScopedNamedElementsContainer.h
"
7
8
namespace
Chrysalis
{
9
struct
OptionValue
{
10
explicit
operator
bool()
const
;
11
bool
value
;
12
};
13
class
Option:
public
BaseNamedElement
,
public
Argument
<OptionValue> {
14
explicit
Option():
Argument
({
false
}) {};
15
friend
boost::serialization::access;
16
template
<
class
Archive>
17
void
serialize(Archive& archive,
const
unsigned
int
) {
18
archive & boost::serialization::base_object<BaseNamedElement>(*
this
);
19
archive & boost::serialization::base_object<Argument>(*
this
);
20
}
21
public
:
22
explicit
Option(
const
std::string& name);
23
static
Option*
createDefault
(
const
std::string& name,
bool
isEnabled);
24
25
void
toggle
();
26
};
27
using
OptionsContainer
=
ScopedNamedElementsContainer<Option>
;
28
}
29
30
#endif
//CHRYSALIS_OPTION_H
Argument.h
BaseNamedElement.h
ScopedNamedElementsContainer.h
Chrysalis::Argument< OptionValue >::Argument
Argument(const OptionValue &value)
Definition
Argument.h:14
Chrysalis::BaseNamedElement::BaseNamedElement
BaseNamedElement()=default
Chrysalis::Option::toggle
void toggle()
Definition
Option.cpp:17
Chrysalis::Option::createDefault
static Option * createDefault(const std::string &name, bool isEnabled)
Definition
Option.cpp:11
Chrysalis::ScopedNamedElementsContainer
Definition
ScopedNamedElementsContainer.h:8
Chrysalis
Definition
Argument.h:9
Chrysalis::OptionsContainer
ScopedNamedElementsContainer< Option > OptionsContainer
Definition
Option.h:27
Chrysalis::OptionValue
Definition
Option.h:9
Chrysalis::OptionValue::value
bool value
Definition
Option.h:11
pattern
include
Option.h
Generated by
1.17.0