Rosetta
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Private Types | Private Attributes | List of all members
basic::datacache::DataCache< Data > Class Template Reference

forward declaration for DataCache More...

#include <DataCache.hh>

Inheritance diagram for basic::datacache::DataCache< Data >:
Inheritance graph
[legend]

Public Types

typedef utility::pointer::shared_ptr< Data > DataOP
 
typedef utility::pointer::shared_ptr< Data const > DataCOP
 
typedef utility::pointer::weak_ptr< Data > DataAP
 
typedef utility::pointer::weak_ptr< Data const > DataCAP
 

Public Member Functions

 DataCache ()
 default constructor More...
 
 DataCache (std::size_t n_slots)
 size constructor More...
 
 DataCache (DataCache const &src)
 copy constructor More...
 
 ~DataCache () override=default
 destructor More...
 
DataCacheoperator= (DataCache const &src)
 copy assignment More...
 
size_t size () const
 the number of slots in this cache More...
 
void resize (std::size_t n_slots)
 resize the cache for the given number of slots More...
 
void clear ()
 clear all stored data More...
 
void clear (std::size_t slot)
 clear the object in a selected slot More...
 
bool has (std::size_t slot) const
 is there an object in the slot? More...
 
Data const & get (std::size_t slot) const
 get base class reference to the object stored in the slot More...
 
template<typename D >
D const & get (std::size_t slot) const
 get derived class reference to the object stored in the slot More...
 
Data & get (std::size_t slot)
 get base class reference to object stored in the slot More...
 
template<typename D >
D & get (std::size_t slot)
 get derived class reference to object stored in the slot More...
 
DataCOP get_const_ptr (std::size_t slot) const
 get base class owning ptr to object stored in the slot More...
 
template<typename D >
utility::pointer::shared_ptr< D const > get_const_ptr (std::size_t slot) const
 get derived class owning ptr to object stored in the slot More...
 
DataOP get_ptr (std::size_t slot)
 get base class owning ptr to object stored in the slot More...
 
template<typename D >
utility::pointer::shared_ptr< D > get_ptr (std::size_t slot)
 get derived class owning ptr to object stored in the slot More...
 
Data const * get_raw_const_ptr (std::size_t slot) const
 get base class raw ptr to object stored in the slot More...
 
template<typename D >
D const * get_raw_const_ptr (std::size_t slot) const
 get derived class raw ptr to object stored in the slot More...
 
Data * get_raw_ptr (std::size_t slot)
 get base class raw ptr to object stored in the slot More...
 
template<typename D >
D * get_raw_ptr (std::size_t slot)
 get derived class raw ptr to object stored in the slot More...
 
void set (std::size_t slot, DataOP new_data)
 store data in the given slot More...
 
- Public Member Functions inherited from utility::VirtualBase
 VirtualBase ()=default
 Default constructor. More...
 
virtual ~VirtualBase ()=default
 The virtual destructor is one of the main reasons for the VirtualBase class. More...
 
 VirtualBase (VirtualBase const &)=default
 
 VirtualBase (VirtualBase &&)=default
 
VirtualBaseoperator= (VirtualBase const &)=default
 
VirtualBaseoperator= (VirtualBase &&)=default
 

Protected Types

typedef utility::vector1< DataOPDataOPs
 

Protected Member Functions

DataOPs const & data () const
 get the storage vector More...
 
DataOPsdata ()
 get the storage vector More...
 

Private Types

typedef utility::VirtualBase Super
 

Private Attributes

DataOPs data_
 stores data via unique integer index More...
 

Detailed Description

template<typename Data>
class basic::datacache::DataCache< Data >

forward declaration for DataCache

Indexed storage for objects derived from a VirtualBase-able data type.

Intended for use as a generic data cache by storing objects derived from a VirtualBase-able data type in a unique slot designated by an integer id (enum, size index, etc.). The DataCache will only store one object per slot/id. For example, see the PoseDataCache used in core::pose::Pose, which is indexed by the enum basic::pose::datacache:CacheableDataType. Currently when data is set(), it is not cloned – classes deriving from DataCache should remember to overload set() if they need cloning behavior.

