18 #undef ARILES_API_VERSION 19 #define ARILES_API_VERSION 1 30 #ifndef ARILES_DISABLE 31 # define ARILES_ENABLED 34 # undef ARILES_INITIALIZE 35 # define ARILES_INITIALIZE "ariles/members/define_accessors.h" 38 # define ARILES_WRITE_NAMED_ENTRY(entry, name) writer(entry, name, param); 40 # define ARILES_WRITE_ENTRY_(entry) ARILES_WRITE_NAMED_ENTRY(entry##_, # entry) 41 # define ARILES_WRITE_ENTRY(entry) ARILES_WRITE_NAMED_ENTRY(entry, # entry) 43 # define ARILES_WRITE_PARENT(parent_class) parent_class::writeConfigEntries(writer, param); 46 # define ARILES_READ_NAMED_ENTRY(entry, name) reader(entry, name, param); 48 # define ARILES_READ_ENTRY_(entry) ARILES_READ_NAMED_ENTRY(entry##_, # entry); 49 # define ARILES_READ_ENTRY(entry) ARILES_READ_NAMED_ENTRY(entry, # entry); 51 # define ARILES_READ_PARENT(parent_class) parent_class::readConfigEntries(reader, param); 81 ariles::apply<ariles::defaults::Visitor>(*
this);
85 virtual void arilesFinalize() = 0;
98 virtual std::size_t getNumberOfEntries()
const = 0;
112 virtual const std::string &getConfigSectionID()
const = 0;
119 arilesVirtualVisit(visitor, parameters);
132 this->readConfig(reader, this->getConfigSectionID(), param);
138 this->readConfig(reader, this->getConfigSectionID(), this->getArilesConfigurableFlags());
151 # define ARILES_READ_CONFIG(NameType) \ 152 virtual void readConfig( \ 153 ariles::ReaderBase &reader, NameType node_name, const ariles::ReaderBase::Parameters ¶m) = 0; \ 154 void readConfig(ariles::ReaderBase &reader, NameType node_name) \ 156 ARILES_TRACE_FUNCTION; \ 157 this->readConfig(reader, node_name, this->getArilesConfigurableFlags()); \ 163 # undef ARILES_READ_CONFIG 172 # define ARILES_READ_CONFIG(InitializerType) \ 173 template <class t_Bridge, class t_ReaderInitializer> \ 174 void readConfig(InitializerType &reader_initializer) \ 176 ARILES_TRACE_FUNCTION; \ 177 typename t_Bridge::Reader reader(reader_initializer); \ 178 this->readConfig(reader, this->getConfigSectionID(), this->getArilesConfigurableFlags()); \ 180 template <class t_Bridge, class t_ReaderInitializer> \ 181 void readConfig(InitializerType &reader_initializer, const ariles::ConfigurableFlags ¶m) \ 183 ARILES_TRACE_FUNCTION; \ 184 typename t_Bridge::Reader reader(reader_initializer); \ 185 this->readConfig(reader, this->getConfigSectionID(), param); \ 191 # undef ARILES_READ_CONFIG 203 # define ARILES_READ_CONFIG(InitializerType, NameType) \ 204 template <class t_Bridge, class t_ReaderInitializer> \ 205 void readConfig(InitializerType &reader_initializer, NameType node_name) \ 207 ARILES_TRACE_FUNCTION; \ 208 typename t_Bridge::Reader reader(reader_initializer); \ 209 this->readConfig(reader, node_name, this->getArilesConfigurableFlags()); \ 211 template <class t_Bridge, class t_ReaderInitializer> \ 213 InitializerType &reader_initializer, NameType node_name, const ariles::ConfigurableFlags ¶m) \ 215 ARILES_TRACE_FUNCTION; \ 216 typename t_Bridge::Reader reader(reader_initializer); \ 217 this->readConfig(reader, node_name, param); \ 225 # undef ARILES_READ_CONFIG 230 # define ARILES_WRITE_CONFIG(InitializerType) \ 231 template <class t_Bridge, class t_WriterInitializer> \ 232 void writeConfig(InitializerType &writer_initializer) const \ 234 typename t_Bridge::Writer writer(writer_initializer); \ 235 this->writeConfig(writer, this->getArilesConfigurableFlags()); \ 237 template <class t_Bridge, class t_WriterInitializer> \ 238 void writeConfig(InitializerType &writer_initializer, const ariles::ConfigurableFlags ¶m) const \ 240 typename t_Bridge::Writer writer(writer_initializer); \ 241 this->writeConfig(writer, param); \ 247 # undef ARILES_WRITE_CONFIG 257 # define ARILES_WRITE_CONFIG(InitializerType, NameType) \ 258 template <class t_Bridge, class t_WriterInitializer> \ 259 void writeConfig(InitializerType &writer_initializer, NameType node_name) const \ 261 typename t_Bridge::Writer writer(writer_initializer); \ 262 this->writeConfig(writer, node_name, this->getArilesConfigurableFlags()); \ 264 template <class t_Bridge, class t_WriterInitializer> \ 266 InitializerType &writer_initializer, NameType node_name, const ariles::ConfigurableFlags ¶m) const \ 268 typename t_Bridge::Writer writer(writer_initializer); \ 269 this->writeConfig(writer, node_name, param); \ 277 # undef ARILES_WRITE_CONFIG 288 this->writeConfig(writer, this->getConfigSectionID(), param);
292 this->writeConfig(writer, this->getConfigSectionID(), this->getArilesConfigurableFlags());
302 # define ARILES_WRITE_CONFIG(NameType) \ 303 virtual void writeConfig( \ 304 ariles::WriterBase &writer, NameType node_name, const ariles::ConfigurableFlags ¶m) const = 0; \ 305 void writeConfig(ariles::WriterBase &writer, NameType node_name) const \ 307 this->writeConfig(writer, node_name, this->getArilesConfigurableFlags()); \ 313 # undef ARILES_WRITE_CONFIG 320 arilesVirtualVisit(visitor, param);
364 # define ARILES_DISABLED 376 ~StrictConfigurableBase()
381 virtual void finalize(){};
393 ~RelaxedConfigurableBase()
398 virtual void finalize(){};
415 virtual void finalize(){};
#define ARILES_TRACE_FUNCTION
virtual void writeConfigEntries(ariles::WriterBase &visitor, const ariles::WriterBase::Parameters ¶m) const
void readConfig(ariles::ReaderBase &reader, const ariles::ConfigurableFlags ¶m)
Read configuration (assuming the configuration node to be in the root).
virtual const ConfigurableFlags & getArilesConfigurableFlags() const
virtual void setDefaults()
void readConfig(ariles::ReaderBase &reader)
#define ARILES_READ_CONFIG(NameType)
Read configuration (assuming the configuration node to be in the root).
virtual const ConfigurableFlags & getArilesConfigurableFlags() const
void writeConfig(ariles::WriterBase &writer, const ariles::ConfigurableFlags ¶m) const
Write configuration.
~CommonConfigurableBase()
Protected destructor: prevent destruction of the child classes through a base pointer.
void writeConfig(ariles::WriterBase &writer) const
serialization::Features BridgeFlags
ariles::compare::Visitor::Parameters ComparisonParameters
virtual const ConfigurableFlags & getArilesConfigurableFlags() const
Default configurable base.
virtual void readConfigEntries(ariles::ReaderBase &visitor, const ariles::ReaderBase::Parameters ¶meters)
ariles::write::Visitor WriterBase
ariles::read::Visitor ReaderBase
#define ARILES_VISIBILITY_ATTRIBUTE
#define ARILES_WRITE_CONFIG(InitializerType)
Write configuration.