Kactus2
Kactus2 reference guide
Loading...
Searching...
No Matches
AccessPolicyInterface.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------------
2// File: AccessPolicyInterface.h
3//-----------------------------------------------------------------------------
4// Project: Kactus 2
5// Author: Anton Hagqvist
6// Date: 20.9.2023
7//
8// Description:
9// Interface for editing access policies.
10//-----------------------------------------------------------------------------
11
12#ifndef ACCESSPOLICYINTERFACE_H
13#define ACCESSPOLICYINTERFACE_H
14
15#include <KactusAPI/KactusAPIGlobal.h>
16
17#include <IPXACTmodels/common/AccessTypes.h>
18
19#include <QList>
20#include <QSharedPointer>
21
22class AccessPolicy;
24class ModeReference;
25class Mode;
26
27//-----------------------------------------------------------------------------
29//-----------------------------------------------------------------------------
30class KACTUS2_API AccessPolicyInterface
31{
32public:
33
39 explicit AccessPolicyInterface(ModeReferenceInterface* modeRefInterface);
40
41 virtual ~AccessPolicyInterface() = default;
42
46
52 void setAccessPolicies(QSharedPointer<QList<QSharedPointer<AccessPolicy> > > accessPolicies);
53
59 void setComponentModes(QSharedPointer<QList<QSharedPointer<Mode> > > componentModes);
60
67
71 void addAccessPolicy(int row);
72
80 bool removeAccessPolicy(int accessPolicyIndex);
81
90 bool setAccess(std::string const& newAccess, int accessPolicyIndex);
91
99 std::string getAccessString(int accessPolicyIndex) const;
100
108 AccessTypes::Access getAccess(int accessPolicyIndex) const;
109
116
124 std::vector<std::pair<unsigned int, std::string> > getAccesPolicyModeReferences(int accessPolicyIndex) const;
125
134 bool setAccessPolicyModeReferences(int accessPolicyIndex, std::vector<std::pair<unsigned int, std::string> > const& newModeRefs);
135
144 std::vector<std::pair<unsigned int, std::string> > getModeReferencesInUse(int accessPolicyIndex) const;
145
154 bool accessPolicyHasValidModeReferences(int accessPolicyIndex) const;
155
156private:
157
159 QSharedPointer<QList<QSharedPointer<AccessPolicy> > > accessPolicies_ =
160 QSharedPointer<QList<QSharedPointer<AccessPolicy> > >(new QList<QSharedPointer<AccessPolicy> >());
161
163 ModeReferenceInterface* modeRefInterface_;
164
166 QSharedPointer<QList<QSharedPointer<Mode> > > componentModes_;
167};
168
169
170#endif // ACCESSPOLICYINTERFACE_H
171
std::vector< std::pair< unsigned int, std::string > > getAccesPolicyModeReferences(int accessPolicyIndex) const
AccessPolicyInterface(ModeReferenceInterface *modeRefInterface)
int getAccessPolicyCount() const
ModeReferenceInterface * getModeReferenceInterface() const
bool setAccess(std::string const &newAccess, int accessPolicyIndex)
void setAccessPolicies(QSharedPointer< QList< QSharedPointer< AccessPolicy > > > accessPolicies)
std::vector< std::pair< unsigned int, std::string > > getModeReferencesInUse(int accessPolicyIndex) const
AccessPolicyInterface & operator=(AccessPolicyInterface const &other)=delete
AccessPolicyInterface(AccessPolicyInterface const &other)=delete
No copying.
void setComponentModes(QSharedPointer< QList< QSharedPointer< Mode > > > componentModes)
bool removeAccessPolicy(int accessPolicyIndex)
bool accessPolicyHasValidModeReferences(int accessPolicyIndex) const
AccessTypes::Access getAccess(int accessPolicyIndex) const
void addAccessPolicy(int row)
virtual ~AccessPolicyInterface()=default
std::string getAccessString(int accessPolicyIndex) const
bool setAccessPolicyModeReferences(int accessPolicyIndex, std::vector< std::pair< unsigned int, std::string > > const &newModeRefs)