93 lines
2.3 KiB
C++
93 lines
2.3 KiB
C++
|
|
#include "connectionManager.h"
|
|
#include <QDebug>
|
|
|
|
ConnectionManager::ConnectionManager(QObject *parent): QObject{parent}
|
|
{
|
|
|
|
}
|
|
|
|
ConnectionManager::~ConnectionManager()
|
|
{
|
|
|
|
}
|
|
|
|
void ConnectionManager::insert(std::shared_ptr<BaseConnection> conn)
|
|
{
|
|
if(conn){
|
|
bool same = false;
|
|
for(int i=0;i<connectionVec.size();i++){
|
|
if(conn==connectionVec[i]){
|
|
same = true;
|
|
break;
|
|
}
|
|
}
|
|
if(!same){
|
|
connectionVec.append(conn);
|
|
emit connectionAddedSignal(conn);
|
|
}else{
|
|
emit connectionChangeSignal(conn);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
void ConnectionManager::remove(int idx)
|
|
{
|
|
if(idx>=0 && idx<=connectionVec.length()){
|
|
if(connectionVec[idx]->isConnected()){
|
|
connectionVec[idx]->close();
|
|
}
|
|
QString name = connectionVec[idx]->getConnectionName();
|
|
connectionVec[idx]->disconnect();
|
|
std::shared_ptr<BaseConnection> connPtr = connectionVec[idx];
|
|
connectionVec.remove(idx);
|
|
emit connectionRemovedSignal(connPtr);
|
|
}
|
|
}
|
|
|
|
void ConnectionManager::remove(std::shared_ptr<BaseConnection> conn)
|
|
{
|
|
int idx = -1;
|
|
for(int i=0;i<connectionVec.size();i++){
|
|
if(connectionVec[i] == conn){
|
|
if(conn->isConnected()){
|
|
conn->close();
|
|
}
|
|
idx = i;
|
|
break;
|
|
}
|
|
}
|
|
if(idx>=0){
|
|
QString name = connectionVec[idx]->getConnectionName();
|
|
connectionVec[idx]->disconnect();
|
|
connectionVec.remove(idx);
|
|
emit connectionRemovedSignal(conn);
|
|
}
|
|
}
|
|
|
|
int ConnectionManager::getConnectionCounts()
|
|
{
|
|
return connectionVec.length();
|
|
}
|
|
|
|
std::shared_ptr<BaseConnection> ConnectionManager::getConnection(int idx)
|
|
{
|
|
std::shared_ptr<BaseConnection> conn = nullptr;
|
|
if(idx>=0 && idx<=connectionVec.length()){
|
|
conn = connectionVec[idx];
|
|
}
|
|
return conn;
|
|
}
|
|
|
|
std::shared_ptr<BaseConnection> ConnectionManager::getConnection(const QString &connectionName)
|
|
{
|
|
std::shared_ptr<BaseConnection> conn = nullptr;
|
|
for(int i=0;i<connectionVec.size();i++){
|
|
if(connectionName==connectionVec[i]->getConnectionName()){
|
|
conn = connectionVec[i];
|
|
}
|
|
}
|
|
return conn;
|
|
}
|