multiplicative.h

00001 /***************************************************************************
00002  *   Copyright (C) 2003 by Gav Wood                                        *
00003  *   gav@cs.york.ac.uk                                                     *
00004  *                                                                         *
00005  *   This program is free software; you can redistribute it and/or modify  *
00006  *   it under the terms of the GNU Library General Public License as       *
00007  *   published by the Free Software Foundation; either version 2 of the    *
00008  *   License, or (at your option) any later version.                       *
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  //* Deferred init data
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

Generated on Fri Nov 10 21:58:26 2006 for Exscalibar by  doxygen 1.5.1