CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::DB::DatabaseHandler Class Reference

#include <DatabaseHandler.hh>

Detailed Description

Provides access to all databases.

  • Holds map of <type name, db name> -> db
  • Lazy initialization
  • Does not do any checks on the operations of the databases, just provides access

Definition at line 28 of file DatabaseHandler.hh.

Classes

class  PropDBKey
 

Public Member Functions

 DatabaseHandler (const PrimClex &_primclex)
 
 ~DatabaseHandler ()
 
const PrimClexprimclex () const
 
template<typename T >
ValDatabase< T > & generic_db ()
 Access default Database<T> More...
 
template<typename T >
const ValDatabase< T > & generic_db () const
 Access default Database<T> More...
 
template<typename T >
const ValDatabase< T > & const_generic_db ()
 Access default Database<T> More...
 
template<typename T >
Database< T > & db ()
 Access default Database<T> More...
 
template<typename T >
const Database< T > & db () const
 Access default Database<T> More...
 
template<typename T >
const Database< T > & const_db ()
 Access default Database<T> More...
 
template<typename T >
PropertiesDatabasedb_props (std::string calc_type)
 Access default PropertiesDatabase. More...
 
template<typename T >
const PropertiesDatabasedb_props (std::string calc_type) const
 Access default PropertiesDatabase. More...
 
template<typename T >
const PropertiesDatabaseconst_db_props (std::string calc_type)
 Access default PropertiesDatabase. More...
 
void close ()
 Close all databases. More...
 
template<typename T >
void insert (std::string db_name, std::unique_ptr< DatabaseBase > &&value)
 Insert a Database. More...
 
template<typename T >
void insert_props (std::string db_name, std::string calc_type, std::unique_ptr< PropertiesDatabase > &&value)
 Insert a PropertiesDatabase. More...
 
template<typename T >
ValDatabase< T > & generic_db (std::string db_name)
 Access specified ValDatabase<T> More...
 
template<typename T >
const ValDatabase< T > & generic_db (std::string db_name) const
 Access specified ValDatabase<T> More...
 
template<typename T >
const ValDatabase< T > & const_generic_db (std::string db_name)
 Access specified ValDatabase<T> More...
 
template<typename T >
Database< T > & db (std::string db_name)
 Access specified Database<T> More...
 
template<typename T >
const Database< T > & db (std::string db_name) const
 Access specified Database<T> More...
 
template<typename T >
const Database< T > & const_db (std::string db_name)
 Access specified Database<T> More...
 
template<typename T >
PropertiesDatabasedb_props (std::string db_name, std::string calc_type)
 Access specified PropertiesDatabase. More...
 
template<typename T >
const PropertiesDatabasedb_props (std::string db_name, std::string calc_type) const
 Access specified PropertiesDatabase. More...
 
template<typename T >
const PropertiesDatabaseconst_db_props (std::string db_name, std::string calc_type)
 Access specified PropertiesDatabase. More...
 

Private Types

typedef std::map< std::pair< std::string, std::string >, std::unique_ptr< DatabaseBase > > map_type
 
typedef std::map< PropDBKey, std::unique_ptr< PropertiesDatabase > > props_map_type
 

Private Member Functions

template<typename T >
map_type::iterator _find (std::string db_name) const
 
template<typename T >
props_map_type::iterator _find_props (std::string db_name, std::string calc_type) const
 
template<typename T >
void _no_database_error (std::string db_name) const
 
template<typename T >
void _no_props_database_error (std::string db_name, std::string calc_type) const
 

Private Attributes

const PrimClexm_primclex
 
std::string m_default_db_name
 
map_type m_db
 
props_map_type m_db_props
 

Member Typedef Documentation

◆ map_type

typedef std::map<std::pair<std::string, std::string>, std::unique_ptr<DatabaseBase> > CASM::DB::DatabaseHandler::map_type
private

Definition at line 134 of file DatabaseHandler.hh.

◆ props_map_type

typedef std::map<PropDBKey, std::unique_ptr<PropertiesDatabase> > CASM::DB::DatabaseHandler::props_map_type
private

Definition at line 159 of file DatabaseHandler.hh.

Constructor & Destructor Documentation

◆ DatabaseHandler()

CASM::DB::DatabaseHandler::DatabaseHandler ( const PrimClex _primclex)

Constructor

Definition at line 14 of file DatabaseHandler.cc.

◆ ~DatabaseHandler()

CASM::DB::DatabaseHandler::~DatabaseHandler ( )

Definition at line 20 of file DatabaseHandler.cc.

Member Function Documentation

◆ _find()

template<typename T >
DatabaseHandler::map_type::iterator CASM::DB::DatabaseHandler::_find ( std::string  db_name) const
private

Definition at line 153 of file DatabaseHandler_impl.hh.

◆ _find_props()

template<typename T >
DatabaseHandler::props_map_type::iterator CASM::DB::DatabaseHandler::_find_props ( std::string  db_name,
std::string  calc_type 
) const
private

Definition at line 164 of file DatabaseHandler_impl.hh.

◆ _no_database_error()

template<typename T >
void CASM::DB::DatabaseHandler::_no_database_error ( std::string  db_name) const
private

Definition at line 175 of file DatabaseHandler_impl.hh.

◆ _no_props_database_error()

template<typename T >
void CASM::DB::DatabaseHandler::_no_props_database_error ( std::string  db_name,
std::string  calc_type 
) const
private

Definition at line 183 of file DatabaseHandler_impl.hh.

◆ close()

void CASM::DB::DatabaseHandler::close ( )

Close all databases.

Definition at line 25 of file DatabaseHandler.cc.

◆ const_db() [1/2]

template<typename T >
const Database< T > & CASM::DB::DatabaseHandler::const_db

