12#ifndef MEMORYMAPINTERFACE_H
13#define MEMORYMAPINTERFACE_H
15#include <KactusAPI/KactusAPIGlobal.h>
24class MemoryMapValidator;
46 QSharedPointer<ExpressionParser> expressionParser,
47 QSharedPointer<ExpressionFormatter> expressionFormatter);
82 virtual int getItemIndex(std::string
const& itemName)
const override final;
153 virtual
bool setName(std::
string const& currentName, std::
string const& newName) override final;
164 bool setRemapName(std::
string const& mapName, std::
string const& currentName, std::
string const& newName);
186 std::
string const& newDescription);
198 int const& baseNumber = 0) const;
229 bool setIsPresent(std::
string const& mapName, std::
string const& newIsPresent,
230 std::
string const& remapName =
"");
240 std::
string getRemapState(std::
string const& mapName, std::
string const& remapName =
"") const;
251 bool setRemapState(std::
string const& mapName, std::
string const& remapName, std::
string const& newRemapState);
327 std::vector<std::
string>
getMapExpressions(std::
string const& mapName, std::
string const& remapName) const;
339 std::
string const& valueID) const;
402 void addMemoryMap(
int const& row, std::
string const& newMapName = std::
string(
""));
418 void addMemoryRemap(std::
string const& mapName, std::
string const& newRemapName = std::
string(
""));
437 bool removeRemap(std::
string const& mapName, std::
string remapName);
444 void copyRows(std::vector<std::
string> const& selectedRows);
493 MemoryRemap*
getRemapPointer(std::
string const& mapName, std::
string const& remapName) const;
513 std::vector<std::pair<
unsigned int, std::
string> >
getRemapModeReferences(std::
string const& mapName, std::
string const& remapName) const;
536 bool setRemapModeReferences(std::
string const& mapName, std::
string const& remapName, std::vector<std::pair<
unsigned int, std::
string> > const& newModeRefs);
583 std::
string const& mapName, std::
string const& remapName) const;
594 QSharedPointer<MemoryMap> getMemoryMap(std::
string const& itemName) const;
603 QSharedPointer<NameGroup> getItem(std::
string const& itemName) const override;
613 QSharedPointer<MemoryRemap> getMemoryRemap(std::
string const& mapName, std::
string const& itemName) const;
622 QString pasteMemoryMap(QSharedPointer<MemoryMap> mapCopy);
632 QString pasteMemoryRemap(QSharedPointer<MemoryRemap> remapCopy, std::
string const& parentMapName);
643 QString getUniqueRemapName(std::
string const& mapName, std::
string const& newName,
644 std::
string const& itemTypeName) const;
654 bool remapNameIsUnique(std::
string const& mapName, QString const& remapName) const;
661 QSharedPointer<Component> component_;
664 QSharedPointer<QList<QSharedPointer<MemoryMap> > > mapData_;
667 QSharedPointer<MemoryMapValidator> validator_;
Interface for editing address blocks.
void setSubspaceMapInterface(SubspaceMapInterface *submapInterface)
MemoryMapInterface(QSharedPointer< MemoryMapValidator > mapValidator, QSharedPointer< ExpressionParser > expressionParser, QSharedPointer< ExpressionFormatter > expressionFormatter)
std::string getRemapDescription(std::string const &mapName, std::string const &remapName) const
std::vector< std::pair< unsigned int, std::string > > getRemapModeReferences(std::string const &mapName, std::string const &remapName) const
bool removeRemap(std::string const &mapName, std::string remapName)
void setMemoryMaps(QSharedPointer< Component > component)
std::string getIndexedRemapName(std::string mapName, int const &itemIndex) const
virtual std::vector< std::string > getItemNames() const override final
virtual bool validateItems() const override final
bool remapHasValidRemapState(std::string const &mapName, std::string const &itemName) const
std::string getIsPresentFormattedExpression(std::string const &mapName, std::string const &remapName="") const
bool setAddressUnitBits(std::string const &mapName, std::string const &newAddressUnitBits) const
std::string getAddressUnitBitsValue(std::string const &mapName, int const &baseNumber=0) const
std::string getIsPresentValue(std::string const &mapName, std::string const &remapName="", int const &baseNumber=0) const
AddressBlockInterface * getAddressBlockInterface() const
std::vector< std::string > pasteMemoryMaps()
bool memoryMapHasValidAddressUnitBits(std::string const &mapName) const
SubspaceMapInterface * getSubspaceMapInterface() const
std::string getIsPresentExpression(std::string const &mapName, std::string const &remapName="") const
bool setRemapName(std::string const &mapName, std::string const ¤tName, std::string const &newName)
virtual bool itemHasValidName(std::string const &itemName) const override final
ModeReferenceInterface * getModeReferenceInterface() const
std::string getInterfaceBinding(std::string const &mapName) const
bool setRemapDescription(std::string const &mapName, std::string const &itemName, std::string const &newDescription)
void addMemoryMap(int const &row, std::string const &newMapName=std::string(""))
virtual int getAllReferencesToIdInItem(const std::string &itemName, std::string const &valueID) const override final
bool setRemapModeReferences(std::string const &mapName, std::string const &remapName, std::vector< std::pair< unsigned int, std::string > > const &newModeRefs)
std::vector< std::string > getMapExpressions(std::string const &mapName, std::string const &remapName) const
void setModeReferenceInterface(ModeReferenceInterface *modeRefInterface)
std::string getIndexedItemName(int itemIndex) const final
std::string getAddressUnitBitsFormattedExpression(std::string const &mapName) const
bool removeMap(std::string const &mapName)
bool removeRemapModeReference(std::string const &mapName, std::string const &remapName, int modeReferenceIndex)
bool setIsPresent(std::string const &mapName, std::string const &newIsPresent, std::string const &remapName="")
void copyRows(std::vector< std::string > const &selectedRows)
void setAddressBlockInterface(AddressBlockInterface *blockInterface)
std::vector< std::pair< unsigned int, std::string > > getRemapModeReferencesExcludingRemap(std::string const &mapName, std::string const &remapName) const
std::string getRemapState(std::string const &mapName, std::string const &remapName="") const
virtual ~MemoryMapInterface()=default
void addMemoryRemap(std::string const &mapName, std::string const &newRemapName=std::string(""))
bool addRemapModeReference(std::string const &mapName, std::string const &remapName)
bool setRemapState(std::string const &mapName, std::string const &remapName, std::string const &newRemapState)
bool itemHasValidIsPresent(std::string const &mapName, std::string const &remapName="") const
int getMemoryRemapIndex(std::string const &mapName, std::string const &remapName) const
int remapCount(std::string const &mapName) const
virtual bool setName(std::string const ¤tName, std::string const &newName) override final
int getRemapModeReferenceCount(std::string const &mapName, std::string const &remapName) const
std::vector< std::string > getRemapNames(std::string const &mapName) const
MemoryMap * getMapPointer(std::string const &mapName) const
std::string getRemapModeReferenceString(std::string const &mapName, std::string const &remapName) const
MemoryRemap * getRemapPointer(std::string const &mapName, std::string const &remapName) const
int getAllReferencesToIdInRemapItem(std::string const &mapName, std::string const &remapName, std::string const &valueID) const
std::vector< std::string > getAssociatedSlaveInterfaces(std::string const &mapName) const
std::vector< std::string > pasteMemoryRemaps(std::string const &memoryMapName)
std::string getAddressUnitBitsExpression(std::string const &mapName) const
virtual int getItemIndex(std::string const &itemName) const override final
bool remapHasValidName(std::string const &mapName, std::string const &itemName) const
virtual int itemCount() const override final
ParameterizableInterface(QSharedPointer< ExpressionParser > expressionParser, QSharedPointer< ExpressionFormatter > expressionFormatter)
Interface for editing subspace maps.