Kactus2
Kactus2 reference guide
Loading...
Searching...
No Matches
SubspaceMapInterface.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------------
2// File: SubspaceMapInterface.h
3//-----------------------------------------------------------------------------
4// Project: Kactus2
5// Author: Mikko Teuho
6// Date: 25.01.2022
7//
8// Description:
9// Interface for editing subspace maps.
10//-----------------------------------------------------------------------------
11
12#ifndef SUBSPACEMAPINTERFACE_H
13#define SUBSPACEMAPINTERFACE_H
14
15#include <KactusAPI/KactusAPIGlobal.h>
16
18
19class Component;
20class SubSpaceMap;
21class AddressSpace;
22class Segment;
23
26class SubspaceMapValidator;
27
28//-----------------------------------------------------------------------------
30//-----------------------------------------------------------------------------
32{
33
34public:
35
45 SubspaceMapInterface(QSharedPointer<SubspaceMapValidator> subspaceValidator,
46 QSharedPointer<ExpressionParser> expressionParser,
47 QSharedPointer<ExpressionFormatter> expressionFormatter,
48 BusInterfaceInterface* busInterface,
49 ParametersInterface* parameterInterface);
50
54 virtual ~SubspaceMapInterface() = default;
55
63 virtual bool acceptBlock(std::string const& blockName) const final;
64
72 std::string getInitiatorReference(std::string const& itemName) const;
73
82 bool setMasterReference(std::string const& itemName, std::string const& newMasterReference);
83
91 std::string getSegmentReference(std::string const& itemName) const;
92
101 bool setSegmentReference(std::string const& itemName, std::string const& newSegmentReference);
102
111 std::string getWidthValue(std::string const& subspaceName, int const& baseNumber = 0) const;
112
118 virtual bool validateItems() const final;
119
127 bool hasValidMasterReference(std::string const& itemName) const;
128
136 bool hasValidSegmentReference(std::string const& itemName) const;
137
144 virtual void addBlock(int const& row, std::string const& newBlockName = std::string("")) final;
145
153 virtual std::vector<std::string> getExpressionsInSelectedItems(std::vector<std::string> const& itemNames) const final;
154
157 SubspaceMapInterface& operator=(const SubspaceMapInterface& other) = delete;
158
159private:
160
168 QSharedPointer<SubSpaceMap> getSubspaceMap(std::string const& itemName) const;
169
177 QSharedPointer<NameGroup> getItem(std::string const& itemName) const override;
178
184 virtual std::string getDefaultName() const final;
185
193 virtual QList<QSharedPointer<MemoryBlockBase> > getCopiedBlocks(std::vector<int> const& selectedRows) const final;
194
200 virtual QString getMimeType() const final;
201
209 virtual QSharedPointer<MemoryBlockBase> createCopyBlock(QSharedPointer<MemoryBlockBase> copiedItem) const
210 final;
211
219 virtual int countItems(QList<QSharedPointer<MemoryBlockBase> > itemList) const final;
220
226 virtual QSharedPointer<MemoryBlockValidator> getValidator() const final;
227
228 //-----------------------------------------------------------------------------
229 // Data.
230 //-----------------------------------------------------------------------------
231
233 QSharedPointer<SubspaceMapValidator> validator_;
234};
235
236#endif // SUBSPACEMAPINTERFACE_H
Interface for accessing bus interfaces.
MemoryBlockInterface(QSharedPointer< ExpressionParser > expressionParser, QSharedPointer< ExpressionFormatter > expressionFormatter, BusInterfaceInterface *busInterface, ParametersInterface *parameterInterface)
Interface for editing parameters.
virtual bool validateItems() const final
virtual ~SubspaceMapInterface()=default
std::string getWidthValue(std::string const &subspaceName, int const &baseNumber=0) const
virtual std::vector< std::string > getExpressionsInSelectedItems(std::vector< std::string > const &itemNames) const final
bool hasValidMasterReference(std::string const &itemName) const
std::string getInitiatorReference(std::string const &itemName) const
std::string getSegmentReference(std::string const &itemName) const
bool hasValidSegmentReference(std::string const &itemName) const
bool setSegmentReference(std::string const &itemName, std::string const &newSegmentReference)
virtual bool acceptBlock(std::string const &blockName) const final
SubspaceMapInterface(QSharedPointer< SubspaceMapValidator > subspaceValidator, QSharedPointer< ExpressionParser > expressionParser, QSharedPointer< ExpressionFormatter > expressionFormatter, BusInterfaceInterface *busInterface, ParametersInterface *parameterInterface)
virtual void addBlock(int const &row, std::string const &newBlockName=std::string("")) final
bool setMasterReference(std::string const &itemName, std::string const &newMasterReference)