16 #ifndef __OMNETPP_CCOMPONENTTYPE_H 17 #define __OMNETPP_CCOMPONENTTYPE_H 24 #include "cownedobject.h" 25 #include "clistener.h" 36 class cDatarateChannel;
52 std::string qualifiedName;
53 bool availabilityTested;
56 typedef std::map<std::string, cParImpl *> StringToParMap;
57 StringToParMap sharedParMap;
60 typedef std::set<cParImpl *, Less> ParImplSet;
61 ParImplSet sharedParSet;
64 std::map<simsignal_t,SignalDesc> signalsSeen;
77 virtual cProperties *getParamProperties(
const char *paramName)
const = 0;
80 virtual cProperties *getGateProperties(
const char *gateName)
const = 0;
85 virtual cProperties *getSubmoduleProperties(
const char *submoduleName,
const char *submoduleType)
const = 0;
90 virtual cProperties *getConnectionProperties(
int connectionId,
const char *channelType)
const = 0;
93 virtual const char *getImplementationClassName()
const = 0;
96 virtual void applyPatternAssignments(
cComponent *component) = 0;
99 cParImpl *getSharedParImpl(
const char *key)
const;
100 void putSharedParImpl(
const char *key,
cParImpl *value);
111 virtual std::string getPackageProperty(
const char *name)
const {
return "";}
114 virtual bool isAvailable();
117 virtual bool isInnerType()
const {
return false;}
120 virtual std::string getCxxNamespace()
const {
return "";}
123 virtual const char *getSourceFileName()
const {
return nullptr;}
129 virtual cProperty *getSignalDeclaration(
const char *signalName);
163 virtual const char *
getFullName()
const override {
return qualifiedName.c_str();}
169 virtual std::string getNedSource()
const = 0;
199 virtual cModule *createModuleObject() = 0;
208 virtual void addParametersAndGatesTo(
cModule *mod) = 0;
216 virtual void setupGateVectors(
cModule *mod) = 0;
227 virtual void buildInside(
cModule *mod) = 0;
234 cModule *instantiateModuleClass(
const char *classname);
250 virtual bool isNetwork()
const = 0;
256 virtual bool isSimple()
const = 0;
275 virtual cModule *create(
const char *name,
cModule *parentmod,
int vectorsize,
int index);
290 virtual cModule *createScheduleInit(
const char *name,
cModule *parentmod);
323 virtual cChannel *createChannelObject() = 0;
329 virtual void addParametersTo(
cChannel *channel) = 0;
335 cChannel *instantiateChannelClass(
const char *classname);
359 virtual cChannel *create(
const char *name);
Common base for module and channel classes.
Definition: ccomponent.h:48
Represents a module gate.
Definition: cgate.h:63
Root of the OMNeT++ class hierarchy. cObject is a lightweight class without any data members...
Definition: cobject.h:58
Channel with propagation delay.
Definition: cdelaychannel.h:29
Channel with zero propagation delay, zero transmission delay (infinite datarate), and always enabled...
Definition: cchannel.h:327
Represents a module or channel parameter.
Definition: cpar.h:68
This class represents modules in the simulation.
Definition: cmodule.h:47
Stores a (NED) property with its (possibly compound) value.
Definition: cproperty.h:38
The class behind the createOne() function and the Register_Class() macro.
Definition: cobjectfactory.h:35
Common base class for cModuleType and cChannelType.
Definition: ccomponenttype.h:49
Definition: cabstracthistogram.h:21
A collection of properties (cProperty).
Definition: cproperties.h:34
SimsignalType
Signal data types.
Definition: clistener.h:44
Base class for cOwnedObject-based classes that do not wish to support assignment and duplication...
Definition: cownedobject.h:248
virtual const char * getFullName() const override
Definition: ccomponenttype.h:163
Abstract base class for creating a channel of a given type.
Definition: ccomponenttype.h:312
Abstract class for creating a module of a specific type.
Definition: ccomponenttype.h:192
int simsignal_t
Signal handle.
Definition: clistener.h:24
Base class for channels.
Definition: cchannel.h:34
Channel that models delay, bit error rate and data rate.
Definition: cdataratechannel.h:30
Internal class that stores values for cPar objects.
Definition: cparimpl.h:44