#ifndef ALGORITHM_FACTORY #define ALGORITHM_FACTORY /** @class AlgorithmFactory @author Brian Magill @date 11/29/2006 $Date:$ $Revision:$ @copyright (©) Copyright 2006 by GATS Inc. 11864 Canon Blvd., Suite 101, Newport News, VA 23606 All Rights Reserved. No part of this software or publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise without the prior written permission of GATS Inc. @brief Class for creating different types of algorithm objects */ #include #include "SigAlgoAbstract.h" #include "SigCorrectConnAbstract.h" namespace SigFactory { enum AlgoTypes {ElecFilter, NonLin, Balance, Gain, FOVMM, DarkCurrent, Confidence }; }; class AlgorithmFactory { private: SigCorrectConnAbstract const * dataConn; public: AlgorithmFactory():dataConn(0) { }; AlgorithmFactory(SigCorrectConnAbstract const &in):dataConn(&in) { }; AlgorithmFactory(AlgorithmFactory const &rhs):dataConn(rhs.dataConn) { }; AlgorithmFactory& operator= (AlgorithmFactory const &rhs); ~AlgorithmFactory() { }; boost::shared_ptr create(SigFactory::AlgoTypes const &type) const; }; #endif