File tree Expand file tree Collapse file tree 3 files changed +34
-4
lines changed Expand file tree Collapse file tree 3 files changed +34
-4
lines changed Original file line number Diff line number Diff line change @@ -75,11 +75,27 @@ bool Configuration::isRebootRequired() {
7575}
7676
7777void Configuration::setReadOnly () {
78- readOnly = true ;
78+ if (mutability == Mutability::ReadWrite) {
79+ mutability = Mutability::ReadOnly;
80+ } else {
81+ mutability = Mutability::None;
82+ }
7983}
8084
8185bool Configuration::isReadOnly () {
82- return readOnly;
86+ return mutability == Mutability::ReadOnly;
87+ }
88+
89+ bool Configuration::isReadable () {
90+ return mutability == Mutability::ReadWrite || mutability == Mutability::ReadOnly;
91+ }
92+
93+ void Configuration::setWriteOnly () {
94+ if (mutability == Mutability::ReadWrite) {
95+ mutability = Mutability::WriteOnly;
96+ } else {
97+ mutability = Mutability::None;
98+ }
8399}
84100
85101/*
Original file line number Diff line number Diff line change @@ -36,7 +36,15 @@ class Configuration {
3636 revision_t value_revision = 0 ; // write access counter; used to check if this config has been changed
3737private:
3838 bool rebootRequired = false ;
39- bool readOnly = false ;
39+
40+ enum class Mutability : uint8_t {
41+ ReadWrite,
42+ ReadOnly,
43+ WriteOnly,
44+ None
45+ };
46+ Mutability mutability = Mutability::ReadWrite;
47+
4048public:
4149 virtual ~Configuration ();
4250
@@ -60,6 +68,9 @@ class Configuration {
6068
6169 void setReadOnly ();
6270 bool isReadOnly ();
71+ bool isReadable ();
72+
73+ void setWriteOnly ();
6374};
6475
6576/*
Original file line number Diff line number Diff line change @@ -40,6 +40,9 @@ std::unique_ptr<JsonDoc> GetConfiguration::createConf(){
4040 MO_DBG_ERR (" invalid config" );
4141 continue ;
4242 }
43+ if (!container->getConfiguration (i)->isReadable ()) {
44+ continue ;
45+ }
4346 configurations.push_back (container->getConfiguration (i));
4447 }
4548 }
@@ -53,7 +56,7 @@ std::unique_ptr<JsonDoc> GetConfiguration::createConf(){
5356 }
5457 }
5558
56- if (res) {
59+ if (res && res-> isReadable () ) {
5760 configurations.push_back (res);
5861 } else {
5962 unknownKeys.push_back (key.c_str ());
You can’t perform that action at this time.
0 commit comments