ATLAS Offline Software
Loading...
Searching...
No Matches
DbOption.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5//====================================================================
6// DbOption class definitions
7//--------------------------------------------------------------------
8//
9// Package : StorageSvc (The POOL project)
10// @author M.Frank
11//====================================================================
12#ifndef POOL_DBOPTION_H
13#define POOL_DBOPTION_H 1
14
15// Framework include files
16#include "StorageSvc/DbColumn.h"
17#include "GaudiKernel/StatusCode.h"
18
19/*
20 * POOL namespace declaration
21 */
22namespace pool {
23
36 class DbOption {
37 public:
38
39 union Value {
40 long long int val_long;
42 double val_double;
43 void* val_pvoid;
44 char* val_pchar;
45 };
46
52 std::string m_name;
54 std::string m_opt;
55
56 public:
58 template <class T> DbOption(const std::string& nam,
59 const std::string& opt,
60 T value)
61 : m_type(DbColumn::UNKNOWN), m_name(nam), m_opt(opt)
62 { i_setValue(typeid(T), &value).ignore(); }
63
65 DbOption(const std::string& nam, const std::string& opt="")
66 : m_type(DbColumn::UNKNOWN), m_name(nam), m_opt(opt)
67 { }
68
70 const std::string& option() const { return m_opt; }
72 const std::string& name() const { return m_name; }
74 DbColumn::Type type() const { return m_type; }
75
77 template<class T> StatusCode setValue(T value)
78 { return i_setValue(typeid(T), &value); }
79
81 template<class T> StatusCode getValue(T& value) const
82 { return i_getValue(typeid(T), &value); }
83
85 StatusCode i_setValue(const std::type_info& typ, const void* value);
86
88 StatusCode i_getValue(const std::type_info& typ, void* value) const;
89
91 std::string typeName() const { return DbColumn::typeName(m_type); }
92 };
93} // End namespace pool
94#endif // POOL_DbOption_H
Description: Definition of the generic column in a (relational) Database.
Definition DbColumn.h:34
const std::string & typeName() const
Access to OS independent type name.
Definition DbColumn.h:101
std::string m_name
Option name identifier.
Definition DbOption.h:52
Value m_value
Buffer holding option value.
Definition DbOption.h:48
const std::string & name() const
Access to column name.
Definition DbOption.h:72
StatusCode i_setValue(const std::type_info &typ, const void *value)
Set the option value.
StatusCode i_getValue(const std::type_info &typ, void *value) const
Read the option value.
StatusCode getValue(T &value) const
Read the option value.
Definition DbOption.h:81
DbColumn::Type m_type
Option data type.
Definition DbOption.h:50
std::string typeName() const
Access to OS independent type name.
Definition DbOption.h:91
const std::string & option() const
Access to column name.
Definition DbOption.h:70
std::string m_opt
Optional identifier.
Definition DbOption.h:54
DbColumn::Type type() const
Integer type identifier.
Definition DbOption.h:74
StatusCode setValue(T value)
Set the option value.
Definition DbOption.h:77
DbOption(const std::string &nam, const std::string &opt="")
Initializing constructor with type definition.
Definition DbOption.h:65
DbOption(const std::string &nam, const std::string &opt, T value)
Initializing constructor.
Definition DbOption.h:58
Framework include files.
Definition libname.h:15
long long int val_long
Definition DbOption.h:40