xxcoupling.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 #ifndef _GEDDEI_XXCOUPLING_H
00011 #define _GEDDEI_XXCOUPLING_H
00012 
00013 #ifdef __GEDDEI_BUILD
00014 #include "bufferdatas.h"
00015 #else
00016 #include <geddei/bufferdatas.h>
00017 #endif
00018 
00019 namespace Geddei
00020 {
00021 
00022 class SignalTypeRefs;
00023 class Properties;
00024 
00029 class xxCoupling
00030 {
00031 protected:
00042  virtual void transact(const BufferDatas &d, const uint chunks) = 0;
00043 
00052  virtual BufferDatas deliverResults(uint *timeTaken = 0) = 0;
00053 
00057  virtual void stoppingL() {}
00058 
00063  virtual void stoppedL() {}
00064 
00068  virtual void stoppingR() {}
00069 
00074  virtual void stoppedR() {}
00075 
00076 public:
00091  virtual void specifyTypes(const SignalTypeRefs &inTypes, const SignalTypeRefs &outTypes) = 0;
00092 
00098  virtual void initFromProperties(const Properties &p) = 0;
00099 
00103  virtual void go() = 0;
00104 
00108  virtual void stop() = 0;
00109 
00116  virtual void defineIO(const uint numInputs, const uint numOutputs) = 0;
00117 
00124  void stopping() { stoppingR(); stoppingL(); }
00125 
00132  void stopped() { stoppedL(); stoppedR(); }
00133 
00137  virtual ~xxCoupling() {}
00138 };
00139 
00140 };
00141 
00142 #endif

Generated on Thu Jul 13 06:56:33 2006 for Exscalibar by  doxygen 1.4.7