Kactus2
Kactus2 reference guide
Loading...
Searching...
No Matches
AdHocConnectionInterface.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------------
2// File: AdHocconnectionInterface.h
3//-----------------------------------------------------------------------------
4// Project: Kactus2
5// Author: Mikko Teuho
6// Date: 10.09.2021
7//
8// Description:
9// Interface for accessing design ad hoc connections.
10//-----------------------------------------------------------------------------
11
12#ifndef ADHOCCONNECTIONINTERFACE_H
13#define ADHOCCONNECTIONINTERFACE_H
14
15#include <NameGroupInterface.h>
16
17#include <QSharedPointer>
18
19class Design;
20class AdHocConnection;
21
22//-----------------------------------------------------------------------------
24//-----------------------------------------------------------------------------
26{
27public:
28
33
37 virtual ~AdHocConnectionInterface() = default;
38
44 void setConnections(QSharedPointer<Design> newDesign);
45
53 virtual int getItemIndex(std::string const& itemName) const override final;
54
62 std::string getIndexedItemName(int itemIndex) const final;
63
74 std::string getConnectionName(std::string const& startInstanceName, std::string const& startPortName,
75 std::string const& endInstanceName, std::string const& endPortName) const;
76
86 std::string getHierarchicalConnectionName(std::string const& instanceName, std::string const& instancePort,
87 std::string const& topPort) const;
88
94 virtual int itemCount() const override final;
95
101 virtual std::vector<std::string> getItemNames() const override final;
102
111 virtual bool setName(std::string const& currentName, std::string const& newName) override final;
112
120 virtual std::string getDescription(std::string const& itemName) const override final;
121
130 virtual bool setDescription(std::string const& itemName, std::string const& newDescription) override final;
131
137 virtual bool validateItems() const override final;
138
146 virtual bool itemHasValidName(std::string const& itemName) const override final;
147
157 void addAdHocConnection(std::string const& startComponentInstance, std::string const& startPort,
158 std::string const& endComponentInstance, std::string const& endPort,
159 std::string const& connectionName = "");
160
169 void addHierarchicalAdHocConnection(std::string const& instanceName, std::string const& instancePort,
170 std::string const& topPort, std::string const& connectionName = "");
171
179 bool removeAdHocConnection(std::string const& connectionName);
180
188 bool removeInstanceAdHocConnections(std::string const& instanceName);
189
197 bool adHocConnectionExists(std::string const& connectionName) const;
198
205 void renameComponentReferences(std::string const& currentName, std::string const& newName);
206
209 AdHocConnectionInterface& operator=(const AdHocConnectionInterface& other) = delete;
210
211private:
212
220 QSharedPointer<AdHocConnection> getAdHocConnection(std::string const& connectionName) const;
221
229 QSharedPointer<NameGroup> getItem(std::string const& connectionName) const;
230
231 //-----------------------------------------------------------------------------
232 // Data.
233 //-----------------------------------------------------------------------------
234
236 QSharedPointer<QList<QSharedPointer<AdHocConnection> > > connections_;
237};
238
239#endif // ADHOCCONNECTIONINTERFACE_H
virtual ~AdHocConnectionInterface()=default
bool adHocConnectionExists(std::string const &connectionName) const
void addAdHocConnection(std::string const &startComponentInstance, std::string const &startPort, std::string const &endComponentInstance, std::string const &endPort, std::string const &connectionName="")
bool removeInstanceAdHocConnections(std::string const &instanceName)
virtual int getItemIndex(std::string const &itemName) const override final
std::string getHierarchicalConnectionName(std::string const &instanceName, std::string const &instancePort, std::string const &topPort) const
virtual bool setDescription(std::string const &itemName, std::string const &newDescription) override final
virtual bool setName(std::string const &currentName, std::string const &newName) override final
virtual bool validateItems() const override final
void setConnections(QSharedPointer< Design > newDesign)
virtual std::vector< std::string > getItemNames() const override final
virtual std::string getDescription(std::string const &itemName) const override final
std::string getIndexedItemName(int itemIndex) const final
void addHierarchicalAdHocConnection(std::string const &instanceName, std::string const &instancePort, std::string const &topPort, std::string const &connectionName="")
std::string getConnectionName(std::string const &startInstanceName, std::string const &startPortName, std::string const &endInstanceName, std::string const &endPortName) const
void renameComponentReferences(std::string const &currentName, std::string const &newName)
virtual bool itemHasValidName(std::string const &itemName) const override final
bool removeAdHocConnection(std::string const &connectionName)
virtual int itemCount() const override final