OMNeT++ Simulation Library
6.0.3
|
16 #ifndef __OMNETPP_CENVIR_H
17 #define __OMNETPP_CENVIR_H
21 #include "simkerneldefs.h"
22 #include "simtime_t.h"
23 #include "opp_string.h"
24 #include "clistener.h"
25 #include "clifecyclelistener.h"
28 namespace osg {
class Node; }
49 class cConfigurationEx;
56 #define EVCB cSimulation::getActiveEnvir()->suppressNotifications ? (void)0 : (*cSimulation::getActiveEnvir())
80 bool loggingEnabled =
true;
88 bool suppressNotifications =
false;
91 bool debugOnErrors =
false;
94 std::vector<cISimulationLifecycleListener*> listeners;
135 virtual void simulationEvent(
cEvent *event) = 0;
141 virtual void messageScheduled(
cMessage *msg) = 0;
147 virtual void messageCancelled(
cMessage *msg) = 0;
167 virtual void messageSendHop(
cMessage *msg,
cGate *srcGate) = 0;
173 virtual void endSend(
cMessage *msg) = 0;
179 virtual void messageCreated(
cMessage *msg) = 0;
192 virtual void messageDeleted(
cMessage *msg) = 0;
197 virtual void moduleReparented(
cModule *module,
cModule *oldparent,
int oldId) = 0;
205 virtual void componentMethodBegin(
cComponent *from,
cComponent *to,
const char *methodFmt, va_list va,
bool silent) = 0;
211 virtual void componentMethodEnd() = 0;
218 virtual void moduleCreated(
cModule *newmodule) = 0;
231 virtual void moduleDeleted(
cModule *module) = 0;
236 virtual void gateCreated(
cGate *newgate) = 0;
242 virtual void gateDeleted(
cGate *gate) = 0;
248 virtual void connectionCreated(
cGate *srcgate) = 0;
254 virtual void connectionDeleted(
cGate *srcgate) = 0;
260 virtual void displayStringChanged(
cComponent *component) = 0;
302 virtual void preconfigure(
cComponent *component) = 0;
310 virtual void configure(
cComponent *component) = 0;
316 virtual void readParameter(
cPar *parameter) = 0;
328 virtual bool isModuleLocal(
cModule *parentmod,
const char *modname,
int index) = 0;
352 virtual cXMLElement *getXMLDocument(
const char *filename,
const char *xpath=
nullptr) = 0;
375 virtual cXMLElement *getParsedXMLString(
const char *content,
const char *xpath=
nullptr) = 0;
390 virtual void forgetXMLDocument(
const char *filename) = 0;
404 virtual void forgetParsedXMLString(
const char *content) = 0;
415 virtual void flushXMLDocumentCache() = 0;
426 virtual void flushXMLParsedContentCache() = 0;
432 virtual unsigned getExtraStackForEnvir()
const = 0;
460 virtual std::string resolveResourcePath(
const char *fileName,
cComponentType *context=
nullptr) = 0;
472 virtual bool isGUI()
const = 0;
485 virtual bool isExpressMode()
const = 0;
491 virtual void bubble(
cComponent *component,
const char *text) = 0;
502 virtual void alert(
const char *msg) = 0;
507 _OPP_GNU_ATTRIBUTE(format(printf, 2, 3))
508 virtual
void printfmsg(const
char *fmt,...);
514 virtual std::
string gets(const
char *prompt, const
char *defaultReply=
nullptr) = 0;
521 virtual
bool askYesNo(const
char *prompt) = 0;
532 virtual
void getImageSize(const
char *imageName,
double& outWidth,
double& outHeight) = 0;
541 virtual
void getTextExtent(const
cFigure::Font& font, const
char *text,
double& outWidth,
double& outHeight,
double& outAscent) = 0;
554 virtual
void appendToImagePath(const
char *directory) = 0;
579 virtual
void loadImage(const
char *fileName, const
char *imageName=
nullptr) = 0;
598 virtual
cFigure::Rectangle getSubmoduleBounds(const
cModule *submodule) = 0;
620 virtual std::vector<
cFigure::Point> getConnectionLine(const
cGate *sourceGate) = 0;
636 virtual
double getZoomLevel(const
cModule *module) = 0;
644 virtual
double getAnimationTime() const = 0;
655 virtual
double getAnimationSpeed() const = 0;
664 virtual
double getRemainingAnimationHoldTime() const = 0;
674 virtual
int getNumRNGs() const = 0;
679 virtual
cRNG *getRNG(
int k) = 0;
699 virtual
void *registerOutputVector(const
char *modulename, const
char *vectorname) = 0;
704 virtual
void deregisterOutputVector(
void *vechandle) = 0;
709 virtual
void setVectorAttribute(
void *vechandle, const
char *name, const
char *value) = 0;
716 virtual
bool recordInOutputVector(
void *vechandle,
simtime_t t,
double value) = 0;
732 virtual
void recordScalar(
cComponent *component, const
char *name,
double value,
opp_string_map *attributes=
nullptr) = 0;
743 virtual
void recordParameter(
cPar *par) = 0;
748 virtual
void recordComponentType(
cComponent *component) = 0;
788 virtual std::ostream *getStreamForSnapshot() = 0;
793 virtual
void releaseStreamForSnapshot(std::ostream *os) = 0;
801 virtual
int getArgCount() const = 0;
806 virtual
char **getArgVector() const = 0;
811 virtual
int getParsimProcId() const = 0;
817 virtual
int getParsimNumPartitions() const = 0;
822 virtual
unsigned long getUniqueNumber() = 0;
828 virtual
void refOsgNode(osg::Node *scene) = 0;
834 virtual
void unrefOsgNode(osg::Node *scene) = 0;
849 virtual
bool idle() = 0;
858 virtual
void pausePoint() = 0;
874 virtual
bool ensureDebugger(
cRuntimeError *error =
nullptr) = 0;
This class represents modules in the simulation.
Definition: cmodule.h:48
Allows returning multiple values from the processMessage() method.
Definition: cchannel.h:33
int simsignal_t
Signal handle.
Definition: clistener.h:27
cEnvir()
Definition: cenvir.h:103
Represents a configuration suitable for use with the Envir library.
Definition: cconfiguration.h:304
cObject is a lightweight class which serves as the root of the OMNeT++ class hierarchy....
Definition: cobject.h:92
Represents the configuration, as accessed by the simulation kernel.
Definition: cconfiguration.h:76
Represents an event in the discrete event simulator.
Definition: cevent.h:46
This class holds various data that is captured when a particular log statement executes....
Definition: clog.h:376
Lightweight string-to-string map, used internally in some parts of OMNeT++.
Definition: opp_string.h:219
SimulationLifecycleEventType
Event type for cISimulationLifecycleListener's lifecycleEvent() method.
Definition: clifecyclelistener.h:28
virtual cModule * getCurrentEventModule()
Definition: cenvir.h:290
int64_t-based, base-10 fixed-point simulation time.
Definition: simtime.h:66
virtual void componentInitBegin(cComponent *component, int stage)
Definition: cenvir.h:126
virtual const char * getCurrentEventClassName()
Definition: cenvir.h:284
Options for the cSimpleModule::send() and cSimpleModule::sendDirect() calls.
Definition: csimplemodule.h:82
virtual ~cEnvir()
Definition: cenvir.h:108
virtual void undisposedObject(cObject *obj)
Definition: cenvir.h:269
Represents a module gate.
Definition: cgate.h:62
Abstract interface for random number generator classes.
Definition: crng.h:48
Represents a module or channel parameter.
Definition: cpar.h:70
virtual void objectDeleted(cObject *object)
Definition: cenvir.h:121
Common base class for cModuleType and cChannelType.
Definition: ccomponenttype.h:49
The message class in OMNeT++. cMessage objects may represent events, messages, jobs or other entities...
Definition: cmessage.h:95
Represents an XML element in an XML configuration file.
Definition: cxmlelement.h:75
Common base for module and channel classes.
Definition: ccomponent.h:49
virtual const char * getCurrentEventName()
Definition: cenvir.h:278
cStatistic is an abstract class for computing statistical properties of a random variable.
Definition: cstatistic.h:34
bool isLoggingEnabled() const
Definition: cenvir.h:478
Thrown when the simulation kernel or other components detect a runtime error.
Definition: cexception.h:286
cEnvir represents the "environment" or user interface of the simulation.
Definition: cenvir.h:75
Stores a (NED) property with its (possibly compound) value.
Definition: cproperty.h:38
A callback interface for receiving notifications at various stages simulations, including setting up,...
Definition: clifecyclelistener.h:186
A cEnvir that can be instantiated as a user interface, like Cmdenv and Tkenv.
Definition: cenvir.h:912