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

#include <EnvironmentDependent.h>

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

Public Types

typedef type::RemovePointer< T >::Type EnvironmentType
 
typedef Pointer< EnvironmentTypeEnvironmentPointer
 

Public Member Functions

 EnvironmentDependent (EnvironmentPointer environment=NULL)
 
virtual ~EnvironmentDependent ()
 
virtual EnvironmentPointer GetEnvironment ()
 
virtual const EnvironmentPointer GetEnvironment () const
 
virtual void SetEnvironment (EnvironmentPointer environment)
 

Protected Attributes

EnvironmentPointer mEnvironment
 

Detailed Description

template<typename T>
class bio::chemical::EnvironmentDependent< T >

An EnvironmentDependent object is one that changes how it behaves based on where it exists.
This class assumes there is only ever 1 greater environment directly above the inheriting class.
For example, a Protein is dependent on the Cell in which it resides and a Cell is dependent on the Tissue in which it resides. However, no where is a Protein dependent on multiple Cells directly nor is any Cell dependent on more than 1 Tissue at a time. Instead, these EnvironmentDependent classes rely on their greater context to move between themselves and further contexts, whatever resources they need or produce. In other words, the immediate mEnvironment is a pivot point into the larger system & the larger system is often tiered, having an even larger system "above" it.

Template Parameters
Tdomain object type that *this is dependent on. The stored value is Pointer<T>, matching the broader libbio convention that relationship templates name biological domains while pointer wrappers remain value/API details.

Member Typedef Documentation

◆ EnvironmentPointer

◆ EnvironmentType

Constructor & Destructor Documentation

◆ EnvironmentDependent()

template<typename T >
bio::chemical::EnvironmentDependent< T >::EnvironmentDependent ( EnvironmentPointer  environment = NULL)
inline
Parameters
environment

◆ ~EnvironmentDependent()

Member Function Documentation

◆ GetEnvironment() [1/2]

template<typename T >
virtual EnvironmentPointer bio::chemical::EnvironmentDependent< T >::GetEnvironment ( )
inlinevirtual

◆ GetEnvironment() [2/2]

template<typename T >
virtual const EnvironmentPointer bio::chemical::EnvironmentDependent< T >::GetEnvironment ( ) const
inlinevirtual

◆ SetEnvironment()

template<typename T >
virtual void bio::chemical::EnvironmentDependent< T >::SetEnvironment ( EnvironmentPointer  environment)
inlinevirtual

Sets mEnvironment.
Don't let the environment go out of scope or be deleted before *this!

Parameters
environment

Member Data Documentation

◆ mEnvironment

template<typename T >
EnvironmentPointer bio::chemical::EnvironmentDependent< T >::mEnvironment
protected

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