Kactus2
Kactus2 reference guide
Loading...
Searching...
No Matches
BusInterfaceInterface.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------------
2// File: BusInterfaceInterface.h
3//-----------------------------------------------------------------------------
4// Project: Kactus2
5// Author: Mikko Teuho
6// Date: 17.02.2021
7//
8// Description:
9// Interface for accessing bus interfaces.
10//-----------------------------------------------------------------------------
11
12#ifndef BUSINTERFACEINTERFACE_H
13#define BUSINTERFACEINTERFACE_H
14
15#include <NameGroupInterface.h>
17
18#include <IPXACTmodels/generaldeclarations.h>
19#include <IPXACTmodels/common/ConfigurableVLNVReference.h>
20#include <IPXACTmodels/common/Document.h>
21#include <IPXACTmodels/Component/BusInterface.h>
22
23#include <QSharedPointer>
24
25class Component;
26class InitiatorInterface;
27class TargetInterface;
28class MirroredTargetInterface;
29class TransparentBridge;
30class BusInterfaceValidator;
36
37//-----------------------------------------------------------------------------
39//-----------------------------------------------------------------------------
41{
42public:
43
51 BusInterfaceInterface(QSharedPointer<BusInterfaceValidator> busValidator,
52 QSharedPointer<ExpressionParser> expressionParser,
53 QSharedPointer<ExpressionFormatter> expressionFormatter);
54
58 virtual ~BusInterfaceInterface() = default;
59
65 void setFileSetInterface(FileSetInterface* newFileSetInterface);
66
73
79 void setAbstractionTypeInterface(AbstractionTypeInterface* newAbstractionTypeInterface);
80
87
93 void setParameterInterface(ParametersInterface* newParameterInterface);
94
100 void setBusInterfaces(QSharedPointer<Component> newComponent);
101
107 void setupSubInterfaces(std::string const& busName);
108
116 virtual int getItemIndex(std::string const& itemName) const override final;
117
125 std::string getIndexedItemName(int itemIndex) const final;
126
132 virtual int itemCount() const override final;
133
139 virtual std::vector<std::string> getItemNames() const override final;
140
149 virtual bool setName(std::string const& currentName, std::string const& newName) override final;
150
156 virtual bool validateItems() const override final;
157
165 bool validateBusInterface(std::string const& busName) const;
166
174 virtual bool itemHasValidName(std::string const& itemName) const override final;
175
183 bool hasValidBusType(std::string const& busName) const;
184
192 bool hasValidAbstractionTypes(std::string const& busName) const;
193
201 General::InterfaceMode getMode(std::string const& busName) const;
202
210 General::InterfaceMode getActiveMode(std::string const& busName) const;
211
212
220 std::string getModeString(std::string const& busName) const;
221
230 bool setMode(std::string const& busName, std::string const& newMode);
231
239 std::string getSystemGroup(std::string const& busName) const;
240
248 QString getActiveSystemGroup(std::string const& busName) const;
249
258 bool setSystemGroup(std::string const& busName, std::string const& newSystem);
259
267 std::string connectionIsRequired(std::string const& busName) const;
268
277 bool setConnectionIsRequired(std::string const& busName, bool newValue);
278
286 std::string getBitsInLau(std::string const& busName) const;
287
296 bool setBitsInLau(std::string const& busName, std::string const& newBits);
297
305 BusInterface::Endianness getEndianness(std::string const& busName) const;
306
315 bool setEndianness(std::string const& busName, std::string const& newEndianness);
316
324 std::string getBitSteering(std::string const& busName) const;
325
334 bool setBitSteering(std::string const& busName, std::string const& newBitSteering);
335
343 std::string getAddressSpaceReference(std::string const& busName) const;
344
353 bool setAddressSpaceReference(std::string const& busName, std::string const& newSpace);
354
363 std::string getBaseAddressValue(std::string const& busName, int const& baseNumber = 0) const;
364
372 std::string getBaseAddressFormattedExpression(std::string const& busName) const;
373
381 std::string getBaseAddressExpression(std::string const& busName) const;
382
391 bool setBaseAddress(std::string const& busName, std::string const& newBaseAddress);
392
400 std::string getMemoryMapReference(std::string const& busName) const;
401
410 bool setMemoryMapReference(std::string const& busName, std::string const& newMapReference);
411
419 std::vector<std::string> getFileSetReferences(std::string const& busName) const;
420
429 bool setFileSetReferences(std::string const& busName, std::vector<std::string> const& newFileSetReferences);
430
438 ConfigurableVLNVReference getBusType(std::string const& busName) const;
439
447 std::string getBusTypeString(std::string const& busName) const;
448
457 bool setBustype(std::string const& busName, ConfigurableVLNVReference const& newVLNV);
458
470 bool setBustype(std::string const& busName, std::string const& newVendor, std::string const& newLibrary,
471 std::string const& newName, std::string const& newVersion) const;
472
480 std::string getAbstractionReferenceString(std::string const& busName) const;
481
489 std::vector<std::string> getAbstractionReferences(std::string const& busName) const;
490
502 bool addAbstractionType(std::string const& busName, std::string const& newVendor,
503 std::string const& newLibrary, std::string const& newName, std::string const& newVersion) const;
504
512 bool removeAbstractionTypes(std::string const& busName);
513
522 std::string getRangeValue(std::string const& busName, int const& baseNumber = 0) const;
523
531 std::string getRangeFormattedExpression(std::string const& busName) const;
532
540 std::string getRangeExpression(std::string const& busName) const;
541
550 bool setRange(std::string const& busName, std::string const& newRange);
551
560 std::string getRemapAddressValue(std::string const& busName, int const& baseNumber = 0) const;
561
569 std::string getRemapAddressFormattedExpression(std::string const& busName) const;
570
578 std::string getRemapAddressExpression(std::string const& busName) const;
579
588 bool setRemapAddress(std::string const& busName, std::string const& newRemapAddress);
589
597 General::InterfaceMode getMonitorMode(std::string const& busName) const;
598
607 bool setMonitorMode(std::string const& busName, std::string const& newMode);
608
616 std::string getMonitorGroup(std::string const& busName) const;
617
626 bool setMonitorGroup(std::string const& busName, std::string const& newGroup);
627
634 void addBusInterface(int const& newBusIndex, std::string const& busName = "");
635
642 void addBusInterface(std::string const& busName = "");
643
650 void swapBusInterfaces(int const& firstIndex, int const& secondIndex);
651
659 bool removeBusInterface(std::string const& busName);
660
668 bool busInterfaceExists(std::string const& busName) const;
669
676
683
690
697
703 QSharedPointer<BusInterfaceValidator> getValidator() const;
704
712 QSharedPointer<QList<QSharedPointer<TransparentBridge> > > getBridges(std::string const& busName) const;
713
721 QSharedPointer<QList<QSharedPointer<TransparentBridge> > > createBridges(std::string const& busName);
722
731 virtual int getAllReferencesToIdInItem(const std::string& itemName, std::string const& valueID) const
732 override;
733
741 std::vector<std::string> getAllExpressions(std::string const& busName) const;
742
748 void copyRows(std::vector<int> selectedRows);
749
755 std::vector<std::string> pasteRows();
756
762 int getPasteRowCount() const;
763
766 BusInterfaceInterface& operator=(const BusInterfaceInterface& other) = delete;
767
768private:
769
777 QSharedPointer<BusInterface> getBusInterface(std::string const& busName) const;
778
786 QSharedPointer<NameGroup> getItem(std::string const& busName) const override;
787
795 QSharedPointer<InitiatorInterface> getInitiatorInterface(std::string const& busName) const;
796
804 QSharedPointer<InitiatorInterface> createInitiatorForBusInterface(std::string const& busName);
805
813 QSharedPointer<TargetInterface> getTargetInterface(std::string const& busName) const;
814
822 QSharedPointer<TargetInterface> createTargetForBusInterface(std::string const& busName);
823
831 QSharedPointer<MirroredTargetInterface> getMirroredSlaveInterface(std::string const& busName) const;
832
840 QSharedPointer<MirroredTargetInterface> createMirrorSlaveForBusInterface(std::string const& busName);
841
849 QSharedPointer<BusInterface::MonitorInterface> getMonitorInterface(std::string const& busName) const;
850
858 QSharedPointer<BusInterface::MonitorInterface> createMonitorForBusInterface(std::string const& busName);
859
860 //-----------------------------------------------------------------------------
861 // Data.
862 //-----------------------------------------------------------------------------
863
865 QSharedPointer<QList<QSharedPointer<BusInterface> > > busInterfaces_;
866
868 QSharedPointer<BusInterfaceValidator> busValidator_;
869
871 TransparentBridgeInterface* bridgeInterface_;
872
874 FileSetInterface* fileSetInterface_;
875
877 MemoryMapInterface* mapInterface_;
878
880 AbstractionTypeInterface* abstractionTypeInterface_;
881
883 ParametersInterface* parameterInterface_;
884
886 Document::Revision docRevision_ = Document::Revision::Unknown;
887};
888
889#endif // BUSINTERFACEINTERFACE_H
Interface for accessing abstraction types.
virtual int itemCount() const override final
bool setBitsInLau(std::string const &busName, std::string const &newBits)
std::string getBitSteering(std::string const &busName) const
virtual int getAllReferencesToIdInItem(const std::string &itemName, std::string const &valueID) const override
std::vector< std::string > pasteRows()
std::string getRangeValue(std::string const &busName, int const &baseNumber=0) const
std::string getMonitorGroup(std::string const &busName) const
AbstractionTypeInterface * getAbstractionTypeInterface() const
std::string getMemoryMapReference(std::string const &busName) const
bool setRemapAddress(std::string const &busName, std::string const &newRemapAddress)
bool hasValidAbstractionTypes(std::string const &busName) const
ConfigurableVLNVReference getBusType(std::string const &busName) const
QString getActiveSystemGroup(std::string const &busName) const
std::string getSystemGroup(std::string const &busName) const
std::vector< std::string > getFileSetReferences(std::string const &busName) const
bool addAbstractionType(std::string const &busName, std::string const &newVendor, std::string const &newLibrary, std::string const &newName, std::string const &newVersion) const
void setMemoryMapInterface(MemoryMapInterface *newMapInterface)
bool setSystemGroup(std::string const &busName, std::string const &newSystem)
bool setMode(std::string const &busName, std::string const &newMode)
std::string getBitsInLau(std::string const &busName) const
QSharedPointer< QList< QSharedPointer< TransparentBridge > > > createBridges(std::string const &busName)
std::string getIndexedItemName(int itemIndex) const final
bool setFileSetReferences(std::string const &busName, std::vector< std::string > const &newFileSetReferences)
void swapBusInterfaces(int const &firstIndex, int const &secondIndex)
std::string getModeString(std::string const &busName) const
std::string connectionIsRequired(std::string const &busName) const
void setAbstractionTypeInterface(AbstractionTypeInterface *newAbstractionTypeInterface)
bool removeBusInterface(std::string const &busName)
virtual ~BusInterfaceInterface()=default
General::InterfaceMode getActiveMode(std::string const &busName) const
void setBusInterfaces(QSharedPointer< Component > newComponent)
std::string getRangeFormattedExpression(std::string const &busName) const
bool busInterfaceExists(std::string const &busName) const
void setFileSetInterface(FileSetInterface *newFileSetInterface)
std::string getBaseAddressFormattedExpression(std::string const &busName) const
virtual std::vector< std::string > getItemNames() const override final
std::string getBusTypeString(std::string const &busName) const
bool removeAbstractionTypes(std::string const &busName)
std::string getRemapAddressValue(std::string const &busName, int const &baseNumber=0) const
virtual int getItemIndex(std::string const &itemName) const override final
bool setAddressSpaceReference(std::string const &busName, std::string const &newSpace)
bool setBustype(std::string const &busName, ConfigurableVLNVReference const &newVLNV)
bool setMonitorMode(std::string const &busName, std::string const &newMode)
std::string getRemapAddressFormattedExpression(std::string const &busName) const
bool setEndianness(std::string const &busName, std::string const &newEndianness)
bool setConnectionIsRequired(std::string const &busName, bool newValue)
std::string getBaseAddressValue(std::string const &busName, int const &baseNumber=0) const
General::InterfaceMode getMode(std::string const &busName) const
MemoryMapInterface * getMemoryMapInterface() const
TransparentBridgeInterface * getBridgeInterface()
bool setBaseAddress(std::string const &busName, std::string const &newBaseAddress)
void setParameterInterface(ParametersInterface *newParameterInterface)
void copyRows(std::vector< int > selectedRows)
BusInterfaceInterface(QSharedPointer< BusInterfaceValidator > busValidator, QSharedPointer< ExpressionParser > expressionParser, QSharedPointer< ExpressionFormatter > expressionFormatter)
bool setMonitorGroup(std::string const &busName, std::string const &newGroup)
void setupSubInterfaces(std::string const &busName)
QSharedPointer< QList< QSharedPointer< TransparentBridge > > > getBridges(std::string const &busName) const
QSharedPointer< BusInterfaceValidator > getValidator() const
bool validateBusInterface(std::string const &busName) const
bool setMemoryMapReference(std::string const &busName, std::string const &newMapReference)
std::string getAbstractionReferenceString(std::string const &busName) const
virtual bool validateItems() const override final
std::vector< std::string > getAbstractionReferences(std::string const &busName) const
General::InterfaceMode getMonitorMode(std::string const &busName) const
virtual bool itemHasValidName(std::string const &itemName) const override final
std::string getBaseAddressExpression(std::string const &busName) const
bool hasValidBusType(std::string const &busName) const
void addBusInterface(int const &newBusIndex, std::string const &busName="")
void setTransparentBridgeInterface(TransparentBridgeInterface *newBridgeInterface)
FileSetInterface * getFileSetInterface() const
std::string getRemapAddressExpression(std::string const &busName) const
std::string getRangeExpression(std::string const &busName) const
int getPasteRowCount() const
std::string getAddressSpaceReference(std::string const &busName) const
virtual bool setName(std::string const &currentName, std::string const &newName) override final
bool setBitSteering(std::string const &busName, std::string const &newBitSteering)
std::vector< std::string > getAllExpressions(std::string const &busName) const
BusInterface::Endianness getEndianness(std::string const &busName) const
bool setRange(std::string const &busName, std::string const &newRange)
Interface for editing filesets.
Interface for editing memory maps and remaps.
ParameterizableInterface(QSharedPointer< ExpressionParser > expressionParser, QSharedPointer< ExpressionFormatter > expressionFormatter)
Interface for editing parameters.
Interface for accessing transparent bridges.