libbio
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
bio::Covalent< T > Class Template Reference

#include <Covalent.h>

Inheritance diagram for bio::Covalent< T >:
Inheritance graph
[legend]
Collaboration diagram for bio::Covalent< T >:
Collaboration graph
[legend]

Public Member Functions

 Covalent ()
 
 Covalent (const Covalent &other)
 
virtual ~Covalent ()
 
Covalentoperator= (const Covalent &other)
 
Pointer< TObject ()
 
Pointer< const TObject () const
 
- Public Member Functions inherited from bio::chemical::Atom
 Atom ()
 
 Atom (const Atom &other)
 
virtual ~Atom ()
 
void CloneBondsFrom (const Atom &other, BondClonePolicy policy=&Atom::DefaultBondClonePolicy)
 
virtual Pointer< const physical::SymmetrySpin () const
 
virtual Code Reify (Pointer< const physical::Symmetry > symmetry)
 
virtual Code Attenuate (Pointer< const physical::Wave > other)
 
virtual Code Disattenuate (Pointer< const physical::Wave > other)
 
Pointer< physical::WaveGetBonded (Valence position)
 
Pointer< const physical::WaveGetBonded (Valence position) const
 
Pointer< const physical::WaveResolveBondedForReadById (AtomicNumber bondId) const
 
Pointer< physical::WaveResolveBondedForWriteById (AtomicNumber bondId)
 
template<typename T >
Cow< TAsBonded () const
 
template<typename T >
Pointer< TAsBondedQuantum () const
 
template<typename T >
atom_detail::AsResultType< T, type::IsWaveImplementation< typenametype::RemovePointer< T >::Type >::sValue >::Type As () const
 
template<typename T >
 operator T () const
 
template<typename T >
Valence FormBond (T toBond, BondType type=bond_type::Unknown())
 
template<typename T >
bool BreakBond (T toDisassociate, BondType type=bond_type::Unknown())
 
Valence GetBondPosition (AtomicNumber bondedId) const
 
Valence GetBondPosition (const Name &typeName) const
 
Valence GetBondPositionLocked (AtomicNumber bondedId) const
 
template<typename T >
Valence GetBondPosition () const
 
BondType GetBondType (Valence position) const
 
template<typename T >
BondType GetBondType () const
 
Pointer< BondsGetAllBonds ()
 
Pointer< const BondsGetAllBonds () const
 
void ForEachBond (BondVisitor visitor, void *context=NULL) const
 
void ForEachBondMutable (BondMutator mutator, void *context=NULL)
 
virtual Valence FormBondImplementation (Pointer< physical::Wave > toBond, AtomicNumber id, BondType type)
 
Valence FormBondImplementation (Pointer< physical::Wave > toBond, AtomicNumber id, BondType type, bool ownsBonded)
 
Valence FormBondImplementationLocked (Pointer< physical::Wave > toBond, AtomicNumber id, BondType type, bool ownsBonded)
 
virtual bool BreakBondImplementation (AtomicNumber id, BondType type)
 
bool BreakBondImplementationLocked (AtomicNumber id, BondType type)
 
- Public Member Functions inherited from bio::physical::Class< Atom >
 Class (Pointer< Atom > object, Pointer< Symmetry > symmetry=NULL)
 
 Class (Pointer< Atom > object, SymmetryFactory symmetryFactory)
 
 Class (const Class &other)
 
virtual ~Class ()
 
virtual Pointer< Atom > GetWaveObject ()
 
virtual Pointer< const Atom > GetWaveObject () const
 
virtual operator Atom & ()
 
virtual operator const Atom & () const
 
virtual Pointer< WaveClone () const
 
Pointer< WaveAsWave ()
 
Pointer< const WaveAsWave () const
 
virtual operator Pointer< Wave > ()
 
- Public Member Functions inherited from bio::physical::Wave
 Wave (Pointer< Symmetry > symmetry=NULL)
 
 Wave (const Wave &other)
 
Waveoperator= (const Wave &other)
 
virtual ~Wave ()
 
virtual Properties GetProperties () const
 
Pointer< const SymmetryGetSymmetry () const
 
virtual bool Superpose (Pointer< const Wave > displacement, Pointer< Interference > pattern)
 
virtual Pointer< WaveSuperpose (const ConstWaves &displacement, Pointer< Interference > pattern)
 
virtual Pointer< WaveModulate (Pointer< Wave > signal)
 
virtual Pointer< WaveDemodulate ()
 
