Kactus2
Kactus2 reference guide
Loading...
Searching...
No Matches
InterconnectionInterface.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------------
2// File: InterconnectionInterface.h
3//-----------------------------------------------------------------------------
4// Project: Kactus2
5// Author: Mikko Teuho
6// Date: 09.09.2021
7//
8// Description:
9// Interface for accessing design interconnections.
10//-----------------------------------------------------------------------------
11
12#ifndef INTERCONNECTIONINTERFACE_H
13#define INTERCONNECTIONINTERFACE_H
14
15#include <NameGroupInterface.h>
16
17#include <QSharedPointer>
18
19class Design;
20class Interconnection;
21
22//-----------------------------------------------------------------------------
24//-----------------------------------------------------------------------------
26{
27public:
28
33
37 virtual ~InterconnectionInterface() = default;
38
44 void setInterconnections(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& startBusName,
75 std::string const& endInstanceName, std::string const& endBusName) const;
76
86 std::string getHierarchicalConnectionName(std::string const& instanceName, std::string const& instanceBus,
87 std::string const& topBus) 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 addInterconnection(std::string const& startComponentInstance, std::string const& startBus,
158 std::string const& endComponentInstance, std::string const& endBus, std::string const& connectionName = "");
159
168 void addHierarchicalInterconnection(std::string const& instanceName, std::string const& instanceBus,
169 std::string const& topBus, std::string const& connectionName = "");
170
178 bool removeInterconnection(std::string const& connectionName);
179
187 bool removeInstanceInterconnections(std::string const& instanceName);
188
196 bool interconnectionExists(std::string const& connectionName) const;
197
204 void renameComponentReferences(std::string const& currentName, std::string const& newName);
205
208 InterconnectionInterface& operator=(const InterconnectionInterface& other) = delete;
209
210private:
211
219 QSharedPointer<Interconnection> getInterconnection(std::string const& connectionName) const;
220
228 QSharedPointer<NameGroup> getItem(std::string const& connectionName) const;
229
230 //-----------------------------------------------------------------------------
231 // Data.
232 //-----------------------------------------------------------------------------
233
235 QSharedPointer<QList<QSharedPointer<Interconnection> > > interconnections_;
236};
237
238#endif // INTERCONNECTIONINTERFACE_H
bool removeInterconnection(std::string const &connectionName)
std::string getConnectionName(std::string const &startInstanceName, std::string const &startBusName, std::string const &endInstanceName, std::string const &endBusName) const
virtual int getItemIndex(std::string const &itemName) const override final
virtual std::string getDescription(std::string const &itemName) const override final
void setInterconnections(QSharedPointer< Design > newDesign)
void addInterconnection(std::string const &startComponentInstance, std::string const &startBus, std::string const &endComponentInstance, std::string const &endBus, std::string const &connectionName="")
virtual bool setDescription(std::string const &itemName, std::string const &newDescription) override final
virtual bool itemHasValidName(std::string const &itemName) const override final
void addHierarchicalInterconnection(std::string const &instanceName, std::string const &instanceBus, std::string const &topBus, std::string const &connectionName="")
bool removeInstanceInterconnections(std::string const &instanceName)
virtual std::vector< std::string > getItemNames() const override final
bool interconnectionExists(std::string const &connectionName) const
virtual ~InterconnectionInterface()=default
virtual int itemCount() const override final
std::string getHierarchicalConnectionName(std::string const &instanceName, std::string const &instanceBus, std::string const &topBus) const
virtual bool validateItems() const override final
std::string getIndexedItemName(int itemIndex) const final
void renameComponentReferences(std::string const &currentName, std::string const &newName)
virtual bool setName(std::string const &currentName, std::string const &newName) override final