Develop Biology
The language of life
bio::chemical::ExcitationWithoutArgument< WAVE, RETURN > Class Template Reference

#include <Excitation.h>

+ Inheritance diagram for bio::chemical::ExcitationWithoutArgument< WAVE, RETURN >:
+ Collaboration diagram for bio::chemical::ExcitationWithoutArgument< WAVE, RETURN >:

Public Member Functions

virtual ~ExcitationWithoutArgument ()
 
 BIO_DISAMBIGUATE_ALL_CLASS_METHODS (physical, BIO_SINGLE_ARG(ExcitationWithoutArgument< WAVE, RETURN >)) ExcitationWithoutArgument(RETURN(WAVE
 
virtual void CallDown (physical::Wave *wave, ByteStream *ret) const
 
virtual Properties GetProperties () const
 
RETURN operator() (WAVE *wave) const
 
- Public Member Functions inherited from bio::chemical::ExcitationBase
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
 
- Public Member Functions inherited from bio::physical::Class< ExcitationWithoutArgument< WAVE, RETURN > >
 Class (ExcitationWithoutArgument< WAVE, RETURN > *object, Symmetry *symmetry=NULL)
 
virtual ~Class ()
 
virtual WaveAsWave ()
 
virtual const WaveAsWave () const
 
virtual WaveClone () const
 
ExcitationWithoutArgument< WAVE, RETURN > * Convert (Wave *wave)
 
virtual operator ExcitationWithoutArgument< WAVE, RETURN > * ()
 
virtual operator Wave * ()
 

Protected Attributes

RETURN(WAVE::* m_function )()
 
- Protected Attributes inherited from bio::physical::Class< ExcitationBase >
ExcitationBase * m_object
 
- Protected Attributes inherited from bio::physical::Wave
Wavem_signal
 
Symmetrym_symmetry
 
- Protected Attributes inherited from bio::physical::Class< ExcitationWithoutArgument< WAVE, RETURN > >
ExcitationWithoutArgument< WAVE, RETURN > * m_object
 

Additional Inherited Members

- Static Public Member Functions inherited from bio::chemical::ExcitationBase
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)
 

Detailed Description

template<class WAVE, typename RETURN>
class bio::chemical::ExcitationWithoutArgument< WAVE, RETURN >

See ExcitationBase for docs.

Template Parameters
WAVE
RETURN

Definition at line 214 of file Excitation.h.

Constructor & Destructor Documentation

◆ ~ExcitationWithoutArgument()

template<class WAVE , typename RETURN >
virtual bio::chemical::ExcitationWithoutArgument< WAVE, RETURN >::~ExcitationWithoutArgument ( )
inlinevirtual

Definition at line 239 of file Excitation.h.

240 {
241
242 }

Member Function Documentation

◆ BIO_DISAMBIGUATE_ALL_CLASS_METHODS()

template<class WAVE , typename RETURN >
bio::chemical::ExcitationWithoutArgument< WAVE, RETURN >::BIO_DISAMBIGUATE_ALL_CLASS_METHODS ( physical  ,
BIO_SINGLE_ARG(ExcitationWithoutArgument< WAVE, RETURN >)   
)
inline

Ensure virtual methods point to Class implementations.

Definition at line 223 of file Excitation.h.

230 :
231 physical::Class< ExcitationWithoutArgument< WAVE, RETURN > >(this),
232 m_function(function)
233 {
234 }

◆ CallDown()

template<class WAVE , typename RETURN >
virtual void bio::chemical::ExcitationWithoutArgument< WAVE, RETURN >::CallDown ( physical::Wave wave,
ByteStream ret 
) const
inlinevirtual

Override of ExcitationBase; see above.

Reimplemented from bio::chemical::ExcitationBase.

Definition at line 272 of file Excitation.h.

276 {
277 ret->Set(this->operator()(ForceCast< WAVE* >(wave)));
278 }

References bio::ByteStream::Set().

◆ GetProperties()

template<class WAVE , typename RETURN >
virtual Properties bio::chemical::ExcitationWithoutArgument< WAVE, RETURN >::GetProperties ( ) const
inlinevirtual

Override of Wave method. See that class for details. Ensures *this will Resonate with WAVEs by stealing their Properties from the PeriodicTable.

Returns
{whatever Properties WAVE has, property::Excitatory()}

Reimplemented from bio::chemical::ExcitationBase.

Definition at line 249 of file Excitation.h.

250 {
251 Properties ret = PeriodicTable::Instance().GetPropertiesOf< WAVE >();
252 ret.insert(
253 ret.end(),
256 return ret;
257 }
static Properties GetClassProperties()
Definition: Excitation.h:73
uint8_t Properties
Definition: Types.h:58

References bio::chemical::ExcitationBase::GetClassProperties(), and bio::Properties.

◆ operator()()

template<class WAVE , typename RETURN >
RETURN bio::chemical::ExcitationWithoutArgument< WAVE, RETURN >::operator() ( WAVE *  wave) const
inline
Parameters
wavethe caller of m_function.
Returns
RETURN, whatever that is for *this; the result of calling m_function from wave.

Definition at line 264 of file Excitation.h.

265 {
266 return (wave->*m_function)();
267 }

References bio::chemical::ExcitationWithoutArgument< WAVE, RETURN >::m_function.

Member Data Documentation

◆ m_function

template<class WAVE , typename RETURN >
RETURN(WAVE::* bio::chemical::ExcitationWithoutArgument< WAVE, RETURN >::m_function) ()
protected

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