Main Page Modules Class Hierarchy Compound List File List Compound Members

# envirext.h

    00001 //==========================================================================
    00002 //   ENVIREXT.H - header for
    00003 //                             OMNeT++
    00004 //            Discrete System Simulation in C++
    00005 //
    00006 //
    00007 //  Declaration of the following classes:
    00008 //    cOutputVectorManager  : actually records for cOutVector objects
    00009 //
    00010 //==========================================================================
    00011
    00012 /*--------------------------------------------------------------*
    00013   Copyright (C) 1992-2003 Andras Varga
    00014
    00015   This file is distributed WITHOUT ANY WARRANTY. See the file
    00016   `license' for details on this and other legal matters.
    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     // copy constructor and assignment unsupported, make them inaccessible and also leave unimplemented
    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     // copy constructor and assignment unsupported, make them inaccessible and also leave unimplemented
    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     // copy constructor and assignment unsupported, make them inaccessible and also leave unimplemented
    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