ATLAS Offline Software
DbOption.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // $Id: DbOption.h 726071 2016-02-25 09:23:05Z krasznaa $
6 //====================================================================
7 // DbOption class definitions
8 //--------------------------------------------------------------------
9 //
10 // Package : StorageSvc (The POOL project)
11 // @author M.Frank
12 //====================================================================
13 #ifndef POOL_DBOPTION_H
14 #define POOL_DBOPTION_H 1
15 
16 // Framework include files
17 #include "StorageSvc/DbColumn.h"
18 
19 /*
20  * POOL namespace declaration
21  */
22 namespace pool {
23 
36  class DbOption {
37  public:
46  union Value {
47  long long int val_long;
48  int val_int;
49  double val_double;
50  void* val_pvoid;
51  char* val_pchar;
52  };
58  std::string m_name;
60  std::string m_opt;
61 
63  DbStatus i_setValue(const std::type_info& typ, const void* value);
65  DbStatus i_getValue(const std::type_info& typ, void* value) const;
66 
67  public:
69  template <class T> DbOption(const std::string& nam,
70  const std::string& opt,
71  T value)
72  : m_type(DbColumn::UNKNOWN), m_name(nam), m_opt(opt)
73  { i_setValue(typeid(T), &value); }
75  DbOption(const std::string& nam, const std::string& opt="");
78  virtual ~DbOption() { }
80  const std::string& option() const { return m_opt; }
82  const std::string& name() const { return m_name; }
84  DbColumn::Type type() const { return m_type; }
86  template<class T> DbStatus _setValue(T value)
87  { return i_setValue(typeid(T), &value); }
89  template<class T> DbStatus _getValue(T& value) const
90  { return i_getValue(typeid(T), &value); }
92  std::string typeName() const;
97  };
98 } // End namespace pool
99 #endif // POOL_DbOption_H
pool::DbOption::m_opt
std::string m_opt
Optional identifier.
Definition: DbOption.h:60
pool::DbStatus
Definition: DbStatus.h:67
pool::DbOption::i_getValue
DbStatus i_getValue(const std::type_info &typ, void *value) const
Set the option value.
pool::DbOption::_getValue
DbStatus _getValue(T &value) const
Set the option value.
Definition: DbOption.h:89
pool::DbOption::Value::val_pchar
char * val_pchar
Definition: DbOption.h:51
pool
pool namespace
Definition: libname.h:15
pool::DbOption::i_setValue
DbStatus i_setValue(const std::type_info &typ, const void *value)
Set the option value.
athena.value
value
Definition: athena.py:122
pool::DbOption::Value::val_double
double val_double
Definition: DbOption.h:49
pool::DbOption::option
const std::string & option() const
Access to column name.
Definition: DbOption.h:80
pool::DbOption::m_type
DbColumn::Type m_type
Option data type.
Definition: DbOption.h:56
pool::DbOption::~DbOption
virtual ~DbOption()
Default copy constructor Standard destructor.
Definition: DbOption.h:78
DbColumn.h
pool::DbOption::Value::val_pvoid
void * val_pvoid
Definition: DbOption.h:50
pool::DbOption::DbOption
DbOption(const std::string &nam, const std::string &opt, T value)
Initializing constructor.
Definition: DbOption.h:69
pool::DbOption::type
DbColumn::Type type() const
Integer type identifier.
Definition: DbOption.h:84
pool::DbOption::typeName
std::string typeName() const
Access to OS independent type name.
pool::DbOption
Definition: DbOption.h:36
pool::DbOption::m_name
std::string m_name
Option name identifier.
Definition: DbOption.h:58
pool::DbOption::Value
Definition: DbOption.h:46
pool::DbOption::getValue
DbStatus getValue(DbColumn::Type typ, void *value) const
Set the option value.
pool::DbOption::name
const std::string & name() const
Access to column name.
Definition: DbOption.h:82
pmontree.opt
opt
Definition: pmontree.py:16
pool::DbOption::_setValue
DbStatus _setValue(T value)
Set the option value.
Definition: DbOption.h:86
pool::DbColumn
Definition: DbColumn.h:35
pool::DbOption::m_value
Value m_value
Buffer holding option value.
Definition: DbOption.h:54
pool::DbColumn::Type
Type
Definition: DbColumn.h:44
pool::DbOption::DbOption
DbOption(const std::string &nam, const std::string &opt="")
Initializing constructor with type definition.
pool::DbOption::Value::val_int
int val_int
Definition: DbOption.h:48
pool::DbOption::setValue
DbStatus setValue(DbColumn::Type typ, const void *value)
Set the option value.
pool::DbOption::Value::val_long
long long int val_long
Definition: DbOption.h:47