/* * TbUTCommonModeSubtractorFactory.h * * Created on: Nov 24, 2014 * Author: ADendek */ #pragma once #include "TbUTCMSLinear.h" #include "TbUTCmsPerBeetle.h" #include "TbUTCMSIterativelyPerBeetle.h" namespace TbUT { namespace CMSType { static const std::string& Iteratively="Iteratively"; static const std::string& Beetle = "Beetle"; static const std::string& Linear = "Linear"; } class CommonModeSubtractorFactory { public: CommonModeSubtractorFactory(IChannelMaskProvider& p_masksProvider); ICommonModeSubtractor* createCMSubtractor(const std::string& p_CMSType); class NoSuchState: public std::runtime_error { public: NoSuchState(const std::string& p_errorMsg ): std::runtime_error(p_errorMsg) { } }; private: IChannelMaskProvider& m_masksProvider; }; }