Template Parameters
DataClass derived from utility::VirtualBase that defines a virtual clone() method.

Member Typedef Documentation

◆ DataAP

template<typename Data >
typedef utility::pointer::weak_ptr< Data > basic::datacache::DataCache< Data >::DataAP

◆ DataCAP

template<typename Data >
typedef utility::pointer::weak_ptr< Data const > basic::datacache::DataCache< Data >::DataCAP

◆ DataCOP

template<typename Data >
typedef utility::pointer::shared_ptr< Data const > basic::datacache::DataCache< Data >::DataCOP

◆ DataOP

template<typename Data >
typedef utility::pointer::shared_ptr< Data > basic::datacache::DataCache< Data >::DataOP

◆ DataOPs

template<typename Data >
typedef utility::vector1< DataOP > basic::datacache::DataCache< Data >::DataOPs
protected

◆ Super

template<typename Data >
typedef utility::VirtualBase basic::datacache::DataCache< Data >::Super
private

Constructor & Destructor Documentation

◆ DataCache() [1/3]

template<typename Data >
basic::datacache::DataCache< Data >::DataCache ( )
inline

default constructor

◆ DataCache() [2/3]

template<typename Data >
basic::datacache::DataCache< Data >::DataCache ( std::size_t  n_slots)
inline

size constructor

Parameters
[in]n_typesThe number of slots for this DataCache.

◆ DataCache() [3/3]

template<typename Data >
basic::datacache::DataCache< Data >::DataCache ( DataCache< Data > const &  src)
inline

copy constructor

◆ ~DataCache()

template<typename Data >
basic::datacache::DataCache< Data >::~DataCache ( )
overridedefault

destructor

Member Function Documentation

◆ clear() [1/2]

template<typename Data >
void basic::datacache::DataCache< Data >::clear ( )
inline

◆ clear() [2/2]

template<typename Data >
void basic::datacache::DataCache< Data >::clear ( std::size_t  slot)
inline

clear the object in a selected slot

References basic::datacache::DataCache< Data >::data_.

Referenced by pyrosetta.bindings.pose.ResidueLabelAccessor::discard().

◆ data() [1/2]

template<typename Data >
DataOPs& basic::datacache::DataCache< Data >::data ( )
inlineprotected

get the storage vector

References basic::datacache::DataCache< Data >::data_.

◆ data() [2/2]

template<typename Data >
DataOPs const& basic::datacache::DataCache< Data >::data ( ) const
inlineprotected

get the storage vector

References basic::datacache::DataCache< Data >::data_.

◆ get() [1/4]

template<typename Data >
Data& basic::datacache::DataCache< Data >::get ( std::size_t  slot)
inline

get base class reference to object stored in the slot

References basic::datacache::DataCache< Data >::data_, and debug_assert.

◆ get() [2/4]

template<typename Data >
template<typename D >
D& basic::datacache::DataCache< Data >::get ( std::size_t  slot)
inline

get derived class reference to object stored in the slot

Template Parameters
Dclass derived from Data

References spectral_cluster_kmeans_adaptive_kernel_density_bb_dependent_rotlib::D, and basic::datacache::DataCache< Data >::get().

◆ get() [3/4]

template<typename Data >
Data const& basic::datacache::DataCache< Data >::get ( std::size_t  slot) const
inline

get base class reference to the object stored in the slot

References basic::datacache::DataCache< Data >::data_, and debug_assert.

Referenced by basic::datacache::DataCache< Data >::get().

◆ get() [4/4]

template<typename Data >
template<typename D >
D const& basic::datacache::DataCache< Data >::get ( std::size_t  slot) const
inline

get derived class reference to the object stored in the slot

Template Parameters
Dclass derived from Data

References spectral_cluster_kmeans_adaptive_kernel_density_bb_dependent_rotlib::D, and basic::datacache::DataCache< Data >::get().

◆ get_const_ptr() [1/2]

template<typename Data >
DataCOP basic::datacache::DataCache< Data >::get_const_ptr ( std::size_t  slot) const
inline

get base class owning ptr to object stored in the slot

References basic::datacache::DataCache< Data >::data_, and debug_assert.

Referenced by basic::datacache::DataCache< Data >::get_const_ptr().

