| | |
| | | |
| | | CModel::~CModel() |
| | | { |
| | | for (auto item : m_mapPlc) { |
| | | delete item.second; |
| | | } |
| | | m_mapPlc.clear(); |
| | | } |
| | | |
| | | IObservable* CModel::getObservable() |
| | |
| | | { |
| | | |
| | | } |
| | | |
| | | std::map<std::string, CPLC*>& CModel::gtPlcMap() |
| | | { |
| | | return m_mapPlc; |
| | | } |
| | | |
| | | int CModel::addPlc(const char* pszName, const char* pszIp, const unsigned int port) |
| | | { |
| | | auto iter = m_mapPlc.find(pszName); |
| | | if (iter != m_mapPlc.end()) return -1; |
| | | CPLC* pPLC = new CPLC(pszName, pszIp, port); |
| | | m_mapPlc[pszName] = pPLC; |
| | | |
| | | notifyPtr(RX_CODE_ADD_PLC, pPLC); |
| | | return 0; |
| | | } |
| | | |
| | | int CModel::removePlc(const char* pszName) |
| | | { |
| | | auto iter = m_mapPlc.find(pszName); |
| | | if (iter == m_mapPlc.end()) return -1; |
| | | |
| | | notifyPtr(RX_CODE_REMOVE_PLC, iter->second); |
| | | delete iter->second; |
| | | m_mapPlc.erase(iter); |
| | | return 0; |
| | | } |