envirext.h Source File¶

API: envirext.h Source File
API
envirext.h
1//==========================================================================
2// ENVIREXT.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_ENVIREXT_H
17#define __OMNETPP_ENVIREXT_H
18
19#include <iostream>
20#include "simkerneldefs.h"
21#include "opp_string.h"
22#include "simtime_t.h"
23#include "cobject.h"
24#include "simtime_t.h"
25#include "opp_string.h"
26#include "clifecyclelistener.h"
27
28namespace omnetpp {
29
30class cModule;
31class cStatistic;
32class cEvent;
33class cMessage;
34class cGate;
35struct SendOptions;
36struct ChannelResult;
37
59class SIM_API cIOutputVectorManager : public cObject, public cISimulationLifecycleListener, noncopyable
60{
61 protected:
65 virtual void lifecycleEvent(SimulationLifecycleEventType eventType, cObject *details) override;
66
67 public:
70
75
81
84
88 virtual void startRun() = 0;
89
93 virtual void endRun() = 0;
95
98
105 virtual void *registerVector(const char *modulename, const char *vectorname, opp_string_map *attributes=nullptr) = 0;
106
112 virtual void deregisterVector(void *vechandle) = 0;
113
121 virtual bool record(void *vechandle, simtime_t t, double value) = 0;
122
127 virtual const char *getFileName() const = 0;
128
132 virtual void flush() = 0;
134};
135
136
158class SIM_API cIOutputScalarManager : public cObject, public cISimulationLifecycleListener, noncopyable
159{
160 protected:
164 virtual void lifecycleEvent(SimulationLifecycleEventType eventType, cObject *details) override;
165
166 public:
169
174
180
183
187 virtual void startRun() = 0;
188
192 virtual void endRun() = 0;
194
197
202 virtual bool recordScalar(cComponent *component, const char *name, double value, opp_string_map *attributes=nullptr) = 0;
203
209 virtual bool recordStatistic(cComponent *component, const char *name, cStatistic *statistic, opp_string_map *attributes=nullptr) = 0;
210
215 virtual bool recordParameter(cPar *par) = 0;
216
221 virtual bool recordComponentType(cComponent *component) = 0;
222
227 virtual const char *getFileName() const = 0;
228
232 virtual void flush() = 0;
234};
235
236
258class SIM_API cISnapshotManager : public cObject, public cISimulationLifecycleListener, noncopyable
259{
260 protected:
264 virtual void lifecycleEvent(SimulationLifecycleEventType eventType, cObject *details) override;
265
266 public:
269
273 explicit cISnapshotManager() {}
274
280
283
287 virtual void startRun() = 0;
288
292 virtual void endRun() = 0;
294
297
300 virtual std::ostream *getStreamForSnapshot() = 0;
301
305 virtual void releaseStreamForSnapshot(std::ostream *os) = 0;
306
311 virtual const char *getFileName() const = 0;
313};
314
315
337class SIM_API cIEventlogManager : public cObject, noncopyable
338{
339 public:
342
346 explicit cIEventlogManager() {}
347
353
356
365 virtual void resume() = 0;
366
370 virtual void suspend() = 0;
371
375 virtual void flush() = 0;
376
381 virtual const char *getFileName() const = 0;
382
383 //TODO this one could be removed from the interface by invoking it via the LF_ON_RUN_END lifecycle event, but it needs to send more details
384 virtual void endRun(bool isError, int resultCode, const char *message) = 0;
386
389 virtual void simulationEvent(cEvent *event) = 0;
390 virtual void bubble(cComponent *component, const char *text) = 0;
391 virtual void messageScheduled(cMessage *msg) = 0;
392 virtual void messageCancelled(cMessage *msg) = 0;
393 virtual void beginSend(cMessage *msg, const SendOptions& options) = 0;
394 virtual void messageSendDirect(cMessage *msg, cGate *toGate, const ChannelResult& result) = 0;
395 virtual void messageSendHop(cMessage *msg, cGate *srcGate) = 0;
396 virtual void messageSendHop(cMessage *msg, cGate *srcGate, const ChannelResult& result) = 0;
397 virtual void endSend(cMessage *msg) = 0;
398 virtual void messageCreated(cMessage *msg) = 0;
399 virtual void messageCloned(cMessage *msg, cMessage *clone) = 0;
400 virtual void messageDeleted(cMessage *msg) = 0;
401 virtual void moduleReparented(cModule *module, cModule *oldparent, int oldId) = 0;
402 virtual void componentMethodBegin(cComponent *from, cComponent *to, const char *methodText) = 0;
403 virtual void componentMethodEnd() = 0;
404 virtual void moduleCreated(cModule *newmodule) = 0;
405 virtual void moduleDeleted(cModule *module) = 0;
406 virtual void gateCreated(cGate *newgate) = 0;
407 virtual void gateDeleted(cGate *gate) = 0;
408 virtual void connectionCreated(cGate *srcgate) = 0;
409 virtual void connectionDeleted(cGate *srcgate) = 0;
410 virtual void displayStringChanged(cComponent *component) = 0;
411 virtual void logLine(const char *prefix, const char *line, int lineLength) = 0;
412 virtual void stoppedWithException(bool isError, int resultCode, const char *message) = 0;
414};
415
416} // namespace omnetpp
417
418
419#endif
420
421
Common base for module and channel classes.
Definition ccomponent.h:51
Represents an event in the discrete event simulator.
Definition cevent.h:47
Represents a module gate.
Definition cgate.h:63
virtual void suspend()=0
virtual void flush()=0
virtual ~cIEventlogManager()
Definition envirext.h:351
virtual void resume()=0
virtual const char * getFileName() const =0
cIEventlogManager()
Definition envirext.h:346
virtual const char * getFileName() const =0
virtual bool recordScalar(cComponent *component, const char *name, double value, opp_string_map *attributes=nullptr)=0
virtual bool recordStatistic(cComponent *component, const char *name, cStatistic *statistic, opp_string_map *attributes=nullptr)=0
virtual ~cIOutputScalarManager()
Definition envirext.h:178
virtual void lifecycleEvent(SimulationLifecycleEventType eventType, cObject *details) override
cIOutputScalarManager()
Definition envirext.h:173
virtual bool recordComponentType(cComponent *component)=0
virtual bool recordParameter(cPar *par)=0
virtual void * registerVector(const char *modulename, const char *vectorname, opp_string_map *attributes=nullptr)=0
virtual const char * getFileName() const =0
cIOutputVectorManager()
Definition envirext.h:74
virtual ~cIOutputVectorManager()
Definition envirext.h:79
virtual void lifecycleEvent(SimulationLifecycleEventType eventType, cObject *details) override
virtual void deregisterVector(void *vechandle)=0
virtual bool record(void *vechandle, simtime_t t, double value)=0
A callback interface for receiving notifications at various stages simulations, including setting up,...
Definition clifecyclelistener.h:187
virtual ~cISnapshotManager()
Definition envirext.h:278
virtual std::ostream * getStreamForSnapshot()=0
cISnapshotManager()
Definition envirext.h:273
virtual const char * getFileName() const =0
virtual void startRun()=0
virtual void releaseStreamForSnapshot(std::ostream *os)=0
virtual void lifecycleEvent(SimulationLifecycleEventType eventType, cObject *details) override
virtual void endRun()=0
The message class in OMNeT++. cMessage objects may represent events, messages, jobs or other entities...
Definition cmessage.h:96
This class represents modules in the simulation.
Definition cmodule.h:49
cObject()
Definition cobject.h:124
Represents a module or channel parameter.
Definition cpar.h:71
cStatistic is an abstract class for computing statistical properties of a random variable.
Definition cstatistic.h:35
Lightweight string-to-string map, used internally in some parts of OMNeT++.
Definition opp_string.h:220
SimulationLifecycleEventType
Event type for cISimulationLifecycleListener's lifecycleEvent() method.
Definition clifecyclelistener.h:29
SimTime simtime_t
Represents simulation time.
Definition simtime_t.h:40
Allows returning multiple values from the processMessage() method.
Definition cchannel.h:34
Options for the cSimpleModule::send() and cSimpleModule::sendDirect() calls.
Definition csimplemodule.h:82