Kactus2
Kactus2 reference guide
Loading...
Searching...
No Matches
ComponentInstanceInterface.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------------
2// File: ComponentInstanceInterface.h
3//-----------------------------------------------------------------------------
4// Project: Kactus2
5// Author: Mikko Teuho
6// Date: 09.09.2021
7//
8// Description:
9// Interface for accessing component instances.
10//-----------------------------------------------------------------------------
11
12#ifndef COMPONENTINSTANCEINTERFACE_H
13#define COMPONENTINSTANCEINTERFACE_H
14
15#include <NameGroupInterface.h>
16
17#include <QSharedPointer>
18
19class Design;
20class ComponentInstance;
21class ConfigurableVLNVReference;
22
25
26//-----------------------------------------------------------------------------
28//-----------------------------------------------------------------------------
30{
31public:
32
40 AdHocConnectionInterface* adHocInterface);
41
45 virtual ~ComponentInstanceInterface() = default;
46
52 void setComponentInstances(QSharedPointer<Design> newDesign);
53
61 virtual int getItemIndex(std::string const& itemName) const override final;
62
70 std::string getIndexedItemName(int itemIndex) const final;
71
77 virtual int itemCount() const override final;
78
84 virtual std::vector<std::string> getItemNames() const override final;
85
94 virtual bool setName(std::string const& currentName, std::string const& newName) override final;
95
103 virtual std::string getDescription(std::string const& itemName) const override final;
104
113 virtual bool setDescription(std::string const& itemName, std::string const& newDescription) override final;
114
120 virtual bool validateItems() const override final;
121
129 virtual bool itemHasValidName(std::string const& itemName) const override final;
130
138 QSharedPointer<ConfigurableVLNVReference> getComponentReference(std::string const& instanceName) const;
139
151 bool setComponentReference(std::string const& instanceName, std::string const& newVendor,
152 std::string const& newLibrary, std::string const& newName, std::string const& newVersion);
153
159 void addComponentInstance(std::string const& instanceName = "");
160
168 bool removeComponentInstance(std::string const& instanceName);
169
177 bool instanceExists(std::string const& instanceName) const;
178
182
183private:
184
192 QSharedPointer<ComponentInstance> getComponentInstance(std::string const& instanceName) const;
193
201 QSharedPointer<NameGroup> getItem(std::string const& instanceName) const;
202
203 //-----------------------------------------------------------------------------
204 // Data.
205 //-----------------------------------------------------------------------------
206
208 QSharedPointer<QList<QSharedPointer<ComponentInstance> > > componentInstances_;
209
211 InterconnectionInterface* connectionInterface_;
212
214 AdHocConnectionInterface* adHocConnectionInterface_;
215};
216
217#endif // COMPONENTINSTANCEINTERFACE_H
Interface for accessing design ad hoc connections.
virtual int itemCount() const override final
virtual std::vector< std::string > getItemNames() const override final
bool removeComponentInstance(std::string const &instanceName)
virtual bool validateItems() const override final
std::string getIndexedItemName(int itemIndex) const final
void setComponentInstances(QSharedPointer< Design > newDesign)
virtual bool setDescription(std::string const &itemName, std::string const &newDescription) override final
virtual ~ComponentInstanceInterface()=default
void addComponentInstance(std::string const &instanceName="")
bool instanceExists(std::string const &instanceName) const
virtual bool itemHasValidName(std::string const &itemName) const override final
virtual std::string getDescription(std::string const &itemName) const override final
virtual int getItemIndex(std::string const &itemName) const override final
bool setComponentReference(std::string const &instanceName, std::string const &newVendor, std::string const &newLibrary, std::string const &newName, std::string const &newVersion)
ComponentInstanceInterface(InterconnectionInterface *connectionInterface, AdHocConnectionInterface *adHocInterface)
virtual bool setName(std::string const &currentName, std::string const &newName) override final
QSharedPointer< ConfigurableVLNVReference > getComponentReference(std::string const &instanceName) const
Interface for accessing design interconnections.