virtual Pointer< const WaveDemodulate () const
 
Pointer< WaveAsWave ()
 
Pointer< const WaveAsWave () const
 
virtual Pointer< chemical::AtomAsAtom ()
 
virtual Pointer< const chemical::AtomAsAtom () const
 
virtual void operator| (Pointer< Symmetry > symmetry)
 
virtual Pointer< Waveoperator* (Pointer< Wave > signal)
 
virtual Pointer< Waveoperator* ()
 
virtual Pointer< const Waveoperator* () const
 
virtual void operator+ (Pointer< const Wave > other)
 
virtual void operator- (Pointer< const Wave > other)
 
uint16_t GetTypeId () const
 
void SetTypeId (uint16_t typeId)
 
- Public Member Functions inherited from bio::ThreadSafe
 ThreadSafe ()
 
 ThreadSafe (const ThreadSafe &toCopy)
 
ThreadSafeoperator= (const ThreadSafe &toCopy)
 
 ~ThreadSafe ()
 
void LockThread () const
 
void UnlockThread () const
 
void LockMutexShared () const
 
void UnlockMutexShared () const
 

Protected Attributes

Pointer< TmT
 
- Protected Attributes inherited from bio::chemical::Atom
Bonds mBonds
 
::std::map< AtomicNumber, ValencemBondIndex
 
Arrangement< Pointer< const physical::Wave > > mBackflowPreventer
 
- Protected Attributes inherited from bio::physical::Class< Atom >
Pointer< Atom > mObject
 
- Protected Attributes inherited from bio::physical::Wave
LazyPointer< SymmetrymSymmetry
 
bool mHasSignal
 
uint16_t mTypeId
 

Additional Inherited Members

- Public Types inherited from bio::chemical::Atom
typedef BondCloneAction(* BondClonePolicy) (const Bond &bond)
 
typedef void(* BondVisitor) (const Bond &bond, void *context)
 
typedef BondCloneAction(* BondMutator) (Bond &bond, void *context)
 
- Static Public Member Functions inherited from bio::chemical::Atom
static BondCloneAction DefaultBondClonePolicy (const Bond &bond)
 
template<typename T >
static AtomicNumber GetBondId ()
 
- Static Public Member Functions inherited from bio::physical::Class< Atom >
static Pointer< Atom > Convert (Pointer< Wave > wave)
 
- Static Public Member Functions inherited from bio::physical::Wave
static Properties GetResonanceBetween (ConstWaves waves)
 
static Properties GetResonanceBetween (Pointer< const Wave > wave1, Pointer< const Wave > wave2)
 
static Properties GetResonanceBetween (Pointer< const Wave > wave, const Properties &properties)
 
- Protected Member Functions inherited from bio::chemical::Atom
void IndexBond (AtomicNumber bondedId, Valence position)
 
void UnindexBond (AtomicNumber bondedId)
 

Detailed Description

template<class T>
class bio::Covalent< T >

Covalent classes can be used to create "horizontal inheritance".
When instantiating a Covalent class, a new T will be created and Covalently bonded to the child class of *this (through the shared Atom).
NOTE: atm, there is no way to provide arguments to the new Ts.
NOTE: Bonding a child class will not bond that class's parents. Virtually inherited Atoms are still distinct objects. If you would like access to a Bonded object's parents, use a Metallic Bond.
Covalent inheritance allows distinct objects to be treated as a one. See Atom.h for more on Bonds.

Template Parameters
T

Constructor & Destructor Documentation

◆ Covalent() [1/2]

template<class T >
bio::Covalent< T >::Covalent ( )
inline

◆ Covalent() [2/2]

template<class T >
bio::Covalent< T >::Covalent ( const Covalent< T > &  other)
inline

Deep-copy constructor to avoid shared ownership across copies.

◆ ~Covalent()

template<class T >
virtual bio::Covalent< T >::~Covalent ( )
inlinevirtual

Member Function Documentation

◆ Object() [1/2]

template<class T >
Pointer< T > bio::Covalent< T >::Object ( )
inline
Returns
what *this was created for.

◆ Object() [2/2]

template<class T >
Pointer< const T > bio::Covalent< T >::Object ( ) const
inline
Returns
what *this was created for.

◆ operator=()

template<class T >
Covalent & bio::Covalent< T >::operator= ( const Covalent< T > &  other)
inline

Deep-copy assignment to avoid shared ownership across copies.

Member Data Documentation

◆ mT

template<class T >
Pointer< T > bio::Covalent< T >::mT
protected

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