Chrysalis - Pattern
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"
7
8namespace 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 };
28}
29
30#endif //CHRYSALIS_OPTION_H
Argument(const OptionValue &value)
Definition Argument.h:14
void toggle()
Definition Option.cpp:17
static Option * createDefault(const std::string &name, bool isEnabled)
Definition Option.cpp:11
Definition ScopedNamedElementsContainer.h:8
Definition Argument.h:9
ScopedNamedElementsContainer< Option > OptionsContainer
Definition Option.h:27
Definition Option.h:9
bool value
Definition Option.h:11