 |
OMNeT++ API 6.2.0
Discrete Event Simulation Library
|
|
16 #ifndef __OMNETPP_CWATCH_H
17 #define __OMNETPP_CWATCH_H
22 #include "cownedobject.h"
23 #include "cclassdescriptor.h"
51 virtual bool supportsAssignment()
const = 0;
57 virtual void assign(
const char *s) {}
75 virtual std::string
str()
const override
77 std::stringstream out;
98 virtual std::string
str()
const override
100 std::stringstream out;
104 virtual void assign(
const char *s)
override
106 std::stringstream in(s);
123 virtual std::string
str()
const override
125 return r ?
"true" :
"false";
127 virtual void assign(
const char *s)
override
129 r = *s!=
'0' && *s!=
'n' && *s!=
'N' && *s!=
'f' && *s!=
'F';
145 virtual std::string
str()
const override
147 std::stringstream out;
148 out <<
"'" << ((
unsigned char)r<32 ?
' ' : r) <<
"' (" << int(r) <<
")";
151 virtual void assign(
const char *s)
override
170 virtual const char *
getClassName()
const override {
return "unsigned char";}
172 virtual std::string
str()
const override
174 std::stringstream out;
175 out <<
"'" << (char)(r<
' ' ?
' ' : r) <<
"' (" << int(r) <<
")";
178 virtual void assign(
const char *s)
override
197 virtual const char *
getClassName()
const override {
return "std::string";}
199 virtual std::string str()
const override;
200 virtual void assign(
const char *s)
override;
209 friend class cWatchProxyDescriptor;
213 std::string typeName;
217 virtual const char *
getClassName()
const override {
return typeName.c_str();}
221 virtual void forEachChild(
cVisitor *visitor)
override;
222 cObject *getObjectPtr()
const {
return &r;}
231 friend class cWatchProxyDescriptor;
235 std::string typeName;
239 virtual const char *
getClassName()
const override {
return typeName.c_str();}
243 virtual void forEachChild(
cVisitor *visitor)
override;
244 cObject *getObjectPtr()
const {
return rp;}
256 std::function<T()> f;
261 virtual std::string
str()
const override { std::stringstream out; out << f();
return out.str(); }
264 inline cWatchBase *createWatch(
const char *varname,
short& d) {
265 return new cGenericAssignableWatch<short>(varname, d);
268 inline cWatchBase *createWatch(
const char *varname,
unsigned short& d) {
269 return new cGenericAssignableWatch<unsigned short>(varname, d);
272 inline cWatchBase *createWatch(
const char *varname,
int& d) {
273 return new cGenericAssignableWatch<int>(varname, d);
276 inline cWatchBase *createWatch(
const char *varname,
unsigned int& d) {
277 return new cGenericAssignableWatch<unsigned int>(varname, d);
280 inline cWatchBase *createWatch(
const char *varname,
long& d) {
281 return new cGenericAssignableWatch<long>(varname, d);
284 inline cWatchBase *createWatch(
const char *varname,
unsigned long& d) {
285 return new cGenericAssignableWatch<unsigned long>(varname, d);
288 inline cWatchBase *createWatch(
const char *varname,
float& d) {
289 return new cGenericAssignableWatch<float>(varname, d);
292 inline cWatchBase *createWatch(
const char *varname,
double& d) {
293 return new cGenericAssignableWatch<double>(varname, d);
296 inline cWatchBase *createWatch(
const char *varname,
bool& d) {
297 return new cWatch_bool(varname, d);
300 inline cWatchBase *createWatch(
const char *varname,
char& d) {
301 return new cWatch_char(varname, d);
304 inline cWatchBase *createWatch(
const char *varname,
unsigned char& d) {
305 return new cWatch_uchar(varname, d);
308 inline cWatchBase *createWatch(
const char *varname,
signed char& d) {
309 return new cWatch_char(varname, *(
char *)&d);
312 inline cWatchBase *createWatch(
const char *varname, std::string& v) {
313 return new cWatch_stdstring(varname, v);
318 inline cWatchBase *createWatch(
const char *varname, T& d) {
319 return new cGenericReadonlyWatch<T>(varname, d);
324 inline cWatchBase *createWatch_genericAssignable(
const char *varname, T& d) {
325 return new cGenericAssignableWatch<T>(varname, d);
329 inline cWatchBase *createWatch_cObject(
const char *varname,
const char *typeName, cObject& obj) {
330 return new cWatch_cObject(varname, typeName, obj);
334 inline cWatchBase *createComputedExpressionWatch(
const char *name, std::function<T()> f) {
335 return new cComputedExpressionWatch<T>(name, f);
345 inline cWatchBase *createWatch_cObjectPtr(
const char *varname,
const char *typeName, cObject *&refp, cObject *p) {
347 return new cWatch_cObjectPtr(varname, typeName, refp);
363 #define WATCH(variable) omnetpp::createWatch(#variable,(variable))
371 #define WATCH_RW(variable) omnetpp::createWatch_genericAssignable(#variable,(variable))
379 #define WATCH_OBJ(variable) omnetpp::createWatch_cObject(#variable, omnetpp::opp_typename(typeid(variable)), (variable))
387 #define WATCH_PTR(variable) omnetpp::createWatch_cObjectPtr(#variable, omnetpp::opp_typename(typeid(variable)), (cObject*&)(variable),(variable))
405 #define WATCH_EXPR(name, expression) omnetpp::createComputedExpressionWatch(name, std::function([=]() {return (expression);}))
415 #define WATCH_LAMBDA(name, lambdaFunction) omnetpp::createComputedExpressionWatch(name, std::function(lambdaFunction))
Abstract base class for class descriptors.
Definition: cclassdescriptor.h:39
virtual std::string str() const override
Definition: cwatch.h:261
Template Watch class, for any type that supports operator<<.
Definition: cwatch.h:67
virtual void assign(const char *s) override
Definition: cwatch.h:104
virtual std::string str() const override
Definition: cwatch.h:98
Watch class, specifically for char.
Definition: cwatch.h:137
cObject is a lightweight class which serves as the root of the OMNeT++ class hierarchy....
Definition: cobject.h:92
virtual const char * getClassName() const override
Definition: cwatch.h:73
virtual bool supportsAssignment() const override
Definition: cwatch.h:74
virtual bool supportsAssignment() const override
Definition: cwatch.h:219
virtual const char * getClassName() const override
Definition: cwatch.h:96
virtual const char * getClassName() const override
Definition: cwatch.h:217
Watch class, specifically for objects subclassed from cObject.
Definition: cwatch.h:207
Enables traversing the tree of (cObject-rooted) simulation objects.
Definition: cvisitor.h:56
virtual const char * getClassName() const override
Definition: cwatch.h:170
Watch class, specifically for pointers to objects subclassed from cObject.
Definition: cwatch.h:229
virtual std::string str() const override
Definition: cwatch.h:240
virtual void assign(const char *s)
Definition: cwatch.h:57
virtual cClassDescriptor * getDescriptor() const override
Definition: cwatch.h:242
virtual std::string str() const override
Definition: cwatch.h:75
virtual std::string str() const
cWatchBase(const char *name)
Definition: cwatch.h:43
virtual void assign(const char *s) override
Definition: cwatch.h:151
virtual bool supportsAssignment() const override
Definition: cwatch.h:97
virtual bool supportsAssignment() const override
Definition: cwatch.h:122
virtual std::string str() const override
Definition: cwatch.h:218
virtual const char * getClassName() const override
Definition: cwatch.h:259
virtual void assign(const char *s) override
Definition: cwatch.h:178
Watch class, specifically for std::string.
Definition: cwatch.h:191
virtual const char * getFullName() const
Definition: cobject.h:169
virtual std::string str() const override
Definition: cwatch.h:123
Template Watch class, for any type that supports operator<<, and operator>> for assignment.
Definition: cwatch.h:90
virtual void assign(const char *s) override
Definition: cwatch.h:127
Watch class, specifically for bool.
Definition: cwatch.h:115
virtual cClassDescriptor * getDescriptor() const override
Definition: cwatch.h:220
virtual const char * getClassName() const override
Definition: cwatch.h:239
Base class for cOwnedObject-based classes that do not wish to support assignment and duplication.
Definition: cownedobject.h:242
virtual const char * getClassName() const override
Definition: cwatch.h:197
virtual bool supportsAssignment() const override
Definition: cwatch.h:144
virtual std::string str() const override
Definition: cwatch.h:172
Watch class, specifically for unsigned char.
Definition: cwatch.h:164
virtual bool supportsAssignment() const override
Definition: cwatch.h:241
virtual const char * getClassName() const
const SIM_API char * opp_typename(const std::type_info &t)
Returns the name of a C++ type, correcting the quirks of various compilers.
virtual const char * getClassName() const override
Definition: cwatch.h:143
virtual bool supportsAssignment() const override
Definition: cwatch.h:171
virtual bool supportsAssignment() const override
Definition: cwatch.h:198
virtual std::string str() const override
Definition: cwatch.h:145
virtual const char * getClassName() const override
Definition: cwatch.h:121
virtual bool supportsAssignment() const override
Definition: cwatch.h:260
Helper class to make primitive types and non-cOwnedObject objects inspectable in Qtenv....
Definition: cwatch.h:35
Watch class for computed expressions. The watch will display the result of calling an encapsulated fu...
Definition: cwatch.h:253