ATLAS Offline Software
Loading...
Searching...
No Matches
DbColumn.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
3*/
4
5// $Id: DbColumn.h 726071 2016-02-25 09:23:05Z krasznaa $
6//====================================================================
7// DbColumn class definitions
8//--------------------------------------------------------------------
9//
10// Package : StorageSvc (The POOL project)
11// @author M.Frank
12//====================================================================
13#ifndef POOL_DBCOLUMN_H
14#define POOL_DBCOLUMN_H 1
15
16// Framework include files
17#include "StorageSvc/DbStatus.h"
18// STL include files
19#include <typeinfo>
20#include <string>
21
22/*
23 * POOL namespace declaration
24 */
25namespace pool {
26
35 class DbColumn {
36 public:
37 enum Options {PRIMARY_KEY = 1 << 0,
38 NOT_NULL = 1 << 1,
39 UNIQUE = 1 << 2,
40 CLUSTERED = 1 << 3,
42 };
43 // Accepted Data type definitions
54 private:
55 friend class DbTypeInfo;
57 std::string m_typeName;
59 std::string m_colName;
65 int m_opts;
67 int m_size;
69 int m_type;
73 : m_offset(0),
74 m_nElem(0),
75 m_opts(0),
76 m_size(0),
77 m_type(0)
78 {}
79 public:
81 DbColumn(const DbColumn&) = default;
82 DbColumn& operator=(const DbColumn&) = default;
84 DbColumn( const std::string& column_name,
85 int object_type,
86 int object_offset,
87 int object_size,
88 int number_of_elements=1,
89 int opt=0);
91 DbColumn( const std::string& nam,
92 const std::string& clazz,
93 int object_type,
94 int object_offset);
96 virtual ~DbColumn() { }
98 bool isValid() const { return m_typeName.length()>0;}
100 const std::string& name() const { return m_colName; }
102 const std::string& typeName() const { return m_typeName; }
104 int options() const { return m_opts; }
106 int offset() const { return m_offset; }
108 int size() const { return m_size; }
110 int nElement() const { return m_nElem; }
112 int typeID() const { return m_type; }
114 const std::string toString() const;
116 DbStatus fromString(const std::string& string_rep);
118 static const std::string typeName(int typ);
119 };
120} // End namespace pool
121#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:57
bool isValid() const
Is it a valid (known) data type ?
Definition DbColumn.h:98
int options() const
Access to options.
Definition DbColumn.h:104
DbColumn()
Cache class information (if available) Do not allow unwanted instantiations by users.
Definition DbColumn.h:72
int m_nElem
For fixed size arrays: number of object elements.
Definition DbColumn.h:63
int m_type
Storage Type identifier.
Definition DbColumn.h:69
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:61
int size() const
Size of a single object within the column.
Definition DbColumn.h:108
virtual ~DbColumn()
Standard destructor.
Definition DbColumn.h:96
int typeID() const
Integer type identifier.
Definition DbColumn.h:112
const std::string & typeName() const
Access to OS independent type name.
Definition DbColumn.h:102
int m_opts
Column options.
Definition DbColumn.h:65
std::string m_colName
Column name.
Definition DbColumn.h:59
int offset() const
Offset of column from this pointer.
Definition DbColumn.h:106
friend class DbTypeInfo
Definition DbColumn.h:55
int nElement() const
Number of elements.
Definition DbColumn.h:110
const std::string & name() const
Access to column name.
Definition DbColumn.h:100
DbStatus fromString(const std::string &string_rep)
Load type information object from string representation.
int m_size
Object size.
Definition DbColumn.h:67
This class is highly inspired by the error code distribution system as it is used in DEC/VMS or MS/WN...
Definition DbStatus.h:64
pool namespace
Definition libname.h:15