00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef _GEDDEI_MULTIPLICATIVE_H
00012 #define _GEDDEI_MULTIPLICATIVE_H
00013
00014 #include <qstring.h>
00015
00016 #ifdef __GEDDEI_BUILD
00017 #include "properties.h"
00018 #else
00019 #include <geddei/properties.h>
00020 #endif
00021 using namespace Geddei;
00022
00023 namespace Geddei
00024 {
00025
00026 class ProcessorGroup;
00027
00033 class Multiplicative
00034 {
00035 protected:
00036
00037 bool theDeferredInit;
00038 Properties theDeferredProperties;
00039 QString theDeferredName;
00040 ProcessorGroup *theDeferredGroup;
00041
00042 virtual void setSourceMultiplicity(const uint multiplicity) = 0;
00043 virtual void setSinkMultiplicity(const uint multiplicity) = 0;
00044
00045 public:
00046 virtual const bool initGiven() const = 0;
00047 virtual const bool knowMultiplicity() const = 0;
00048 virtual const uint multiplicity() const = 0;
00049 virtual void doInit(const QString &name, ProcessorGroup *g = 0, const Properties &properties = Properties()) = 0;
00050
00051 void setMultiplicity(const uint multiplicity);
00052
00053 Multiplicative() : theDeferredInit(false) {}
00054 virtual ~Multiplicative() {}
00055 };
00056
00057 }
00058
00059 #endif