ATLAS Offline Software
Loading...
Searching...
No Matches
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 */
24namespace 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,
41 };
42 // Accepted Data type definitions
53 private:
54 friend class DbTypeInfo;
56 std::string m_typeName;
58 std::string m_colName;
64 int m_opts;
66 int m_size;
68 int m_type;
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
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.
std::string m_typeName
OS independent type name.
Definition DbColumn.h:56
bool isValid() const
Is it a valid (known) data type ?
Definition DbColumn.h:97
int options() const
Access to options.
Definition DbColumn.h:103
DbColumn()
Cache class information (if available) Do not allow unwanted instantiations by users.
Definition DbColumn.h:71
int m_nElem
For fixed size arrays: number of object elements.
Definition DbColumn.h:62
int m_type
Storage Type identifier.
Definition DbColumn.h:68
DbColumn(const DbColumn &)=default
Default copy constructor.
static const std::string typeName(int typ)
Access type name by type identifier from RTTI.
DbColumn(const std::string &nam, const std::string &clazz, int object_type, int object_offset)
Initializing constructor for composite columns.
DbColumn & operator=(const DbColumn &)=default
const std::string toString() const
Create string representation of the type information object.
int m_offset
Offset from object pointer.
Definition DbColumn.h:60
int size() const
Size of a single object within the column.
Definition DbColumn.h:107
StatusCode fromString(const std::string &string_rep)
Load type information object from string representation.
virtual ~DbColumn()
Standard destructor.
Definition DbColumn.h:95
int typeID() const
Integer type identifier.
Definition DbColumn.h:111
const std::string & typeName() const
Access to OS independent type name.
Definition DbColumn.h:101
int m_opts
Column options.
Definition DbColumn.h:64
std::string m_colName
Column name.
Definition DbColumn.h:58
int offset() const
Offset of column from this pointer.
Definition DbColumn.h:105
friend class DbTypeInfo
Definition DbColumn.h:54
int nElement() const
Number of elements.
Definition DbColumn.h:109
const std::string & name() const
Access to column name.
Definition DbColumn.h:99
int m_size
Object size.
Definition DbColumn.h:66
pool namespace
Definition libname.h:15