ccomponent.h Source File¶
|
API
|
ccomponent.h
55 friend class cChannel; // allow access to FL_INITIALIZED, FL_DELETING and releaseLocalListeners()
56 friend class cModule; // allow access to FL_INITIALIZED, FL_DELETING, releaseLocalListeners() and repairSignalFlags()
57 friend class cSimpleModule; // allow access to FL_INITIALIZED, FL_DELETING, releaseLocalListeners() and repairSignalFlags()
69 FL_DELETING = 1 << 4, // module or channel is being deleted (via deleteModule(), disconnect(), etc.)
70 FL_DISPSTR_CHECKED = 1 << 5, // for hasDisplayString(): whether the FL_DISPSTR_NOTEMPTY flag is valid
84 short rngMapSize; // size of the rngMap array (RNGs with index >= rngMapSize are mapped one-to-one to global RNGs)
109 static bool gt(const SignalListenerList& e1, const SignalListenerList& e2) {return e1.signalID > e2.signalID;}
122 } *signalNameMapping; // must be dynamically allocated on first access so that registerSignal() can be invoked from static initialization code
126 static std::vector<int> signalListenerCounts; // index: signalID, value: number of listeners anywhere
153 const SignalListenerList& getListenerList(int k) const {return (*signalTable)[k];} // for inspectors
154 int getSignalTableSize() const {return signalTable ? signalTable->size() : 0;} // for inspectors
204 // internal: clears per-run signals-related data structures; to be invoked before each simulation run
212 // free bit indices. Result is remembered and returned in subsequent calls (until clearSignalState())
215 // internal: controls whether signals should be validated against @signal declarations in NED files
583 const cPar& par(const char *parname) const {return const_cast<cComponent *>(this)->par(parname);}
631 virtual double uniform(double a, double b, int rng=0) const {return omnetpp::uniform(getRNG(rng), a, b);}
636 virtual SimTime uniform(SimTime a, SimTime b, int rng=0) const {return uniform(a.dbl(), b.dbl(), rng);}
645 virtual double exponential(double mean, int rng=0) const {return omnetpp::exponential(getRNG(rng), mean);};
650 virtual SimTime exponential(SimTime mean, int rng=0) const {return exponential(mean.dbl(), rng);}
660 virtual double normal(double mean, double stddev, int rng=0) const {return omnetpp::normal(getRNG(rng), mean, stddev);};
665 virtual SimTime normal(SimTime mean, SimTime stddev, int rng=0) const {return normal(mean.dbl(), stddev.dbl(), rng);}
682 virtual double truncnormal(double mean, double stddev, int rng=0) const {return omnetpp::truncnormal(getRNG(rng), mean, stddev);};
687 virtual SimTime truncnormal(SimTime mean, SimTime stddev, int rng=0) const {return truncnormal(mean.dbl(), stddev.dbl(), rng);}
724 virtual double gamma_d(double alpha, double theta, int rng=0) const {return omnetpp::gamma_d(getRNG(rng), alpha, theta);};
738 virtual double beta(double alpha1, double alpha2, int rng=0) const {return omnetpp::beta(getRNG(rng), alpha1, alpha2);};
758 virtual double erlang_k(unsigned int k, double mean, int rng=0) const {return omnetpp::erlang_k(getRNG(rng), k, mean);};
775 virtual double chi_square(unsigned int k, int rng=0) const {return omnetpp::chi_square(getRNG(rng), k);};
788 virtual double student_t(unsigned int i, int rng=0) const {return omnetpp::student_t(getRNG(rng), i);};
804 virtual double cauchy(double a, double b, int rng=0) const {return omnetpp::cauchy(getRNG(rng), a, b);};
815 virtual double triang(double a, double b, double c, int rng=0) const {return omnetpp::triang(getRNG(rng), a, b, c);};
828 virtual double lognormal(double m, double w, int rng=0) const {return omnetpp::lognormal(getRNG(rng), m, w);}
849 virtual double weibull(double a, double b, int rng=0) const {return omnetpp::weibull(getRNG(rng), a, b);};
860 virtual double pareto_shifted(double a, double b, double c, int rng=0) const {return omnetpp::pareto_shifted(getRNG(rng), a, b, c);};
873 virtual int intuniform(int a, int b, int rng=0) const {return omnetpp::intuniform(getRNG(rng), a, b);};
882 virtual int intuniformexcl(int a, int b, int rng=0) const {return omnetpp::intuniformexcl(getRNG(rng), a, b);};
907 virtual int binomial(int n, double p, int rng=0) const {return omnetpp::binomial(getRNG(rng), n, p);};
935 virtual int negbinomial(int n, double p, int rng=0) const {return omnetpp::negbinomial(getRNG(rng), n, p);};
952 virtual int poisson(double lambda, int rng=0) const {return omnetpp::poisson(getRNG(rng), lambda);};
1016 virtual void emit(simsignal_t signalID, const cObject *obj, cObject *details = nullptr) { emit(signalID, const_cast<cObject *>(obj), details); }
1019 virtual void emit(simsignal_t signalID, char c, cObject *details = nullptr) {doEmit(signalID,(intval_t)c, details);}
1022 virtual void emit(simsignal_t signalID, unsigned char c, cObject *details = nullptr) {doEmit(signalID,(uintval_t)c, details);}
1025 virtual void emit(simsignal_t signalID, short i, cObject *details = nullptr) {doEmit(signalID,(intval_t)i, details);}
1028 virtual void emit(simsignal_t signalID, unsigned short i, cObject *details = nullptr) {doEmit(signalID,(uintval_t)i, details);}
1031 virtual void emit(simsignal_t signalID, int i, cObject *details = nullptr) {doEmit(signalID,(intval_t)i, details);}
1034 virtual void emit(simsignal_t signalID, unsigned int i, cObject *details = nullptr) {doEmit(signalID,(uintval_t)i, details);}
1037 virtual void emit(simsignal_t signalID, long i, cObject *details = nullptr) {doEmit(signalID,(intval_t)i, details);}
1040 virtual void emit(simsignal_t signalID, unsigned long i, cObject *details = nullptr) {doEmit(signalID,(uintval_t)i, details);}
1043 virtual void emit(simsignal_t signalID, long long i, cObject *details = nullptr) {doEmit(signalID,(intval_t)i, details);}
1046 virtual void emit(simsignal_t signalID, unsigned long long i, cObject *details = nullptr) {doEmit(signalID,(uintval_t)i, details);}
1049 virtual void emit(simsignal_t signalID, float f, cObject *details = nullptr) {emit(signalID,(double)f, details);}
1052 virtual void emit(simsignal_t signalID, long double d, cObject *details = nullptr) {emit(signalID,(double)d, details);}
1187 virtual void recordScalar(const char *name, SimTime value, const char *unit=nullptr) {recordScalar(name, value.dbl(), unit);}
Common base class for cModuleType and cChannelType.
Definition ccomponenttype.h:50
virtual void subscribe(const char *signalName, cIListener *listener)
virtual double lognormal(double m, double w, int rng=0) const
Definition ccomponent.h:828
virtual bool hasGUI() const
virtual void emit(simsignal_t signalID, short i, cObject *details=nullptr)
Definition ccomponent.h:1025
virtual double triang(double a, double b, double c, int rng=0) const
Definition ccomponent.h:815
virtual void subscribe(simsignal_t signalID, cIListener *listener)
virtual void recordStatistic(cStatistic *stats, const char *unit=nullptr)
virtual cRNG * getRNG(int k) const
virtual int negbinomial(int n, double p, int rng=0) const
Definition ccomponent.h:935
virtual cPar & par(int k)
bool mayHaveListeners(simsignal_t signalID) const
Definition ccomponent.h:1060
virtual cModule * getSystemModule() const
virtual void unsubscribe(const char *signalName, cIListener *listener)
virtual double weibull(double a, double b, int rng=0) const
Definition ccomponent.h:849
virtual ~cComponent()
virtual cModule * getModuleByPath(const char *path) const
virtual void emit(simsignal_t signalID, long i, cObject *details=nullptr)
Definition ccomponent.h:1037
virtual SimTime exponential(SimTime mean, int rng=0) const
Definition ccomponent.h:650
virtual std::vector< cIListener * > getLocalSignalListeners(simsignal_t signalID) const
virtual cDisplayString & getDisplayString() const
virtual cModule * findModuleByPath(const char *path) const
virtual void emit(simsignal_t signalID, char c, cObject *details=nullptr)
Definition ccomponent.h:1019
virtual const char * getNedTypeName() const
virtual double pareto_shifted(double a, double b, double c, int rng=0) const
Definition ccomponent.h:860
virtual int bernoulli(double p, int rng=0) const
Definition ccomponent.h:893
virtual double cauchy(double a, double b, int rng=0) const
Definition ccomponent.h:804
virtual void emit(simsignal_t signalID, long double d, cObject *details=nullptr)
Definition ccomponent.h:1052
virtual void emit(simsignal_t signalID, float f, cObject *details=nullptr)
Definition ccomponent.h:1049
virtual void handleParameterChange(const char *parname)
virtual std::string getNedTypeAndFullPath() const
virtual int poisson(double lambda, int rng=0) const
Definition ccomponent.h:952
virtual void emit(simsignal_t signalID, const char *s, cObject *details=nullptr)
virtual double student_t(unsigned int i, int rng=0) const
Definition ccomponent.h:788
virtual ComponentKind getComponentKind() const =0
virtual void emit(simsignal_t signalID, unsigned long i, cObject *details=nullptr)
Definition ccomponent.h:1040
virtual double uniform(double a, double b, int rng=0) const
Definition ccomponent.h:631
virtual void preDelete(cComponent *root)
virtual double beta(double alpha1, double alpha2, int rng=0) const
Definition ccomponent.h:738
virtual void setDisplayName(const char *name)
virtual void refreshDisplay() const
virtual SimTime uniform(SimTime a, SimTime b, int rng=0) const
Definition ccomponent.h:636
virtual SimTime normal(SimTime mean, SimTime stddev, int rng=0) const
Definition ccomponent.h:665
virtual void initialize()
virtual int geometric(double p, int rng=0) const
Definition ccomponent.h:921
virtual void emit(simsignal_t signalID, unsigned char c, cObject *details=nullptr)
Definition ccomponent.h:1022
virtual void emit(simsignal_t signalID, cObject *obj, cObject *details=nullptr)
virtual void callInitialize()=0
virtual int intuniformexcl(int a, int b, int rng=0) const
Definition ccomponent.h:882
virtual void emit(simsignal_t signalID, long long i, cObject *details=nullptr)
Definition ccomponent.h:1043
bool hasListeners(simsignal_t signalID) const
virtual cModule * getParentModule() const =0
virtual SimTime truncnormal(SimTime mean, SimTime stddev, int rng=0) const
Definition ccomponent.h:687
virtual int intuniform(int a, int b, int rng=0) const
Definition ccomponent.h:873
virtual void callFinish()=0
virtual void emit(simsignal_t signalID, const SimTime &t, cObject *details=nullptr)
virtual void emit(simsignal_t signalID, unsigned int i, cObject *details=nullptr)
Definition ccomponent.h:1034
virtual void finalizeParameters()
cComponent(const char *name=nullptr)
virtual double normal(double mean, double stddev, int rng=0) const
Definition ccomponent.h:660
virtual double chi_square(unsigned int k, int rng=0) const
Definition ccomponent.h:775
virtual std::vector< simsignal_t > getLocalListenedSignals() const
virtual double erlang_k(unsigned int k, double mean, int rng=0) const
Definition ccomponent.h:758
virtual void setDisplayString(const char *dispstr)
virtual cProperties * getProperties() const =0
virtual double exponential(double mean, int rng=0) const
Definition ccomponent.h:645
virtual std::string resolveResourcePath(const char *fileName) const
virtual void bubble(const char *text) const
virtual void unsubscribe(simsignal_t signalID, cIListener *listener)
virtual std::string getNedTypeAndFullName() const
virtual bool callInitialize(int stage)=0
static const char * getSignalName(simsignal_t signalID)
virtual void recordScalar(const char *name, double value, const char *unit=nullptr)
virtual void forEachChild(cVisitor *v) override
virtual void emit(simsignal_t signalID, unsigned short i, cObject *details=nullptr)
Definition ccomponent.h:1028
virtual bool isSubscribed(simsignal_t signalID, cIListener *listener) const
virtual void emit(simsignal_t signalID, const cObject *obj, cObject *details=nullptr)
Definition ccomponent.h:1016
virtual double truncnormal(double mean, double stddev, int rng=0) const
Definition ccomponent.h:682
virtual int binomial(int n, double p, int rng=0) const
Definition ccomponent.h:907
virtual cPar & par(const char *parname)
virtual void emit(simsignal_t signalID, bool b, cObject *details=nullptr)
virtual void finish()
virtual uint32_t intrand(uint32_t r, int rng=0) const
Definition ccomponent.h:614
virtual cComponentType * getComponentType() const
virtual void emit(simsignal_t signalID, unsigned long long i, cObject *details=nullptr)
Definition ccomponent.h:1046
virtual int getNumRNGs() const
virtual int findPar(const char *parname) const
static simsignal_t registerSignal(const char *name)
virtual double gamma_d(double alpha, double theta, int rng=0) const
Definition ccomponent.h:724
virtual void emit(simsignal_t signalID, int i, cObject *details=nullptr)
Definition ccomponent.h:1031
virtual bool isSubscribed(const char *signalName, cIListener *listener) const
virtual void recordStatistic(const char *name, cStatistic *stats, const char *unit=nullptr)
virtual const char * getDisplayName() const
Definition ccomponent.h:416
virtual void recordScalar(const char *name, SimTime value, const char *unit=nullptr)
Definition ccomponent.h:1187
virtual void emit(simsignal_t signalID, double d, cObject *details=nullptr)
virtual std::string str() const override
cStatistic is an abstract class for computing statistical properties of a random variable.
Definition cstatistic.h:35
Enables traversing the tree of (cObject-rooted) simulation objects.
Definition cvisitor.h:57
Internal class that stores values for cPar objects.
Definition cparimpl.h:47
Definition opp_pooledstring.h:64
LogLevel
Classifies log messages based on detail and importance.
Definition clog.h:34
int64_t intval_t
Signed integer type which is guaranteed to be at least 64 bits wide. It is used throughout the librar...
Definition simkerneldefs.h:101
uint64_t uintval_t
Unsigned integer type which is guaranteed to be at least 64 bits wide. It is used throughout the libr...
Definition simkerneldefs.h:109
SIM_API double student_t(cRNG *rng, unsigned int i)
Returns a random variate from the student-t distribution with i degrees of freedom....
SIM_API double exponential(cRNG *rng, double mean)
Returns a random variate from the exponential distribution with the given mean (that is,...
SIM_API double pareto_shifted(cRNG *rng, double a, double b, double c)
Returns a random variate from the shifted generalized Pareto distribution.
SIM_API double uniform(cRNG *rng, double a, double b)
Returns a random variate with uniform distribution in the range [a,b).
double lognormal(cRNG *rng, double m, double w)
Returns a random variate from the lognormal distribution with "scale" parameter m and "shape" paramet...
Definition distrib.h:251
SIM_API double truncnormal(cRNG *rng, double mean, double stddev)
Normal distribution truncated to nonnegative values.
SIM_API double erlang_k(cRNG *rng, unsigned int k, double mean)
Returns a random variate from the Erlang distribution with k phases and mean mean.
SIM_API double beta(cRNG *rng, double alpha1, double alpha2)
Returns a random variate from the beta distribution with parameters alpha1, alpha2.
SIM_API double gamma_d(cRNG *rng, double alpha, double theta)
Returns a random variate from the gamma distribution with parameters alpha>0, theta>0....
SIM_API double triang(cRNG *rng, double a, double b, double c)
Returns a random variate from the triangular distribution with parameters a <= b <= c.
SIM_API double weibull(cRNG *rng, double a, double b)
Returns a random variate from the Weibull distribution with parameters a, b > 0, where a is the "scal...
SIM_API double chi_square(cRNG *rng, unsigned int k)
Returns a random variate from the chi-square distribution with k degrees of freedom.
SIM_API double cauchy(cRNG *rng, double a, double b)
Returns a random variate from the Cauchy distribution (also called Lorentzian distribution) with para...
SIM_API double normal(cRNG *rng, double mean, double stddev)
Returns a random variate from the normal distribution with the given mean and standard deviation.
int bernoulli(cRNG *rng, double p)
Returns the result of a Bernoulli trial with probability p, that is, 1 with probability p and 0 with ...
Definition distrib.h:324
SIM_API int intuniform(cRNG *rng, int a, int b)
Returns a random integer with uniform distribution in the range [a,b], inclusive. (Note that the func...
SIM_API int binomial(cRNG *rng, int n, double p)
Returns a random integer from the binomial distribution with parameters n and p, that is,...
SIM_API int negbinomial(cRNG *rng, int n, double p)
Returns a random integer from the negative binomial distribution with parameters n and p,...
SIM_API int poisson(cRNG *rng, double lambda)
Returns a random integer from the Poisson distribution with parameter lambda, that is,...
SIM_API int intuniformexcl(cRNG *rng, int a, int b)
Returns a random integer with uniform distribution over [a,b), that is, from [a,b-1].
SIM_API int geometric(cRNG *rng, double p)
Returns a random integer from the geometric distribution with parameter p, that is,...
Generated on for API by