ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
TrigConf::QueryDefinition Class Reference

#include <TrigDBHelper.h>

Collaboration diagram for TrigConf::QueryDefinition:

Public Member Functions

void addToTableList (const std::string &table, const std::string &table_short="")
 
void extendCondition (const std::string &condext)
 
template<typename T >
void extendOutput (const std::string &fieldName)
 
template<typename T >
void extendBinding (const std::string &fieldName)
 
template<typename T >
void setBoundValue (const std::string &fieldName, const T &value)
 
std::unique_ptr< coral::IQuery > createQuery (coral::ISessionProxy *session)
 
void setDataName (const std::string &dataName)
 
const std::string & dataName ()
 

Private Attributes

std::vector< std::pair< std::string, std::string > > m_tables {}
 
std::string m_condition {""}
 
coral::AttributeList m_attList
 
coral::AttributeList m_bindList
 
std::string m_dataName
 
std::set< std::string > m_bound
 

Detailed Description

Definition at line 28 of file TrigDBHelper.h.

Member Function Documentation

◆ addToTableList()

void TrigConf::QueryDefinition::addToTableList ( const std::string &  table,
const std::string &  table_short = "" 
)

Definition at line 42 of file TrigDBHelper.cxx.

43 {
44  m_tables.emplace_back(table, table_short);
45 }

◆ createQuery()

std::unique_ptr< coral::IQuery > TrigConf::QueryDefinition::createQuery ( coral::ISessionProxy *  session)

Definition at line 10 of file TrigDBHelper.cxx.

11 {
12 
13  std::unique_ptr< coral::IQuery > query( session->nominalSchema().newQuery() );
14 
15  // set tables
16  for( auto & table : m_tables ) {
17  query->addToTableList( table.first, table.second );
18  }
19 
20  // ensure that all the requested variables are bound
21  for( auto & bindVar : m_bindList ) {
22  const std::string & fieldName = bindVar.specification().name();
23  if( m_bound.find( fieldName ) == m_bound.end() ) {
24  throw std::runtime_error( "Column " + fieldName + " has been bound, but not set to a value" );
25  }
26  }
27 
28  // condition
29  query->setCondition( m_condition, m_bindList );
30 
31  // output
32  query->defineOutput( m_attList );
33  for( const coral::Attribute & attr : m_attList ) {
34  query->addToOutputList(attr.specification().name());
35  }
36 
37  return query;
38 }

◆ dataName()

const std::string& TrigConf::QueryDefinition::dataName ( )
inline

Definition at line 51 of file TrigDBHelper.h.

51  {
52  return m_dataName;
53  }

◆ extendBinding()

template<typename T >
void TrigConf::QueryDefinition::extendBinding ( const std::string &  fieldName)

Definition at line 70 of file TrigDBHelper.h.

70  {
71  m_bindList.extend<T>( fieldName );
72  }

◆ extendCondition()

void TrigConf::QueryDefinition::extendCondition ( const std::string &  condext)

Definition at line 48 of file TrigDBHelper.cxx.

48  {
49  if( m_condition.size()>0 && condext.size()>0 && m_condition.back() != ' ' && condext[0] != ' ') {
50  m_condition += " ";
51  }
52  m_condition += condext;
53 }

◆ extendOutput()

template<typename T >
void TrigConf::QueryDefinition::extendOutput ( const std::string &  fieldName)

Definition at line 65 of file TrigDBHelper.h.

65  {
66  m_attList.extend<T>( fieldName );
67  }

◆ setBoundValue()

template<typename T >
void TrigConf::QueryDefinition::setBoundValue ( const std::string &  fieldName,
const T &  value 
)

Definition at line 75 of file TrigDBHelper.h.

75  {
76  m_bindList[fieldName].setValue(value);
77  m_bound.insert(fieldName);
78  }

◆ setDataName()

void TrigConf::QueryDefinition::setDataName ( const std::string &  dataName)
inline

Definition at line 47 of file TrigDBHelper.h.

47  {
49  }

Member Data Documentation

◆ m_attList

coral::AttributeList TrigConf::QueryDefinition::m_attList
private

Definition at line 58 of file TrigDBHelper.h.

◆ m_bindList

coral::AttributeList TrigConf::QueryDefinition::m_bindList
private

Definition at line 59 of file TrigDBHelper.h.

◆ m_bound

std::set<std::string> TrigConf::QueryDefinition::m_bound
private

Definition at line 61 of file TrigDBHelper.h.

◆ m_condition

std::string TrigConf::QueryDefinition::m_condition {""}
private

Definition at line 57 of file TrigDBHelper.h.

◆ m_dataName

std::string TrigConf::QueryDefinition::m_dataName
private

Definition at line 60 of file TrigDBHelper.h.

◆ m_tables

std::vector<std::pair<std::string,std::string> > TrigConf::QueryDefinition::m_tables {}
private

Definition at line 56 of file TrigDBHelper.h.


The documentation for this class was generated from the following files:
TrigConf::QueryDefinition::m_condition
std::string m_condition
Definition: TrigDBHelper.h:57
athena.value
value
Definition: athena.py:122
query
Definition: query.py:1
taskman.fieldName
fieldName
Definition: taskman.py:492
TrigConf::QueryDefinition::m_attList
coral::AttributeList m_attList
Definition: TrigDBHelper.h:58
query_example.query
query
Definition: query_example.py:15
TrigConf::QueryDefinition::m_bindList
coral::AttributeList m_bindList
Definition: TrigDBHelper.h:59
python.ext.table_printer.table
list table
Definition: table_printer.py:81
TrigConf::QueryDefinition::m_tables
std::vector< std::pair< std::string, std::string > > m_tables
Definition: TrigDBHelper.h:56
TrigConf::QueryDefinition::m_dataName
std::string m_dataName
Definition: TrigDBHelper.h:60
TrigConf::QueryDefinition::m_bound
std::set< std::string > m_bound
Definition: TrigDBHelper.h:61
TrigConf::QueryDefinition::dataName
const std::string & dataName()
Definition: TrigDBHelper.h:51
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35