Access default Database<T>

Definition at line 62 of file DatabaseHandler_impl.hh.

◆ const_db() [2/2]

template<typename T >
const Database< T > & CASM::DB::DatabaseHandler::const_db ( std::string  db_name)

Access specified Database<T>

Definition at line 123 of file DatabaseHandler_impl.hh.

◆ const_db_props() [1/2]

template<typename T >
const PropertiesDatabase & CASM::DB::DatabaseHandler::const_db_props ( std::string  calc_type)

Access default PropertiesDatabase.

Definition at line 81 of file DatabaseHandler_impl.hh.

◆ const_db_props() [2/2]

template<typename T >
const PropertiesDatabase & CASM::DB::DatabaseHandler::const_db_props ( std::string  db_name,
std::string  calc_type 
)

Access specified PropertiesDatabase.

Definition at line 146 of file DatabaseHandler_impl.hh.

◆ const_generic_db() [1/2]

template<typename T >
const ValDatabase< T > & CASM::DB::DatabaseHandler::const_generic_db

Access default Database<T>

Definition at line 44 of file DatabaseHandler_impl.hh.

◆ const_generic_db() [2/2]

template<typename T >
const ValDatabase< T > & CASM::DB::DatabaseHandler::const_generic_db ( std::string  db_name)

Access specified ValDatabase<T>

Access specified Database<T>

Definition at line 102 of file DatabaseHandler_impl.hh.

◆ db() [1/4]

template<typename T >
Database< T > & CASM::DB::DatabaseHandler::db

Access default Database<T>

Definition at line 50 of file DatabaseHandler_impl.hh.

◆ db() [2/4]

template<typename T >
const Database< T > & CASM::DB::DatabaseHandler::db

Access default Database<T>

Definition at line 56 of file DatabaseHandler_impl.hh.

◆ db() [3/4]

template<typename T >
Database< T > & CASM::DB::DatabaseHandler::db ( std::string  db_name)

Access specified Database<T>

Definition at line 109 of file DatabaseHandler_impl.hh.

◆ db() [4/4]

template<typename T >
const Database< T > & CASM::DB::DatabaseHandler::db ( std::string  db_name) const

Access specified Database<T>

Definition at line 116 of file DatabaseHandler_impl.hh.

◆ db_props() [1/4]

template<typename T >
PropertiesDatabase & CASM::DB::DatabaseHandler::db_props ( std::string  calc_type)

Access default PropertiesDatabase.

Definition at line 68 of file DatabaseHandler_impl.hh.

◆ db_props() [2/4]

template<typename T >
const PropertiesDatabase & CASM::DB::DatabaseHandler::db_props ( std::string  calc_type) const

Access default PropertiesDatabase.

Definition at line 74 of file DatabaseHandler_impl.hh.

◆ db_props() [3/4]

template<typename T >
PropertiesDatabase & CASM::DB::DatabaseHandler::db_props ( std::string  db_name,
std::string  calc_type 
)

Access specified PropertiesDatabase.

Definition at line 130 of file DatabaseHandler_impl.hh.

◆ db_props() [4/4]

template<typename T >
const PropertiesDatabase & CASM::DB::DatabaseHandler::db_props ( std::string  db_name,
std::string  calc_type 
) const

Access specified PropertiesDatabase.

Definition at line 138 of file DatabaseHandler_impl.hh.

◆ generic_db() [1/4]

template<typename T >
ValDatabase< T > & CASM::DB::DatabaseHandler::generic_db

Access default Database<T>

Definition at line 32 of file DatabaseHandler_impl.hh.

◆ generic_db() [2/4]

template<typename T >
const ValDatabase< T > & CASM::DB::DatabaseHandler::generic_db

Access default Database<T>

Definition at line 38 of file DatabaseHandler_impl.hh.

◆ generic_db() [3/4]

template<typename T >
ValDatabase< T > & CASM::DB::DatabaseHandler::generic_db ( std::string  db_name)

Access specified ValDatabase<T>

Access specified Database<T>

Definition at line 88 of file DatabaseHandler_impl.hh.

◆ generic_db() [4/4]

template<typename T >
const ValDatabase< T > & CASM::DB::DatabaseHandler::generic_db ( std::string  db_name) const

Access specified ValDatabase<T>

Access specified Database<T>

Definition at line 95 of file DatabaseHandler_impl.hh.

◆ insert()

template<typename T >
void CASM::DB::DatabaseHandler::insert ( std::string  db_name,
std::unique_ptr< DatabaseBase > &&  value 
)

Insert a Database.

Definition at line 16 of file DatabaseHandler_impl.hh.

◆ insert_props()

template<typename T >
void CASM::DB::DatabaseHandler::insert_props ( std::string  db_name,
std::string  calc_type,
std::unique_ptr< PropertiesDatabase > &&  value 
)

Insert a PropertiesDatabase.

Definition at line 23 of file DatabaseHandler_impl.hh.

◆ primclex()

const PrimClex & CASM::DB::DatabaseHandler::primclex ( ) const

Definition at line 22 of file DatabaseHandler.cc.

Member Data Documentation

◆ m_db

map_type CASM::DB::DatabaseHandler::m_db
mutableprivate

Definition at line 181 of file DatabaseHandler.hh.

◆ m_db_props

props_map_type CASM::DB::DatabaseHandler::m_db_props
mutableprivate

Definition at line 185 of file DatabaseHandler.hh.

◆ m_default_db_name

std::string CASM::DB::DatabaseHandler::m_default_db_name
private

Definition at line 177 of file DatabaseHandler.hh.

◆ m_primclex

const PrimClex* CASM::DB::DatabaseHandler::m_primclex
private

Definition at line 175 of file DatabaseHandler.hh.


The documentation for this class was generated from the following files: