summaryrefslogtreecommitdiff
path: root/include/mts/MTS_IO_CellularRadioFactory.h
diff options
context:
space:
mode:
authorJesse Gilles <jgilles@multitech.com>2015-04-20 17:14:31 -0500
committerJesse Gilles <jgilles@multitech.com>2015-04-20 17:14:31 -0500
commitd84d880627bcc1e1898a8f96b861bc25863ec86c (patch)
treee7db4eef6a8e8254eaa6ba0c7e5d56098af19d16 /include/mts/MTS_IO_CellularRadioFactory.h
downloadlibmts-io-d84d880627bcc1e1898a8f96b861bc25863ec86c.tar.gz
libmts-io-d84d880627bcc1e1898a8f96b861bc25863ec86c.tar.bz2
libmts-io-d84d880627bcc1e1898a8f96b861bc25863ec86c.zip
initial commit
Diffstat (limited to 'include/mts/MTS_IO_CellularRadioFactory.h')
-rw-r--r--include/mts/MTS_IO_CellularRadioFactory.h76
1 files changed, 76 insertions, 0 deletions
diff --git a/include/mts/MTS_IO_CellularRadioFactory.h b/include/mts/MTS_IO_CellularRadioFactory.h
new file mode 100644
index 0000000..5fa44d7
--- /dev/null
+++ b/include/mts/MTS_IO_CellularRadioFactory.h
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2015 by Multi-Tech Systems
+ *
+ * This file is part of libmts_io.
+ *
+ * libmts_io is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * libmts_io is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with libmts_io. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+/*!
+ \file MTS_IO_CellularRadioFactory.h
+ \brief A brief description
+ \date Nov 5, 2014
+ \author sgodinez
+
+ A more elaborate description
+*/
+#ifndef MTS_IO_CELLULARRADIOFACTORY_H_
+#define MTS_IO_CELLULARRADIOFACTORY_H_
+
+#include <mts/MTS_IO_CellularRadio.h>
+#include <string>
+#include <map>
+
+namespace MTS {
+ namespace IO {
+
+ class HE910Radio;
+ class GE910Radio;
+ class DE910Radio;
+ class CE910Radio;
+ class CellularRadioFactory {
+
+ public:
+
+ CellularRadioFactory();
+ virtual ~CellularRadioFactory() {};
+
+ virtual CellularRadio* create(const std::string& sModel, const std::string& sPort = CellularRadio::DEFAULT_RADIO_PORT);
+
+ virtual CellularRadio* createHE910D(const std::string& sPort = CellularRadio::DEFAULT_RADIO_PORT);
+ virtual CellularRadio* createHE910EUD(const std::string& sPort = CellularRadio::DEFAULT_RADIO_PORT);
+ virtual CellularRadio* createLE910NAG(const std::string& sPort = CellularRadio::DEFAULT_RADIO_PORT);
+ virtual CellularRadio* createLE910SVG(const std::string& sPort = CellularRadio::DEFAULT_RADIO_PORT);
+ virtual CellularRadio* createLE910EUG(const std::string& sPort = CellularRadio::DEFAULT_RADIO_PORT);
+ virtual CellularRadio* createGE910(const std::string& sPort = CellularRadio::DEFAULT_RADIO_PORT);
+ virtual CellularRadio* createDE910(const std::string& sPort = CellularRadio::DEFAULT_RADIO_PORT);
+ virtual CellularRadio* createCE910(const std::string& sPort = CellularRadio::DEFAULT_RADIO_PORT);
+
+ protected:
+ typedef MTS::IO::CellularRadio* (CellularRadioFactory::*CREATEFUNCPTR)(const std::string& sPort);
+ std::map< std::string, CREATEFUNCPTR > m_mCreationMap;
+
+ virtual std::string identifyRadio(const std::string& sPort);
+
+ private:
+
+
+ };
+ }
+}
+
+
+
+#endif /* MTS_IO_CELLULARRADIOFACTORY_H_ */