Rosetta  2020.46
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Member Functions | Private Types | List of all members
core::pose::datacache::CacheableObserver Class Referenceabstract

Base class for Pose/Conformation observers that are stored in a Pose's DataCache. More...

#include <CacheableObserver.hh>

Inheritance diagram for core::pose::datacache::CacheableObserver:
Inheritance graph

Public Member Functions

 CacheableObserver ()
 default constructor More...
 CacheableObserver (CacheableObserver const &rval)
 copy constructor More...
 ~CacheableObserver () override
 default destructor More...
CacheableObserveroperator= (CacheableObserver const &rval)
 copy assignment More...
virtual CacheableObserverOP clone ()=0
 clone this object More...
virtual CacheableObserverOP create ()=0
 create a new instance of this object More...
void attach_to (Pose &pose)
 attach to Pose/Conformation Derived classes do not overload this method – see attach_impl() instead. More...
void detach_from ()
 detach from Pose/Conformation More...
virtual bool is_attached () const =0
 is this observer attached to a Pose/Conformation? More...

Protected Member Functions

virtual void attach_impl (Pose &pose)=0
 attach to Pose/Conformation More...
virtual void detach_impl ()=0
 detach from Pose/Conformation More...

Private Types

typedef utility::VirtualBase Super

Detailed Description

Base class for Pose/Conformation observers that are stored in a Pose's DataCache.

Classes derived from CacheableObserver whose instances are stored inside a Pose's ObserverCache will be cloned and re-attached to the new Pose instance upon Pose copy construction/assignment. CacheableObservers should not need to attach themselves independently unless necessary – attach/detach should be done through the ObserverCache's interface. For example, the ObserverCache can attach the observer upon calling ObserverCache::set().

When deriving from this class remember that Links or pointers to subjects stored in classes are not to be copied when copy constructor/assignment is called.

Member Typedef Documentation

typedef utility::VirtualBase core::pose::datacache::CacheableObserver::Super

Constructor & Destructor Documentation

core::pose::datacache::CacheableObserver::CacheableObserver ( )

default constructor

core::pose::datacache::CacheableObserver::CacheableObserver ( CacheableObserver const &  rval)

copy constructor

Subject being observed (represented by Link/pointer) is not copied!
core::pose::datacache::CacheableObserver::~CacheableObserver ( )

default destructor

Derived classes must remember to detach on destruction!

Member Function Documentation

virtual void core::pose::datacache::CacheableObserver::attach_impl ( Pose pose)
protectedpure virtual
void core::pose::datacache::CacheableObserver::attach_to ( Pose pose)

attach to Pose/Conformation Derived classes do not overload this method – see attach_impl() instead.

References attach_impl(), and detach_from().

Referenced by protocols::network::UIObserver::attach(), and protocols::moves::PyMOLObserver::attach().

virtual CacheableObserverOP core::pose::datacache::CacheableObserver::clone ( )
pure virtual
virtual CacheableObserverOP core::pose::datacache::CacheableObserver::create ( )
pure virtual
void core::pose::datacache::CacheableObserver::detach_from ( )
virtual void core::pose::datacache::CacheableObserver::detach_impl ( )
protectedpure virtual
virtual bool core::pose::datacache::CacheableObserver::is_attached ( ) const
pure virtual
CacheableObserver & core::pose::datacache::CacheableObserver::operator= ( CacheableObserver const &  rval)

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