00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __ENVIREXT_H
00020 #define __ENVIREXT_H
00021
00022 #include <iostream>
00023 #include "defs.h"
00024
00025 using std::ostream;
00026
00027 class cModule;
00028 class cStatistic;
00029 class cPar;
00030
00040 class cOutputVectorManager
00041 {
00042 private:
00043
00044 cOutputVectorManager(const cOutputVectorManager&);
00045 cOutputVectorManager& operator=(const cOutputVectorManager&);
00046
00047 public:
00050
00054 explicit cOutputVectorManager() {}
00055
00059 virtual ~cOutputVectorManager() {}
00061
00064
00068 virtual void startRun() = 0;
00069
00073 virtual void endRun() = 0;
00075
00078
00084 virtual void *registerVector(const char *modulename, const char *vectorname, int tuple) = 0;
00085
00089 virtual void deregisterVector(void *vechandle) = 0;
00090
00096 virtual bool record(void *vechandle, simtime_t t, double value) = 0;
00097
00103 virtual bool record(void *vechandle, simtime_t t, double value1, double value2) = 0;
00104
00109 virtual const char *fileName() const = 0;
00111 };
00112
00113
00124 class cOutputScalarManager
00125 {
00126 private:
00127
00128 cOutputScalarManager(const cOutputScalarManager&);
00129 cOutputScalarManager& operator=(const cOutputScalarManager&);
00130
00131 public:
00134
00138 explicit cOutputScalarManager() {}
00139
00143 virtual ~cOutputScalarManager() {}
00145
00148
00152 virtual void startRun() = 0;
00153
00157 virtual void endRun() = 0;
00159
00162
00166 virtual void recordScalar(cModule *module, const char *name, double value) = 0;
00167
00171 virtual void recordScalar(cModule *module, const char *name, const char *text) = 0;
00172
00176 virtual void recordScalar(cModule *module, const char *name, cStatistic *stats) = 0;
00177
00182 virtual const char *fileName() const = 0;
00184 };
00185
00186
00197 class cSnapshotManager
00198 {
00199 private:
00200
00201 cSnapshotManager(const cSnapshotManager&);
00202 cSnapshotManager& operator=(const cSnapshotManager&);
00203
00204 public:
00207
00211 explicit cSnapshotManager() {}
00212
00216 virtual ~cSnapshotManager() {}
00218
00221
00225 virtual void startRun() = 0;
00226
00230 virtual void endRun() = 0;
00232
00238 virtual ostream *getStreamForSnapshot() = 0;
00239
00243 virtual void releaseStreamForSnapshot(ostream *os) = 0;
00244
00249 virtual const char *fileName() const = 0;
00251 };
00252
00253 #endif
00254
00255