OMNeT++ Simulation Library
6.0.3
cexpression.h
1
//==========================================================================
2
// CEXPRESSION.H - part of
3
// OMNeT++/OMNEST
4
// Discrete System Simulation in C++
5
//
6
//==========================================================================
7
8
/*--------------------------------------------------------------*
9
Copyright (C) 1992-2017 Andras Varga
10
Copyright (C) 2006-2017 OpenSim Ltd.
11
12
This file is distributed WITHOUT ANY WARRANTY. See the file
13
`license' for details on this and other legal matters.
14
*--------------------------------------------------------------*/
15
16
#ifndef __OMNETPP_CEXPRESSION_H
17
#define __OMNETPP_CEXPRESSION_H
18
19
#include "cobject.h"
20
#include "cexception.h"
21
#include "cvalue.h"
22
23
namespace
omnetpp {
24
25
class
cXMLElement;
26
33
class
SIM_API
cExpression
34
{
35
public
:
39
class
SIM_API
Context
:
public
cObject
40
{
41
public
:
42
explicit
Context
(
cComponent
*component,
const
char
*baseDirectory,
const
char
*paramName=
nullptr
) :
43
component(component), baseDirectory(baseDirectory), paramName(paramName) {}
44
cComponent
*component =
nullptr
;
45
const
char
*baseDirectory =
nullptr
;
46
const
char
*paramName =
nullptr
;
47
};
48
49
public
:
52
56
explicit
cExpression
() {}
57
61
cExpression
(
const
cExpression
& other) =
default
;
62
66
virtual
~cExpression
() {}
67
71
cExpression
&
operator=
(
const
cExpression
& other) {
return
*
this
;}
72
76
virtual
cExpression
*dup()
const
= 0;
77
81
virtual
std::string
str
()
const
{
return
""
;}
83
90
virtual
cValue
evaluate(Context *context)
const
= 0;
91
96
virtual
bool
boolValue(Context *context)
const
= 0;
97
103
virtual
intval_t
intValue(Context *context,
const
char
*expectedUnit=
nullptr
)
const
= 0;
104
110
virtual
double
doubleValue(Context *context,
const
char
*expectedUnit=
nullptr
)
const
= 0;
111
116
virtual
std::string stringValue(Context *context)
const
= 0;
117
122
virtual
cXMLElement
*xmlValue(Context *context)
const
= 0;
123
129
virtual
cValue
evaluate(
cComponent
*contextComponent=
nullptr
)
const
;
130
137
virtual
bool
boolValue(
cComponent
*contextComponent=
nullptr
)
const
;
138
146
virtual
intval_t
intValue(
cComponent
*contextComponent=
nullptr
,
const
char
*expectedUnit=
nullptr
)
const
;
147
155
virtual
double
doubleValue(
cComponent
* contextComponent=
nullptr
,
const
char
*expectedUnit=
nullptr
)
const
;
156
163
virtual
std::string stringValue(
cComponent
*contextComponent=
nullptr
)
const
;
164
171
virtual
cXMLElement
*xmlValue(
cComponent
*contextComponent=
nullptr
)
const
;
173
183
virtual
void
parse(
const
char
*text) = 0;
184
189
virtual
int
compare(
const
cExpression
*other)
const
= 0;
190
195
virtual
bool
isAConstant
()
const
{
return
false
;}
196
201
virtual
std::string getSourceLocation()
const
= 0;
203
};
204
205
}
// namespace omnetpp
206
207
208
#endif
209
210
omnetpp::cExpression::isAConstant
virtual bool isAConstant() const
Definition:
cexpression.h:195
omnetpp::cObject
cObject is a lightweight class which serves as the root of the OMNeT++ class hierarchy....
Definition:
cobject.h:92
omnetpp::cValue
A variant-like value class used during evaluating NED expressions.
Definition:
cvalue.h:47
omnetpp::cExpression::~cExpression
virtual ~cExpression()
Definition:
cexpression.h:66
omnetpp::cExpression
Abstract base class for expression evaluators.
Definition:
cexpression.h:33
omnetpp::cExpression::str
virtual std::string str() const
Definition:
cexpression.h:81
omnetpp::cExpression::cExpression
cExpression()
Definition:
cexpression.h:56
omnetpp::cExpression::operator=
cExpression & operator=(const cExpression &other)
Definition:
cexpression.h:71
omnetpp::cExpression::Context
Contextual information for evaluating the expression.
Definition:
cexpression.h:39
omnetpp::intval_t
int64_t intval_t
Signed integer type which is guaranteed to be at least 64 bits wide. It is used throughout the librar...
Definition:
simkerneldefs.h:101
omnetpp::cXMLElement
Represents an XML element in an XML configuration file.
Definition:
cxmlelement.h:75
omnetpp::cComponent
Common base for module and channel classes.
Definition:
ccomponent.h:49
include
omnetpp
cexpression.h
Generated on Tue Jan 30 2024 20:11:34 for OMNeT++ Simulation Library by
1.8.17