1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #include "stdafx.h"
- #include "DIOSBoardFactory.h"
- #include "DIOSBoardController.h"
- #include "DoNothingDiosBoard.h"
- using namespace DIOS::Dev::Detail::MachineryECOM;
- DIOSBoardFactory *DIOSBoardFactory::m_instance = nullptr;
- DIOSBoardFactory::DIOSBoardFactory()
- {
- }
- DIOSBoardFactory::~DIOSBoardFactory()
- {
- for each (auto pair in m_boards)
- {
- if (pair.second)
- {
- delete pair.second;
- }
- }
- }
- DIOSBoardFactory *DIOSBoardFactory::Instance()
- {
- if (m_instance == nullptr)
- {
- m_instance = new DIOSBoardFactory();
- }
- return m_instance;
- }
- IDIOSBoardController *DIOSBoardFactory::CreateSingleton(const std::string &typeName)
- {
- IDIOSBoardController *controller = nullptr;
- if (m_boards.find(typeName) != m_boards.end())
- {
- controller = m_boards[typeName];
- return controller;
- }
-
- if (typeName == ECOM_DIOSBOARD)
- {
- controller = new DIOSBoardController();
- m_boards.insert(make_pair(typeName, controller));
- }
- else if (typeName == DONOTHING_DIOSBOARD)
- {
- controller = new DoNothingDiosBoard();
- m_boards.insert(make_pair(typeName, controller));
- }
- return controller;
- }
|