crngmanager.h Source File

API: crngmanager.h Source File
API
crngmanager.h
1//==========================================================================
2// CRNGMANAGER.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_CRNGMANAGER_H
17#define __OMNETPP_CRNGMANAGER_H
18
19#include "cownedobject.h"
20
21namespace omnetpp {
22
23class cConfiguration;
25class cRNG;
26
43class SIM_API cIRngManager : public cNoncopyableOwnedObject
44{
45 public:
48
52
56 virtual ~cIRngManager();
58
61
65 virtual void configure(cConfiguration *cfg) = 0;
66
71 virtual void configureRngs(cComponent *component) = 0;
72
76 virtual int getNumRngs(const cComponent *component) const = 0;
77
81 virtual cRNG *getRng(const cComponent *component, int k) = 0;
82
88 virtual uint32_t getHash() const = 0;
90
93
95 virtual int getTotalNumRngs() const = 0;
96
101 virtual cRNG *getGlobalRng(int rngId) = 0;
103};
104
105
126class SIM_API cRngManager : public cIRngManager
127{
128 private:
129 cConfigurationEx *cfg = nullptr;
130 int numRNGs = 0;
131 cRNG **rngs = nullptr;
132
133 public:
136
138 virtual ~cRngManager();
139
142 virtual void configure(cConfiguration *cfg) override;
143 virtual void configureRngs(cComponent *component) override;
144 virtual int getNumRngs(const cComponent *component) const override;
145 virtual cRNG *getRng(const cComponent *component, int k) override;
146 virtual uint32_t getHash() const override;
147 virtual int getTotalNumRngs() const override;
148 virtual cRNG *getGlobalRng(int rngId) override;
150};
151
152} // namespace omnetpp
153
154#endif
155
156
Common base for module and channel classes.
Definition ccomponent.h:51
Represents a configuration suitable for use with the Envir library.
Definition cconfiguration.h:305
Represents the configuration, as accessed by the simulation kernel.
Definition cconfiguration.h:77
cIRngManager()
Definition crngmanager.h:51
virtual int getTotalNumRngs() const =0
virtual cRNG * getGlobalRng(int rngId)=0
virtual uint32_t getHash() const =0
virtual void configure(cConfiguration *cfg)=0
virtual int getNumRngs(const cComponent *component) const =0
virtual void configureRngs(cComponent *component)=0
virtual cRNG * getRng(const cComponent *component, int k)=0
Abstract interface for random number generator classes.
Definition crng.h:49
virtual cRNG * getRng(const cComponent *component, int k) override
virtual void configureRngs(cComponent *component) override
virtual cRNG * getGlobalRng(int rngId) override
cRngManager()
Definition crngmanager.h:135
virtual uint32_t getHash() const override
virtual int getTotalNumRngs() const override
virtual void configure(cConfiguration *cfg) override
virtual int getNumRngs(const cComponent *component) const override