blob: 45a63a1df9348bcae454957edfa88492c5195c9a [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2018 TU Wien/ACIN
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Martin Melik-Merkumians - initial contribution
*******************************************************************************/
#include "CAdsConnectionManager.h"
namespace forte {
namespace ads {
DEFINE_SINGLETON (CAdsConnectionManager)
CAdsConnectionManager::CAdsConnectionManager(){
}
CAdsConnectionManager::~CAdsConnectionManager(){
// TODO Auto-generated destructor stub
}
bool CAdsConnectionManager::addConnection(const std::string& paFriendlyServerName, const std::string& paAddr, const std::string& paRemoteIpOrHostName){
return addConnection(paFriendlyServerName, paAddr, AMSPORT_R0_PLC_TC3, paRemoteIpOrHostName);
}
bool CAdsConnectionManager::addConnection(const std::string& paFriendlyServerName, const std::string& paAddr, uint16_t paPort, const std::string& paRemoteIpOrHostName){
CAdsConnection *connection = new CAdsConnection(paAddr, paPort, paRemoteIpOrHostName);
if(connection->connect()){
mConnectionRegistry[paFriendlyServerName] = connection;
return true;
}
delete connection;
return false;
}
void CAdsConnectionManager::removeConnection(const std::string& paFriendlyServerName){
CAdsConnection *connection = mConnectionRegistry[paFriendlyServerName];
delete connection;
mConnectionRegistry.erase(paFriendlyServerName);
}
CAdsConnection* CAdsConnectionManager::getConnection(const std::string& paFriendlyServerName){
return mConnectionRegistry[paFriendlyServerName];
}
}
}