ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Database
APR
StorageSvc
StorageSvc
DbColumn.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
//====================================================================
6
// DbColumn class definitions
7
//--------------------------------------------------------------------
8
//
9
// Package : StorageSvc (The POOL project)
10
// @author M.Frank
11
//====================================================================
12
#ifndef POOL_DBCOLUMN_H
13
#define POOL_DBCOLUMN_H 1
14
15
// Framework include files
16
#include "GaudiKernel/StatusCode.h"
17
// STL include files
18
#include <typeinfo>
19
#include <string>
20
21
/*
22
* POOL namespace declaration
23
*/
24
namespace
pool
{
25
34
class
DbColumn
{
35
public
:
36
enum
Options
{
PRIMARY_KEY
= 1 << 0,
37
NOT_NULL
= 1 << 1,
38
UNIQUE
= 1 << 2,
39
CLUSTERED
= 1 << 3,
40
NONCLUSTERED
= 1 << 4
41
};
42
// Accepted Data type definitions
43
enum
Type
{
44
UNKNOWN
= 0,
45
UCHAR
,
USHORT
,
UINT
,
ULONG
,
46
CHAR
,
SHORT
,
INT
,
LONG
,
47
BOOL
,
FLOAT
,
DOUBLE
,
48
STRING
,
NTCHAR
,
LONG_STRING
,
LONG_NTCHAR
,
49
OBJECT_REF
,
CONTAINED_REF
,
TOKEN
,
BLOB
,
50
ANY
,
POINTER
,
LONGLONG
,
ULONGLONG
,
51
NATIVE_TYPES
= 1000
52
};
53
private
:
54
friend
class
DbTypeInfo
;
56
std::string
m_typeName
;
58
std::string
m_colName
;
60
int
m_offset
;
62
int
m_nElem
;
64
int
m_opts
;
66
int
m_size
;
68
int
m_type
;
71
DbColumn
()
72
:
m_offset
(0),
73
m_nElem
(0),
74
m_opts
(0),
75
m_size
(0),
76
m_type
(0)
77
{}
78
public
:
80
DbColumn
(
const
DbColumn
&) =
default
;
81
DbColumn
&
operator=
(
const
DbColumn
&) =
default
;
83
DbColumn
(
const
std::string& column_name,
84
int
object_type,
85
int
object_offset,
86
int
object_size,
87
int
number_of_elements=1,
88
int
opt=0);
90
DbColumn
(
const
std::string& nam,
91
const
std::string& clazz,
92
int
object_type,
93
int
object_offset);
95
virtual
~DbColumn
() { }
97
bool
isValid
()
const
{
return
m_typeName
.length()>0;}
99
const
std::string&
name
()
const
{
return
m_colName
; }
101
const
std::string&
typeName
()
const
{
return
m_typeName
; }
103
int
options
()
const
{
return
m_opts
; }
105
int
offset
()
const
{
return
m_offset
; }
107
int
size
()
const
{
return
m_size
; }
109
int
nElement
()
const
{
return
m_nElem
; }
111
int
typeID
()
const
{
return
m_type
; }
113
const
std::string
toString
()
const
;
115
StatusCode
fromString
(
const
std::string& string_rep);
117
static
const
std::string
typeName
(
int
typ);
118
};
119
}
// End namespace pool
120
#endif
// POOL_DBCOLUMN_H
pool::DbColumn::DbColumn
DbColumn(const std::string &column_name, int object_type, int object_offset, int object_size, int number_of_elements=1, int opt=0)
Initializing constructor for fixed size arrays.
pool::DbColumn::m_typeName
std::string m_typeName
OS independent type name.
Definition
DbColumn.h:56
pool::DbColumn::isValid
bool isValid() const
Is it a valid (known) data type ?
Definition
DbColumn.h:97
pool::DbColumn::options
int options() const
Access to options.
Definition
DbColumn.h:103
pool::DbColumn::DbColumn
DbColumn()
Cache class information (if available) Do not allow unwanted instantiations by users.
Definition
DbColumn.h:71
pool::DbColumn::m_nElem
int m_nElem
For fixed size arrays: number of object elements.
Definition
DbColumn.h:62
pool::DbColumn::m_type
int m_type
Storage Type identifier.
Definition
DbColumn.h:68
pool::DbColumn::DbColumn
DbColumn(const DbColumn &)=default
Default copy constructor.
pool::DbColumn::typeName
static const std::string typeName(int typ)
Access type name by type identifier from RTTI.
pool::DbColumn::DbColumn
DbColumn(const std::string &nam, const std::string &clazz, int object_type, int object_offset)
Initializing constructor for composite columns.
pool::DbColumn::operator=
DbColumn & operator=(const DbColumn &)=default
pool::DbColumn::toString
const std::string toString() const
Create string representation of the type information object.
pool::DbColumn::m_offset
int m_offset
Offset from object pointer.
Definition
DbColumn.h:60
pool::DbColumn::size
int size() const
Size of a single object within the column.
Definition
DbColumn.h:107
pool::DbColumn::fromString
StatusCode fromString(const std::string &string_rep)
Load type information object from string representation.
pool::DbColumn::~DbColumn
virtual ~DbColumn()
Standard destructor.
Definition
DbColumn.h:95
pool::DbColumn::typeID
int typeID() const
Integer type identifier.
Definition
DbColumn.h:111
pool::DbColumn::typeName
const std::string & typeName() const
Access to OS independent type name.
Definition
DbColumn.h:101
pool::DbColumn::Options
Options
Definition
DbColumn.h:36
pool::DbColumn::CLUSTERED
@ CLUSTERED
Definition
DbColumn.h:39
pool::DbColumn::NOT_NULL
@ NOT_NULL
Definition
DbColumn.h:37
pool::DbColumn::NONCLUSTERED
@ NONCLUSTERED
Definition
DbColumn.h:40
pool::DbColumn::UNIQUE
@ UNIQUE
Definition
DbColumn.h:38
pool::DbColumn::PRIMARY_KEY
@ PRIMARY_KEY
Definition
DbColumn.h:36
pool::DbColumn::m_opts
int m_opts
Column options.
Definition
DbColumn.h:64
pool::DbColumn::m_colName
std::string m_colName
Column name.
Definition
DbColumn.h:58
pool::DbColumn::Type
Type
Definition
DbColumn.h:43
pool::DbColumn::ULONG
@ ULONG
Definition
DbColumn.h:45
pool::DbColumn::ANY
@ ANY
Definition
DbColumn.h:50
pool::DbColumn::UINT
@ UINT
Definition
DbColumn.h:45
pool::DbColumn::ULONGLONG
@ ULONGLONG
Definition
DbColumn.h:50
pool::DbColumn::USHORT
@ USHORT
Definition
DbColumn.h:45
pool::DbColumn::UNKNOWN
@ UNKNOWN
Definition
DbColumn.h:44
pool::DbColumn::BOOL
@ BOOL
Definition
DbColumn.h:47
pool::DbColumn::POINTER
@ POINTER
Definition
DbColumn.h:50
pool::DbColumn::UCHAR
@ UCHAR
Definition
DbColumn.h:45
pool::DbColumn::LONG_NTCHAR
@ LONG_NTCHAR
Definition
DbColumn.h:48
pool::DbColumn::INT
@ INT
Definition
DbColumn.h:46
pool::DbColumn::DOUBLE
@ DOUBLE
Definition
DbColumn.h:47
pool::DbColumn::NTCHAR
@ NTCHAR
Definition
DbColumn.h:48
pool::DbColumn::NATIVE_TYPES
@ NATIVE_TYPES
Definition
DbColumn.h:51
pool::DbColumn::LONG
@ LONG
Definition
DbColumn.h:46
pool::DbColumn::FLOAT
@ FLOAT
Definition
DbColumn.h:47
pool::DbColumn::TOKEN
@ TOKEN
Definition
DbColumn.h:49
pool::DbColumn::LONG_STRING
@ LONG_STRING
Definition
DbColumn.h:48
pool::DbColumn::OBJECT_REF
@ OBJECT_REF
Definition
DbColumn.h:49
pool::DbColumn::CONTAINED_REF
@ CONTAINED_REF
Definition
DbColumn.h:49
pool::DbColumn::SHORT
@ SHORT
Definition
DbColumn.h:46
pool::DbColumn::CHAR
@ CHAR
Definition
DbColumn.h:46
pool::DbColumn::LONGLONG
@ LONGLONG
Definition
DbColumn.h:50
pool::DbColumn::BLOB
@ BLOB
Definition
DbColumn.h:49
pool::DbColumn::STRING
@ STRING
Definition
DbColumn.h:48
pool::DbColumn::offset
int offset() const
Offset of column from this pointer.
Definition
DbColumn.h:105
pool::DbColumn::DbTypeInfo
friend class DbTypeInfo
Definition
DbColumn.h:54
pool::DbColumn::nElement
int nElement() const
Number of elements.
Definition
DbColumn.h:109
pool::DbColumn::name
const std::string & name() const
Access to column name.
Definition
DbColumn.h:99
pool::DbColumn::m_size
int m_size
Object size.
Definition
DbColumn.h:66
pool
Framework include files.
Definition
libname.h:15
Generated on
for ATLAS Offline Software by
1.17.0