12#ifndef MEMORYBLOCKINTERFACE_H
13#define MEMORYBLOCKINTERFACE_H
15#include <KactusAPI/KactusAPIGlobal.h>
27class MemoryBlockValidator;
48 QSharedPointer<ExpressionFormatter> expressionFormatter,
62 void setMemoryBlocks(QSharedPointer<QList<QSharedPointer<MemoryBlockBase> > > newMemoryBlocks);
85 virtual bool acceptBlock(std::string
const& blockName)
const = 0;
94 virtual int getItemIndex(std::string
const& itemName)
const override final;
127 virtual
bool setName(std::
string const& currentName, std::
string const& newName) override final;
165 bool setBaseAddress(std::
string const& blockName, std::
string const& newBaseAdress) const;
203 bool setIsPresent(std::
string const& blockName, std::
string const& newIsPresent) const;
213 std::
string getRangeValue(std::
string const& blockName,
int const& baseNumber = 0) const;
265 virtual
void addBlock(
int const& row, std::
string const& newBlockName = std::
string(
"")) = 0;
273 virtual
void addBlock(std::
string const& newBlockName = std::
string(
""));
344 QSharedPointer<MemoryBlockBase>
getBlock(std::
string const& itemName) const;
369 virtual std::
string getDefaultName() const = 0;
378 virtual QList<QSharedPointer<MemoryBlockBase> > getCopiedBlocks(std::vector<
int> const& selectedRows) const = 0;
385 virtual QString getMimeType() const = 0;
394 virtual QSharedPointer<MemoryBlockBase> createCopyBlock(QSharedPointer<MemoryBlockBase> copiedItem) const = 0;
403 virtual
int countItems(QList<QSharedPointer<MemoryBlockBase> > itemList) const = 0;
410 virtual QSharedPointer<MemoryBlockValidator> getValidator() const = 0;
421 QSharedPointer<Segment> getReferencedSegment(QSharedPointer<AddressSpace> referencedSpace,
422 QString const& segmentReference) const;
429 QSharedPointer<QList<QSharedPointer<AddressSpace> > > availableAddressSpaces_{
nullptr };
435 QSharedPointer<QList<QSharedPointer<MemoryBlockBase> > > blockData_{
nullptr };
438 QString addressUnitBits_;
441 ParametersInterface* parameterInterface_{
nullptr };
Interface for accessing bus interfaces.
bool itemHasValidName(std::string const &itemName) const
virtual ~MemoryBlockInterface()=default
std::string getIsPresentFormattedExpression(std::string const &blockName) const
virtual std::vector< std::string > getItemNames() const override final
void setupSubInterfaces(QSharedPointer< Component > newComponent)
bool setIsPresent(std::string const &blockName, std::string const &newIsPresent) const
std::string getIsPresentValue(std::string const &blockName, int const &baseNumber=0) const
QSharedPointer< AddressSpace > getReferencedAddressSpace(QString const &masterBusReference) const
virtual std::vector< std::string > getExpressionsInSelectedItems(std::vector< std::string > const &itemNames) const =0
std::string getIndexedItemName(int itemIndex) const final
std::string getBaseAddressFormattedExpression(std::string const &blockName) const
std::string getBaseAddressValue(std::string const &blockName, int const &baseNumber=0) const
virtual int itemCount() const override final
std::string getBaseAddressExpression(std::string const &blockName) const
void setAddressUnitBits(std::string const &newAddressUnitbits)
std::string getIsPresentExpression(std::string const &blockName) const
BusInterfaceInterface * getBusInterface() const
MemoryBlockInterface(QSharedPointer< ExpressionParser > expressionParser, QSharedPointer< ExpressionFormatter > expressionFormatter, BusInterfaceInterface *busInterface, ParametersInterface *parameterInterface)
virtual void addBlock(int const &row, std::string const &newBlockName=std::string(""))=0
int getPasteRowCount() const
bool setBaseAddress(std::string const &blockName, std::string const &newBaseAdress) const
bool hasValidBaseAddress(std::string const &itemName) const
virtual int getAllReferencesToIdInItem(const std::string &itemName, std::string const &valueID) const override
virtual bool acceptBlock(std::string const &blockName) const =0
QString getNewBlockBaseAddress() const
std::string getRangeValue(std::string const &blockName, int const &baseNumber=0) const
virtual bool setName(std::string const ¤tName, std::string const &newName) override final
QSharedPointer< MemoryBlockBase > getBlock(std::string const &itemName) const
bool hasValidIsPresent(std::string const &itemName) const
void copyRows(std::vector< int > selectedRows)
QSharedPointer< QList< QSharedPointer< MemoryBlockBase > > > getBlocksData()
void setMemoryBlocks(QSharedPointer< QList< QSharedPointer< MemoryBlockBase > > > newMemoryBlocks)
bool removeBlock(std::string const &blockName)
virtual int getItemIndex(std::string const &itemName) const override final
QString getAddressUnitBits() const
std::vector< std::string > pasteRows()
virtual bool validateItems() const override=0
ParameterizableInterface(QSharedPointer< ExpressionParser > expressionParser, QSharedPointer< ExpressionFormatter > expressionFormatter)
Interface for editing parameters.