5#ifndef RINGERSELECTORTOOLS_TOOLS_RINGERIOVARDEPOBJ_H
6#define RINGERSELECTORTOOLS_TOOLS_RINGERIOVARDEPOBJ_H
98#define RINGER_IO_VARDEP_BASE(self) \
101 RINGER_DEFINE_PROCEDURE(self) \
103 static void read(self *newObj, \
104 TDirectory *configDir, \
105 unsigned version ); \
107 virtual void write(TDirectory *configDir, const char* idxStr = "") \
113#define RINGER_IO_VARDEP_BASE_NOMEMBER(self) \
116 RINGER_DEFINE_NOMEMBER_PROCEDURE(self) \
118 static void read(self *, \
122 virtual void write(TDirectory *, const char*) const \
134#define RINGER_IO_VARDEP_OBJ(self, base) \
137 typedef base base_t; \
139 template <typename T = const char*> \
140 static T procType() \
142 return base::template procType<T>(); \
145 virtual std::string name() const \
148 return this->RingerIOVarDepObj<self>::name(); \
151 void print(MSG::Level lvl) const \
154 this->base_t::print(lvl); \
157 virtual void write(TDirectory *baseDir, const char* idxStr = "") const \
160 this->RingerIOVarDepObj<self>::write(baseDir, idxStr); \
163 static self* read(TDirectory *configDir){ \
164 return RingerIOVarDepObj<self>::read(configDir); \
167 typedef typename Ringer::template RingerProcedureType<base>:: \
168 baseInterface_t baseInterface_t; \
170 using baseInterface_t::procType;
193template <
class CRTP >
214 static CRTP*
read(TDirectory *configDir);
219 void write(TDirectory *baseDir,
const char* idxStr=
"")
227#ifndef INCLUDE_HEADER_ONLY
std::string name() const
Retrieve name for this RingerIOVarDepObj.
RingerIOVarDepObj()
Typedef to CRTP type:
static CRTP * read(TDirectory *configDir)
Read Ringer procedure from configuration dir.
void write(TDirectory *baseDir, const char *idxStr="") const
Write Ringer procedure to configuration directory.
VariableDependency()=default
Ctor for independent.
Namespace dedicated for Ringer utilities.