Rosetta
Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Friends | List of all members
core::scoring::bin_transitions::BinTransitionCalculatorManager Class Reference

A static singleton that ensures that BinTransitionCalculators load data from disk once, lazily, and in a threadsafe manner. More...

#include <BinTransitionCalculatorManager.hh>

Inheritance diagram for core::scoring::bin_transitions::BinTransitionCalculatorManager:
Inheritance graph
[legend]

Public Member Functions

BinTransitionCalculatorCOP get_bin_transition_calculator (std::string const &bin_transitions_file) const
 Given a bin transition file, get a bin transition calculator. More...
 

Private Member Functions

 BinTransitionCalculatorManager ()
 
 BinTransitionCalculatorManager (BinTransitionCalculatorManager const &)=delete
 
BinTransitionCalculatorManager operator= (BinTransitionCalculatorManager const &)=delete
 

Static Private Member Functions

static BinTransitionCalculatorOP create_bin_transition_calculator (std::string const &bin_transitions_file)
 Create a BinTransitionCalculator from a file read from disk. Used for onetime object creation; called ONLY by the BinTransationCalculatorManager and ONLY for one read of each unique file. More...
 

Private Attributes

std::map< std::string, BinTransitionCalculatorOPcached_bin_transition_calculators_
 All the BinTransitionCalculator objects that we've cached, with filenames as keys. More...
 

Friends

class utility::SingletonBase< BinTransitionCalculatorManager >
 

Detailed Description

A static singleton that ensures that BinTransitionCalculators load data from disk once, lazily, and in a threadsafe manner.

Author
Vikram K. Mulligan (vmull.nosp@m.igan.nosp@m.@flat.nosp@m.iron.nosp@m.insti.nosp@m.tute.nosp@m..org)

Constructor & Destructor Documentation

◆ BinTransitionCalculatorManager() [1/2]

core::scoring::bin_transitions::BinTransitionCalculatorManager::BinTransitionCalculatorManager ( )
private

◆ BinTransitionCalculatorManager() [2/2]

core::scoring::bin_transitions::BinTransitionCalculatorManager::BinTransitionCalculatorManager ( BinTransitionCalculatorManager const &  )
privatedelete

Member Function Documentation

◆ create_bin_transition_calculator()

BinTransitionCalculatorOP core::scoring::bin_transitions::BinTransitionCalculatorManager::create_bin_transition_calculator ( std::string const &  bin_transitions_file)
staticprivate

Create a BinTransitionCalculator from a file read from disk. Used for onetime object creation; called ONLY by the BinTransationCalculatorManager and ONLY for one read of each unique file.

Referenced by get_bin_transition_calculator().

◆ get_bin_transition_calculator()

BinTransitionCalculatorCOP core::scoring::bin_transitions::BinTransitionCalculatorManager::get_bin_transition_calculator ( std::string const &  bin_transitions_file) const

Given a bin transition file, get a bin transition calculator.

If we've already loaded the file and created a calculator from it, then we have cached the calculator and can return a clone to it. Otherwise, we create the calculator, cache it, and return a clone to it.

Note
Fully threadsafe.

References cached_bin_transition_calculators_, and create_bin_transition_calculator().

◆ operator=()

BinTransitionCalculatorManager core::scoring::bin_transitions::BinTransitionCalculatorManager::operator= ( BinTransitionCalculatorManager const &  )
privatedelete

Friends And Related Function Documentation

◆ utility::SingletonBase< BinTransitionCalculatorManager >

friend class utility::SingletonBase< BinTransitionCalculatorManager >
friend

Member Data Documentation

◆ cached_bin_transition_calculators_

std::map< std::string, BinTransitionCalculatorOP > core::scoring::bin_transitions::BinTransitionCalculatorManager::cached_bin_transition_calculators_
mutableprivate

All the BinTransitionCalculator objects that we've cached, with filenames as keys.

Referenced by get_bin_transition_calculator().


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