serialTransferTool/connectionManager.h

38 lines
1.1 KiB
C++

#ifndef CONNECTIONMANAGER_H
#define CONNECTIONMANAGER_H
#include <QObject>
#include <QVector>
#include "baseConnection.h"
#include <memory>
class ConnectionManager:public QObject
{
Q_OBJECT
public:
static ConnectionManager& getInstance()
{
static ConnectionManager instance;
return instance;
}
void insert(std::shared_ptr<BaseConnection> conn);
void remove(int idx);
void remove(std::shared_ptr<BaseConnection> conn);
int getConnectionCounts();
std::shared_ptr<BaseConnection> getConnection(int idx);
std::shared_ptr<BaseConnection> getConnection(const QString &connectionName);
signals:
void connectionAddedSignal(std::shared_ptr<BaseConnection> connPtr);
void connectionRemovedSignal(std::shared_ptr<BaseConnection> connPtr);
void connectionChangeSignal(std::shared_ptr<BaseConnection> connPtr);
private:
ConnectionManager(QObject *parent = nullptr);
~ConnectionManager();
QVector<std::shared_ptr<BaseConnection>> connectionVec;
};
#endif // CONNECTIONMANAGER_H