32#ifndef defineDebugSwitch_H
33#define defineDebugSwitch_H
84#define registerTemplateDebugSwitchWithName(Type,Name) \
86 const Foam::RegisterDebugSwitch<Type> \
87 Foam::RegisterDebugSwitch<Type>::registerDebugSwitch(Name)
91#define registerDebugSwitchWithName(Type,Tag,Name) \
92 class add##Tag##ToDebug \
94 public ::Foam::simpleRegIOobject \
98 explicit add##Tag##ToDebug(const char* name) \
100 ::Foam::simpleRegIOobject(::Foam::debug::addDebugObject, name) \
103 virtual ~add##Tag##ToDebug() = default; \
105 virtual void readData(::Foam::Istream& is) \
110 virtual void writeData(::Foam::Ostream& os) const \
115 add##Tag##ToDebug(const add##Tag##ToDebug&) = delete; \
116 void operator=(const add##Tag##ToDebug&) = delete; \
118 add##Tag##ToDebug add##Tag##ToDebug_(Name)
122#define defineDebugSwitchWithName(Type, Name, Value) \
123 int Type::debug(::Foam::debug::debugSwitch(Name, Value))
126#define defineDebugSwitch(Type, Value) \
127 defineDebugSwitchWithName(Type, Type::typeName_(), Value); \
128 registerDebugSwitchWithName(Type, Type, Type::typeName_())
131#define defineTemplateDebugSwitchWithName(Type, Name, Value) \
133 defineDebugSwitchWithName(Type, Name, Value); \
134 registerTemplateDebugSwitchWithName(Type, Name)
137#define defineTemplate2DebugSwitchWithName(Type, Name, Value) \
139 defineDebugSwitchWithName(Type, Name, Value); \
140 registerTemplateDebugSwitchWithName(Type, Name)
144#define defineTemplateDebugSwitch(Type, Value) \
145 defineTemplateDebugSwitchWithName(Type, #Type, Value)
148#define defineNamedTemplateDebugSwitch(Type, Value) \
149 defineTemplateDebugSwitchWithName(Type, Type::typeName_(), Value)
154#define defineTemplate2DebugSwitch(Type, Value) \
155 defineTemplate2DebugSwitchWithName(Type, #Type, Value)
158#define defineNamedTemplate2DebugSwitch(Type, Value) \
159 defineTemplate2DebugSwitchWithName(Type, Type::typeName_(), Value)
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Define the debug information, lookup as name.
virtual ~RegisterDebugSwitch()=default
RegisterDebugSwitch(const char *name)
RegisterDebugSwitch(const RegisterDebugSwitch< Type > &)=delete
No copy construct.
void operator=(const RegisterDebugSwitch< Type > &)=delete
No copy assignment.
virtual void readData(Istream &is)
Read.
static const RegisterDebugSwitch registerDebugSwitch
The unique RegisterDebugSwitch object.
virtual void writeData(Ostream &os) const
Write.
Abstract base class for registered object with I/O. Used in debug symbol registration.
#define defineTemplateDebugSwitch(Type, Value)
Define the debug information for templates.
#define defineTemplate2DebugSwitch(Type, Value)
Define the debug information for templates.
OBJstream os(runTime.globalPath()/outputName)
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for INVALID.