12#ifndef REGISTERINTERFACE_H
13#define REGISTERINTERFACE_H
15#include <KactusAPI/KactusAPIGlobal.h>
20#include <IPXACTmodels/common/AccessTypes.h>
24class RegisterValidator;
48 QSharedPointer<ExpressionParser> expressionParser,
49 QSharedPointer<ExpressionFormatter> expressionFormatter,
63 void setRegisters(QSharedPointer<QList<QSharedPointer<RegisterBase> > > newRegisterData);
72 virtual int getItemIndex(std::string
const& itemName)
const override final;
121 virtual
bool setName(std::
string const& currentName, std::
string const& newName) override final;
131 std::
string getOffsetValue(std::
string const& registerName,
int const& baseNumber = 0) const;
159 bool setOffset(std::
string const& registerName, std::
string const& newOffset);
169 std::
string getDimensionValue(std::
string const& registerName,
int const& baseNumber = 0) const;
197 bool setDimension(std::
string const& registerName, std::
string const& newDimension);
207 std::
string getIsPresentValue(std::
string const& registerName,
int const& baseNumber = 0) const;
235 bool setIsPresent(std::
string const& registerName, std::
string const& newIsPresent);
245 std::
string getSizeValue(std::
string const& registerName,
int const& baseNumber = 0) const;
273 bool setSize(std::
string const& registerName, std::
string const& newSize);
292 bool setVolatile(std::
string const& registerName, std::
string const& newVolatile);
303 std::
string getAccessString(std::
string const& registerName,
bool getAccessPolicyAccess = false) const;
313 AccessTypes::Access
getAccess(std::
string const& registerName) const;
325 bool setAccess(std::
string const& registerName, std::
string const& newAccess,
bool setAccessPolicyAccess = false);
415 void addRegister(
int const& row,
int const& dataIndex, std::
string const& newRegisterName = std::
string(
""));
423 void addRegister(std::
string const& newRegisterName = std::
string(
""));
440 void copyRows(std::vector<
int> const& selectedRows);
495 QSharedPointer<Register> getRegister(std::
string const& registerName) const;
504 QSharedPointer<NameGroup> getItem(std::
string const& registerName) const;
511 QString getNextRegisterOffset() const;
518 QSharedPointer<QList<QSharedPointer<RegisterBase> > > registerData_;
521 QList<QSharedPointer<Register> > registers_;
524 QSharedPointer<RegisterValidator> validator_;
533 unsigned int addressUnitBits_;
Interface for editing access policies.
Interface for editing fields.
ParameterizableInterface(QSharedPointer< ExpressionParser > expressionParser, QSharedPointer< ExpressionFormatter > expressionFormatter)
bool setAccess(std::string const ®isterName, std::string const &newAccess, bool setAccessPolicyAccess=false)
bool hasValidOffset(std::string const ®isterName) const
bool setDimension(std::string const ®isterName, std::string const &newDimension)
virtual int itemCount() const override final
std::string getDimensionExpression(std::string const ®isterName) const
std::string getIndexedItemName(int itemIndex) const final
int registerDataCount() const
std::string getSizeFormattedExpression(std::string const ®isterName) const
std::string getIsPresentFormattedExpression(std::string const ®isterName) const
std::string getVolatile(std::string const ®isterName) const
bool removeRegister(std::string const ®isterName, int const &dataIndex)
bool setSize(std::string const ®isterName, std::string const &newSize)
virtual int getAllReferencesToIdInItem(const std::string &itemName, std::string const &valueID) const override final
virtual ~RegisterInterface()=default
std::string getIsPresentExpression(std::string const ®isterName) const
std::string getAccessString(std::string const ®isterName, bool getAccessPolicyAccess=false) const
std::vector< std::string > getExpressionsInSelectedRegisters(std::vector< std::string > const ®isterNames) const
virtual int getItemIndex(std::string const &itemName) const override final
bool hasValidSize(std::string const ®isterName) const
std::string getOffsetFormattedExpression(std::string const ®isterName) const
RegisterInterface(QSharedPointer< RegisterValidator > validator, QSharedPointer< ExpressionParser > expressionParser, QSharedPointer< ExpressionFormatter > expressionFormatter, FieldInterface *subInterface, AccessPolicyInterface *accessPolicyInterface)
std::vector< std::string > pasteRows()
bool setVolatile(std::string const ®isterName, std::string const &newVolatile)
virtual bool itemHasValidName(std::string const &itemName) const override final
void addRegister(int const &row, int const &dataIndex, std::string const &newRegisterName=std::string(""))
std::string getDimensionFormattedExpression(std::string const ®isterName) const
virtual std::vector< std::string > getItemNames() const override final
bool hasValidIsPresent(std::string const ®isterName) const
bool addAccessPolicy(std::string const ®isterName)
int getPasteRowCount() const
void copyRows(std::vector< int > const &selectedRows)
int indexInRegisterData(int const &index) const
std::string getOffsetValue(std::string const ®isterName, int const &baseNumber=0) const
AccessTypes::Access getAccess(std::string const ®isterName) const
bool hasValidDimension(std::string const ®isterName) const
std::string getIsPresentValue(std::string const ®isterName, int const &baseNumber=0) const
int getAccessPolicyCount(std::string const ®isterName) const
void setRegisters(QSharedPointer< QList< QSharedPointer< RegisterBase > > > newRegisterData)
std::string getSizeExpression(std::string const ®isterName) const
AccessPolicyInterface * getAccessPolicyInterface() const
virtual bool validateItems() const override final
virtual bool setName(std::string const ¤tName, std::string const &newName) override final
std::string getDimensionValue(std::string const ®isterName, int const &baseNumber=0) const
FieldInterface * getSubInterface() const
bool setIsPresent(std::string const ®isterName, std::string const &newIsPresent)
std::string getOffsetExpression(std::string const ®isterName) const
bool setOffset(std::string const ®isterName, std::string const &newOffset)
void setAddressUnitBits(int const &newAddressUnitbits)
std::string getSizeValue(std::string const ®isterName, int const &baseNumber=0) const