00001 00009 /*************************************************************************** 00010 * * 00011 * This program is free software; you can redistribute it and/or modify * 00012 * it under the terms of the GNU General Public License as published by * 00013 * the Free Software Foundation; either version 2 of the License, or * 00014 * (at your option) any later version. * 00015 * * 00016 ***************************************************************************/ 00017 00018 #ifndef TDSPBLOCKSOLVE_H 00019 #define TDSPBLOCKSOLVE_H 00020 00021 #include <TDSPBlockOperation.h> 00022 #include <TDSPOutput1.h> 00023 #include <TDSPSolver.h> 00024 00030 class TDSPBlockSolve : public TDSPOutput1, public TDSPBlockOperation { 00031 TDSPSolver* fSolver; 00032 public: 00033 TDSPBlockSolve(char *name = NULL); 00034 ~TDSPBlockSolve(); 00035 00036 virtual Int_t GetBlockLen(); 00037 virtual void Print(); 00038 00039 TDSPSolver* GetSolver() const { return fSolver;}; 00040 void SetSolver(TDSPSolver*s) { fSolver = s;}; 00041 00042 TDSPSignal* Solve(TDSPSignal*); 00043 TDSPSignal* Update(TDSPSignal*); 00044 00045 ClassDef(TDSPBlockSolve,1) 00046 00047 }; 00048 00049 00050 inline TDSPSignal* TDSPBlockSolve::Update(TDSPSignal *input) { 00051 Solve(input); 00052 Emit(Signal_NewData,fSignal); 00053 return fSignal; 00054 } 00055 00056 inline Int_t TDSPBlockSolve::GetBlockLen() { 00057 if (fSolver) { 00058 return fSolver->GetNumOutputs(); 00059 } 00060 00061 Error("GetBlockLen","No solver given !!"); 00062 return 0; 00063 } 00064 #endif
1.3.2