BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
UniGenerateClasses.h
Go to the documentation of this file.
1
// -------------------------------------------------------------------------
2
// ----- UniGenerateClasses header file -----
3
// ----- Created 18/08/15 by K. Gertsenberger -----
4
// -------------------------------------------------------------------------
5
6
/** UniGenerateClasses.h
7
*@author K.Gertsenberger <gertsen@jinr.ru>
8
**
9
** Class for autogenerating database classes based on the database structure (tables)
10
**/
11
12
#ifndef UNIGENERATECLASSES_H
13
#define UNIGENERATECLASSES_H 1
14
15
#include "
TObjArray.h
"
16
#include "
TString.h
"
17
18
enum
ConnectionType
19
{
20
UNIFIED_DB
,
21
ELOG_DB
22
};
23
24
struct
structColumnInfo
25
{
26
// column name (e.g. run_number)
27
TString
strColumnName
;
28
// <column name> for 'not null' (e.g. run_number), *<column_name> for null (e.g. *run_number)
29
TString
strColumnPointer
;
30
// column name with spaces instead of '_' (e.g. run number)
31
TString
strColumnNameSpace
;
32
// C++/ROOT variable type corresponding column (e.g. int and int*)
33
TString
strVariableType
;
34
// <variable type> for 'not null', <variable type> without '*' at the end for null (e.g. int and int)
35
TString
strVariableTypePointer
;
36
TString
strStatementType
;
37
// symbol corresponding variable type as it presented in printf (or TString::Format)
38
TString
strPrintfType
;
39
// member class variable name corresponding table column
40
TString
strVariableName
;
41
// temp variable name for tempopary copy this variable
42
TString
strTempVariableName
;
43
// short variable name (e.g. ComponentName for 'component_name' column
44
TString
strShortVariableName
;
45
bool
isIdentity
;
46
bool
isPrimary
;
47
bool
isCompositeKey
;
48
bool
isUnique
;
49
bool
isNullable
;
50
bool
isBinary
;
51
bool
isDateTime
;
52
bool
isTimeStamp
;
53
};
54
55
// structure to join fields of another table
56
struct
structTableJoin
57
{
58
TString
strSourceTableName
;
59
TString
strJoinTableName
;
60
structColumnInfo
strJoinField
;
61
TObjArray*
arrManualFieldNames
;
62
63
structTableJoin
() {
arrManualFieldNames
=
nullptr
; }
64
~structTableJoin
()
65
{
66
if
(
arrManualFieldNames
)
67
delete
arrManualFieldNames
;
68
}
69
};
70
71
class
UniGenerateClasses
72
{
73
public
:
74
UniGenerateClasses
();
// Constructor
75
virtual
~UniGenerateClasses
();
// Destructor
76
77
// Generate C++ classes - wrappers for all tables of the given database
78
// Parameters:
79
// json_configuration_file - path to JSON file with the configuration of the class generator
80
static
int
GenerateClasses
(
TString
json_configuration_file);
81
82
ClassDef
(
UniGenerateClasses
, 2);
83
};
84
85
#endif
ClassDef
#define ClassDef(name, id)
TObjArray.h
TString.h
TString
UniGenerateClasses
Definition
UniGenerateClasses.h:72
UniGenerateClasses::UniGenerateClasses
UniGenerateClasses()
UniGenerateClasses::GenerateClasses
static int GenerateClasses(TString json_configuration_file)
UniGenerateClasses::~UniGenerateClasses
virtual ~UniGenerateClasses()
ConnectionType
ConnectionType
UniGenerateClasses.h.
Definition
UniGenerateClasses.h:19
ELOG_DB
@ ELOG_DB
Definition
UniGenerateClasses.h:21
UNIFIED_DB
@ UNIFIED_DB
Definition
UniGenerateClasses.h:20
structColumnInfo
Definition
UniGenerateClasses.h:25
structColumnInfo::isDateTime
bool isDateTime
Definition
UniGenerateClasses.h:51
structColumnInfo::strVariableType
TString strVariableType
Definition
UniGenerateClasses.h:33
structColumnInfo::isPrimary
bool isPrimary
Definition
UniGenerateClasses.h:46
structColumnInfo::strStatementType
TString strStatementType
Definition
UniGenerateClasses.h:36
structColumnInfo::isUnique
bool isUnique
Definition
UniGenerateClasses.h:48
structColumnInfo::strPrintfType
TString strPrintfType
Definition
UniGenerateClasses.h:38
structColumnInfo::strColumnPointer
TString strColumnPointer
Definition
UniGenerateClasses.h:29
structColumnInfo::strVariableName
TString strVariableName
Definition
UniGenerateClasses.h:40
structColumnInfo::strShortVariableName
TString strShortVariableName
Definition
UniGenerateClasses.h:44
structColumnInfo::isNullable
bool isNullable
Definition
UniGenerateClasses.h:49
structColumnInfo::strTempVariableName
TString strTempVariableName
Definition
UniGenerateClasses.h:42
structColumnInfo::isTimeStamp
bool isTimeStamp
Definition
UniGenerateClasses.h:52
structColumnInfo::strColumnNameSpace
TString strColumnNameSpace
Definition
UniGenerateClasses.h:31
structColumnInfo::strVariableTypePointer
TString strVariableTypePointer
Definition
UniGenerateClasses.h:35
structColumnInfo::isIdentity
bool isIdentity
Definition
UniGenerateClasses.h:45
structColumnInfo::isCompositeKey
bool isCompositeKey
Definition
UniGenerateClasses.h:47
structColumnInfo::strColumnName
TString strColumnName
Definition
UniGenerateClasses.h:27
structColumnInfo::isBinary
bool isBinary
Definition
UniGenerateClasses.h:50
structTableJoin
Definition
UniGenerateClasses.h:57
structTableJoin::arrManualFieldNames
TObjArray * arrManualFieldNames
Definition
UniGenerateClasses.h:61
structTableJoin::structTableJoin
structTableJoin()
Definition
UniGenerateClasses.h:63
structTableJoin::strJoinField
structColumnInfo strJoinField
Definition
UniGenerateClasses.h:60
structTableJoin::~structTableJoin
~structTableJoin()
Definition
UniGenerateClasses.h:64
structTableJoin::strSourceTableName
TString strSourceTableName
Definition
UniGenerateClasses.h:58
structTableJoin::strJoinTableName
TString strJoinTableName
Definition
UniGenerateClasses.h:59
install
include
UniGenerateClasses.h
Generated on
for BmnRoot by
1.17.0