◆ get_const_ptr() [2/2]

template<typename Data >
template<typename D >
utility::pointer::shared_ptr< D const > basic::datacache::DataCache< Data >::get_const_ptr ( std::size_t  slot) const
inline

get derived class owning ptr to object stored in the slot

Template Parameters
Dclass derived from Data

References basic::datacache::DataCache< Data >::get_const_ptr().

◆ get_ptr() [1/2]

template<typename Data >
DataOP basic::datacache::DataCache< Data >::get_ptr ( std::size_t  slot)
inline

get base class owning ptr to object stored in the slot

References basic::datacache::DataCache< Data >::data_, and debug_assert.

Referenced by basic::datacache::DataCache< Data >::get_ptr().

◆ get_ptr() [2/2]

template<typename Data >
template<typename D >
utility::pointer::shared_ptr< D > basic::datacache::DataCache< Data >::get_ptr ( std::size_t  slot)
inline

get derived class owning ptr to object stored in the slot

Template Parameters
Dclass derived from Data

References basic::datacache::DataCache< Data >::get_ptr().

◆ get_raw_const_ptr() [1/2]

template<typename Data >
Data const* basic::datacache::DataCache< Data >::get_raw_const_ptr ( std::size_t  slot) const
inline

get base class raw ptr to object stored in the slot

References basic::datacache::DataCache< Data >::data_, and debug_assert.

Referenced by basic::datacache::DataCache< Data >::get_raw_const_ptr().

◆ get_raw_const_ptr() [2/2]

template<typename Data >
template<typename D >
D const* basic::datacache::DataCache< Data >::get_raw_const_ptr ( std::size_t  slot) const
inline

get derived class raw ptr to object stored in the slot

Template Parameters
Dclass derived from Data

References spectral_cluster_kmeans_adaptive_kernel_density_bb_dependent_rotlib::D, and basic::datacache::DataCache< Data >::get_raw_const_ptr().

◆ get_raw_ptr() [1/2]

template<typename Data >
Data* basic::datacache::DataCache< Data >::get_raw_ptr ( std::size_t  slot)
inline

get base class raw ptr to object stored in the slot

References basic::datacache::DataCache< Data >::data_, and debug_assert.

Referenced by InjectorMover::apply(), and basic::datacache::DataCache< Data >::get_raw_ptr().

◆ get_raw_ptr() [2/2]

template<typename Data >
template<typename D >
D* basic::datacache::DataCache< Data >::get_raw_ptr ( std::size_t  slot)
inline

get derived class raw ptr to object stored in the slot

Template Parameters
Dclass derived from Data

References spectral_cluster_kmeans_adaptive_kernel_density_bb_dependent_rotlib::D, and basic::datacache::DataCache< Data >::get_raw_ptr().

◆ has()

template<typename Data >
bool basic::datacache::DataCache< Data >::has ( std::size_t  slot) const
inline

is there an object in the slot?

References basic::datacache::DataCache< Data >::data_.

Referenced by InjectorMover::apply().

◆ operator=()

template<typename Data >
DataCache& basic::datacache::DataCache< Data >::operator= ( DataCache< Data > const &  src)
inline

◆ resize()

template<typename Data >
void basic::datacache::DataCache< Data >::resize ( std::size_t  n_slots)
inline

resize the cache for the given number of slots

Parameters
[in]n_slotsThe new number of slots.

References basic::datacache::DataCache< Data >::data_.

Referenced by PyMOL-Rosetta-relay-client.SecretInputDialog::__init__().

◆ set()

template<typename Data >
void basic::datacache::DataCache< Data >::set ( std::size_t  slot,
DataOP  new_data 
)
inline

store data in the given slot

Parameters
[in]Theslot to use.
[in]observerThe data to store – data is not cloned.

References basic::datacache::DataCache< Data >::data_.

Referenced by InjectorMover::apply().

◆ size()

template<typename Data >
size_t basic::datacache::DataCache< Data >::size ( ) const
inline

the number of slots in this cache

References basic::datacache::DataCache< Data >::data_.

Member Data Documentation

◆ data_

template<typename Data >
DataOPs basic::datacache::DataCache< Data >::data_
private

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