DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
SchemaKernelWrapper.hpp
Go to the documentation of this file.
1#ifndef KERNELWRAPPER_H
2#define KERNELWRAPPER_H
3
5#include <QStringList>
6#include <QObject>
8#include <vector>
9#include <set>
11#include "dbe/SchemaCommand.hpp"
12
13namespace dunedaq {
14 namespace oks {
15 class OksKernel;
16 class OksClass;
17 }
18}
19
20namespace dbse
21{
22
23class KernelWrapper: public QObject
24{
25 friend class SchemaMainWindow;
26 friend class SchemaClassEditor;
28 friend class SchemaMethodEditor;
30
31 Q_OBJECT
32public:
33 static KernelWrapper & GetInstance();
35 void SetActiveSchema ( const std::string & ActiveSchema );
36 void GetClassList ( std::vector<dunedaq::oks::OksClass *> & ClassList ) const;
37 void GetClassListString ( QStringList & ClassListString ) const;
38 void GetSchemaFiles ( std::vector<std::string> & SchemaFiles );
39 void GetIncludedList ( const std::string & FileName,
40 std::set<std::string> & IncludedFiles );
41 bool IsFileWritable ( const std::string & FileName ) const;
42 bool IsActive() const;
43 dunedaq::oks::OksClass * FindClass ( std::string ClassName ) const;
44 void LoadSchema ( const std::string & SchemaName ) const;
45 void SaveAllSchema() const;
46 void SaveSchema ( const std::string& file ) const;
47 std::string ModifiedSchemaFiles() const;
48 std::string SaveModifiedSchema() const;
49 std::string GetActiveSchema() const;
50 void AddInclude( std::string schemaFile, std::string IncludeFile ) const;
51 void RemoveInclude( std::string schemaFile, std::string IncludeFile ) const;
52 void CloseAllSchema() const;
53 void CreateNewSchema ( const std::string & SchemaName ) const;
54 bool AnyClassReferenceThis ( dunedaq::oks::OksClass * SchemaClass );
55 QString GetCardinalityStringRelationship ( dunedaq::oks::OksRelationship * SchemaRelationship ) const;
57 void SetInheritanceMode ( bool Mode );
58 bool GetInheritanceMode() const;
60 QUndoStack * GetUndoStack();
63 void PushSetAbstractClassCommand ( dunedaq::oks::OksClass * Class, bool Value );
64 void PushSetDescriptionClassCommand ( dunedaq::oks::OksClass * Class, std::string Description );
65 void PushAddSuperClassCommand ( dunedaq::oks::OksClass * Class, std::string SuperClass );
66 void PushRemoveSuperClassCommand ( dunedaq::oks::OksClass * Class, std::string SuperClass );
67 void PushCreateClassCommand ( std::string ClassName, std::string ClassDescription,
68 bool Abstract );
69 void PushRemoveClassCommand ( dunedaq::oks::OksClass * Class, std::string ClassName,
70 std::string ClassDescription, bool Abstract );
72 void PushSetNameRelationshipCommand ( dunedaq::oks::OksClass* Class, dunedaq::oks::OksRelationship * Relationship, std::string Name );
74 std::string ClassType );
76 std::string Description );
84 void PushAddRelationship ( dunedaq::oks::OksClass * Class, std::string Name, std::string Description,
85 std::string Type, bool Composite, bool Exclusive, bool Dependent,
89 std::string Name, std::string Description, std::string Type,
90 bool Composite, bool Exclusive, bool Dependent,
95 std::string Language );
97 std::string Prototype );
99 std::string Body );
100 void PushAddMethodImplementationComand ( dunedaq::oks::OksClass * Class, dunedaq::oks::OksMethod * Method, std::string Language,
101 std::string Prototype, std::string Body );
102 void PushRemoveMethodImplementationComand ( dunedaq::oks::OksClass * Class, dunedaq::oks::OksMethod * Method, std::string Language,
103 std::string Prototype, std::string Body );
105 void PushSetNameMethodCommand ( dunedaq::oks::OksClass * Class, dunedaq::oks::OksMethod * Method, std::string name );
106 void PushSetDescriptionMethodCommand ( dunedaq::oks::OksClass * Class, dunedaq::oks::OksMethod * Method, std::string description );
107 void PushAddMethodCommand ( dunedaq::oks::OksClass * Class, std::string name, std::string description );
108 void PushRemoveMethodCommand ( dunedaq::oks::OksClass * Class, dunedaq::oks::OksMethod * Method, std::string name,
109 std::string description );
111 void PushSetAttributeNameCommand ( dunedaq::oks::OksClass * Class, dunedaq::oks::OksAttribute * Attribute, std::string NewName );
113 dunedaq::oks::OksAttribute * Attribute,
114 std::string NewDescription );
115 void PushSetAttributeTypeCommand ( dunedaq::oks::OksClass * Class, dunedaq::oks::OksAttribute * Attribute, std::string NewType );
116 void PushSetAttributeRangeCommand ( dunedaq::oks::OksClass * Class, dunedaq::oks::OksAttribute * Attribute, std::string NewRange );
119 void PushSetAttributeMultiCommand ( dunedaq::oks::OksClass * Class, dunedaq::oks::OksAttribute * Attribute, bool NewIsMulti );
120 void PushSetAttributeIsNullCommand ( dunedaq::oks::OksClass * Class,dunedaq::oks::OksAttribute * Attribute, bool NewIsNull );
122 std::string NewValues );
123 void PushAddAttributeCommand ( dunedaq::oks::OksClass * Class, std::string name, std::string type,
124 bool is_mv, std::string range, std::string init_values,
125 std::string description, bool is_null,
128 std::string name,
129 std::string type, bool is_mv, std::string range,
130 std::string init_values, std::string description,
131 bool is_null, dunedaq::oks::OksAttribute::Format format =
133private:
134 KernelWrapper ( QObject * parent = nullptr );
136 QUndoStack * CommandStack;
138signals:
139 void ClassCreated ( QString ClassName );
140 void ClassRemoved ( QString ClassName );
141 void ClassUpdated ( QString ClassName );
143};
144
145} // namespace dbse
146#endif // KERNELWRAPPER_H
void PushSetIsCompositeRelationshipCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksRelationship *Relationship, bool Value)
void PushRemoveSuperClassCommand(dunedaq::oks::OksClass *Class, std::string SuperClass)
void PushSetAttributeDescriptionCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksAttribute *Attribute, std::string NewDescription)
void PushSetAttributeIsNullCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksAttribute *Attribute, bool NewIsNull)
std::string GetActiveSchema() const
void GetClassListString(QStringList &ClassListString) const
void GetIncludedList(const std::string &FileName, std::set< std::string > &IncludedFiles)
std::string SaveModifiedSchema() const
static KernelWrapper & GetInstance()
void PushSetAttributeRangeCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksAttribute *Attribute, std::string NewRange)
void GetClassList(std::vector< dunedaq::oks::OksClass * > &ClassList) const
QUndoStack * GetUndoStack()
Stack Functions.
dunedaq::oks::OksKernel * GetKernel()
QString GetCardinalityStringRelationship(dunedaq::oks::OksRelationship *SchemaRelationship) const
void PushSetMethodImplementationLanguage(dunedaq::oks::OksClass *Class, dunedaq::oks::OksMethod *Method, dunedaq::oks::OksMethodImplementation *Implementation, std::string Language)
Method implementation commands.
void PushSetHighCcRelationshipCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksRelationship *Relationship, dunedaq::oks::OksRelationship::CardinalityConstraint NewCardinality)
void PushSetAttributeFormatCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksAttribute *Attribute, dunedaq::oks::OksAttribute::Format NewFormat)
void SetActiveSchema(const std::string &ActiveSchema)
void PushSetAbstractClassCommand(dunedaq::oks::OksClass *Class, bool Value)
dunedaq::oks::OksClass * FindClass(std::string ClassName) const
void PushSetIsDependentRelationshipCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksRelationship *Relationship, bool Value)
void RemoveInclude(std::string schemaFile, std::string IncludeFile) const
void SaveSchema(const std::string &file) const
void RebuildAttributeModel()
void PushAddSuperClassCommand(dunedaq::oks::OksClass *Class, std::string SuperClass)
void ClassUpdated(QString ClassName)
void PushSetMethodImplementationPrototype(dunedaq::oks::OksClass *Class, dunedaq::oks::OksMethod *Method, dunedaq::oks::OksMethodImplementation *Implementation, std::string Prototype)
void PushRemoveAttributeCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksAttribute *Attribute, std::string name, std::string type, bool is_mv, std::string range, std::string init_values, std::string description, bool is_null, dunedaq::oks::OksAttribute::Format format=dunedaq::oks::OksAttribute::Format::Dec)
void PushAddRelationship(dunedaq::oks::OksClass *Class, std::string Name, std::string Description, std::string Type, bool Composite, bool Exclusive, bool Dependent, dunedaq::oks::OksRelationship::CardinalityConstraint LowCc, dunedaq::oks::OksRelationship::CardinalityConstraint HighCc)
void PushAddMethodImplementationComand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksMethod *Method, std::string Language, std::string Prototype, std::string Body)
void ClassCreated(QString ClassName)
void PushSetIsExclusiveRelationshipCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksRelationship *Relationship, bool Value)
void PushSetDescriptionClassCommand(dunedaq::oks::OksClass *Class, std::string Description)
std::string ModifiedSchemaFiles() const
void PushSetAttributeMultiCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksAttribute *Attribute, bool NewIsMulti)
bool AnyClassReferenceThis(dunedaq::oks::OksClass *SchemaClass)
void PushSetAttributeInitialValuesCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksAttribute *Attribute, std::string NewValues)
void PushSetDescriptionMethodCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksMethod *Method, std::string description)
KernelWrapper(QObject *parent=nullptr)
void SetInheritanceMode(bool Mode)
Editor Functions.
void PushSetClassTypeRelationshipCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksRelationship *Relationship, std::string ClassType)
dunedaq::oks::OksKernel * Kernel
void PushRemoveMethodImplementationComand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksMethod *Method, std::string Language, std::string Prototype, std::string Body)
void CreateNewSchema(const std::string &SchemaName) const
void PushSetNameMethodCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksMethod *Method, std::string name)
Method commands.
void LoadSchema(const std::string &SchemaName) const
void PushRemoveRelationship(dunedaq::oks::OksClass *Class, dunedaq::oks::OksRelationship *Relationship, std::string Name, std::string Description, std::string Type, bool Composite, bool Exclusive, bool Dependent, dunedaq::oks::OksRelationship::CardinalityConstraint LowCc, dunedaq::oks::OksRelationship::CardinalityConstraint HighCc)
void PushSetAttributeTypeCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksAttribute *Attribute, std::string NewType)
void ClassRemoved(QString ClassName)
void PushAddAttributeCommand(dunedaq::oks::OksClass *Class, std::string name, std::string type, bool is_mv, std::string range, std::string init_values, std::string description, bool is_null, dunedaq::oks::OksAttribute::Format format=dunedaq::oks::OksAttribute::Format::Dec)
void PushRemoveClassCommand(dunedaq::oks::OksClass *Class, std::string ClassName, std::string ClassDescription, bool Abstract)
void PushSetLowCcRelationshipCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksRelationship *Relationship, dunedaq::oks::OksRelationship::CardinalityConstraint NewCardinality)
bool IsFileWritable(const std::string &FileName) const
void AddInclude(std::string schemaFile, std::string IncludeFile) const
void PushSetDescriptionRelationshipCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksRelationship *Relationship, std::string Description)
void PushAddMethodCommand(dunedaq::oks::OksClass *Class, std::string name, std::string description)
void PushRemoveMethodCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksMethod *Method, std::string name, std::string description)
void PushCreateClassCommand(std::string ClassName, std::string ClassDescription, bool Abstract)
void PushSetNameRelationshipCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksRelationship *Relationship, std::string Name)
Relationship commands.
void PushSetAttributeNameCommand(dunedaq::oks::OksClass *Class, dunedaq::oks::OksAttribute *Attribute, std::string NewName)
Attribute commands.
void PushSetMethodImplementationBody(dunedaq::oks::OksClass *Class, dunedaq::oks::OksMethod *Method, dunedaq::oks::OksMethodImplementation *Implementation, std::string Body)
void GetSchemaFiles(std::vector< std::string > &SchemaFiles)
OKS attribute class.
The OKS class.
Definition class.hpp:200
Provides interface to the OKS kernel.
Definition kernel.hpp:577
OKS method implementation class.
Definition method.hpp:35
OKS method class.
Definition method.hpp:153
Including QT Headers.
Including Qt Headers.
Definition __init__.py:1