Develop Biology
The language of life
bio::chemical::ExcitationBase Class Reference

#include <Excitation.h>

+ Inheritance diagram for bio::chemical::ExcitationBase:
+ Collaboration diagram for bio::chemical::ExcitationBase:

Public Member Functions

virtual ~ExcitationBase ()
 
 BIO_DISAMBIGUATE_ALL_CLASS_METHODS (physical, ExcitationBase) ExcitationBase()
 
virtual void CallDown (physical::Wave *wave, ByteStream *ret) const
 
virtual void EditArg (uint8_t position, ByteStream &newVal)
 
virtual Properties GetProperties () const
 
- Public Member Functions inherited from bio::physical::Class< ExcitationBase >
 Class (ExcitationBase *object, Symmetry *symmetry=NULL)
 
virtual ~Class ()
 
virtual WaveAsWave ()
 
virtual const WaveAsWave () const
 
virtual WaveClone () const
 
ExcitationBase * Convert (Wave *wave)
 
virtual operator ExcitationBase * ()
 
virtual operator Wave * ()
 
- Public Member Functions inherited from bio::physical::Wave
 Wave (Symmetry *symmetry=NULL)
 
virtual ~Wave ()
 
virtual chemical::AtomAsAtom ()
 
virtual const chemical::AtomAsAtom () const
 
virtual WaveAsWave ()
 
virtual const WaveAsWave () const
 
virtual Code Attenuate (const Wave *other)
 
virtual WaveClone () const
 
virtual WaveDemodulate ()
 
virtual const WaveDemodulate () const
 
virtual Code Disattenuate (const Wave *other)
 
virtual Properties GetProperties () const
 
virtual WaveModulate (Wave *signal)
 
virtual Waveoperator* ()
 
virtual const Waveoperator* () const
 
virtual Waveoperator* (Wave *signal)
 
virtual void operator+ (const Wave *other)
 
virtual void operator- (const Wave *other)
 
virtual void operator| (Symmetry *symmetry)
 
virtual Code Reify (Symmetry *symmetry)
 
virtual SymmetrySpin () const
 

Static Public Member Functions

static Properties GetClassProperties ()
 
- Static Public Member Functions inherited from bio::physical::Wave
static Properties GetResonanceBetween (const Wave *wave, const Properties &properties)
 
static Properties GetResonanceBetween (const Wave *wave1, const Wave *wave2)
 
static Properties GetResonanceBetween (ConstWaves waves)
 

Additional Inherited Members

- Protected Attributes inherited from bio::physical::Class< ExcitationBase >
ExcitationBase * m_object
 
- Protected Attributes inherited from bio::physical::Wave
Wavem_signal
 
Symmetrym_symmetry
 

Detailed Description

Base class for all Excitations; see below.

Main documentation for all Excitation classes will be provided here.

For the difference between Excitation and Reaction, see Reaction.h The main thing Excitations can do, which Reactions can't, is be used in LinearStructureInterface::ForEach<>().

An Excitation is a Wave that stores a function pointer, i.e. a functor. Excitations allow you to directly invoke a Wave's methods. Excitations can be useful in propagating operations through Wave networks (e.g. an Atom's Bonds). Doing so will likely involve Modulating an Excitation onto a carrier Wave that dictates what the function applies to.

Definition at line 44 of file Excitation.h.

Constructor & Destructor Documentation

◆ ~ExcitationBase()

virtual bio::chemical::ExcitationBase::~ExcitationBase ( )
inlinevirtual

Definition at line 64 of file Excitation.h.

65 {
66
67 }

Member Function Documentation

◆ BIO_DISAMBIGUATE_ALL_CLASS_METHODS()

bio::chemical::ExcitationBase::BIO_DISAMBIGUATE_ALL_CLASS_METHODS ( physical  ,
ExcitationBase   
)
inline

Ensure virtual methods point to Class implementations.

Definition at line 51 of file Excitation.h.

58 :
59 physical::Class< ExcitationBase >(this)
60 {
61
62 }

◆ CallDown()

virtual void bio::chemical::ExcitationBase::CallDown ( physical::Wave wave,
ByteStream ret 
) const
inlinevirtual

Invoke an Excitation, regardless of what the template parameters are. Since we have no idea what the return value will be, we simply place it in ret as a void*.

Parameters
wave
ret

Reimplemented in bio::chemical::ExcitationWithoutArgument< WAVE, RETURN >, bio::chemical::ExcitationWithArgument< WAVE, RETURN, ARGUMENT >, and bio::chemical::ExcitationWithTwoArguments< WAVE, RETURN, ARGUMENT1, ARGUMENT2 >.

Definition at line 109 of file Excitation.h.

113 {
114 //nop
115 }

Referenced by bio::chemical::LinearMotif< CONTENT_TYPE >::ForEachImplementation().

◆ EditArg()

virtual void bio::chemical::ExcitationBase::EditArg ( uint8_t  position,
ByteStream newVal 
)
inlinevirtual

Creating a new and proper Excitation is preferred to Editing Arguments; however, we support the latter nonetheless.

Parameters
position
newVal

Reimplemented in bio::chemical::ExcitationWithArgument< WAVE, RETURN, ARGUMENT >, and bio::chemical::ExcitationWithTwoArguments< WAVE, RETURN, ARGUMENT1, ARGUMENT2 >.

Definition at line 95 of file Excitation.h.

99 {
100 //nop
101 }

◆ GetClassProperties()

◆ GetProperties()

virtual Properties bio::chemical::ExcitationBase::GetProperties ( ) const
inlinevirtual

Override of Wave method. See that class for details. NOTE: this should be overloaded to ensure *this will Resonate with WAVEs by stealing their Properties from the PeriodicTable.

Returns
{property::Excitatory()}

Reimplemented from bio::physical::Wave.

Reimplemented in bio::chemical::ExcitationWithoutArgument< WAVE, RETURN >, bio::chemical::ExcitationWithArgument< WAVE, RETURN, ARGUMENT >, and bio::chemical::ExcitationWithTwoArguments< WAVE, RETURN, ARGUMENT1, ARGUMENT2 >.

Definition at line 85 of file Excitation.h.

86 {
87 return GetClassProperties();
88 }
static Properties GetClassProperties()
Definition: Excitation.h:73

References GetClassProperties().


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