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

#include <Excitation.h>

+ Inheritance diagram for bio::chemical::ExcitationWithTwoArguments< WAVE, RETURN, ARGUMENT1, ARGUMENT2 >:
+ Collaboration diagram for bio::chemical::ExcitationWithTwoArguments< WAVE, RETURN, ARGUMENT1, ARGUMENT2 >:

Public Member Functions

virtual ~ExcitationWithTwoArguments ()
 
 BIO_DISAMBIGUATE_ALL_CLASS_METHODS (physical, BIO_SINGLE_ARG(ExcitationWithTwoArguments< WAVE, RETURN, ARGUMENT1, ARGUMENT2 >)) ExcitationWithTwoArguments(RETURN(WAVE
 
virtual void CallDown (physical::Wave *wave, ByteStream *ret) const
 
virtual void EditArg (uint8_t position, ByteStream &newVal)
 
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< ExcitationWithTwoArguments< WAVE, RETURN, ARGUMENT1, ARGUMENT2 > >
 Class (ExcitationWithTwoArguments< WAVE, RETURN, ARGUMENT1, ARGUMENT2 > *object, Symmetry *symmetry=NULL)
 
virtual ~Class ()
 
virtual WaveAsWave ()
 
virtual const WaveAsWave () const
 
virtual WaveClone () const
 
ExcitationWithTwoArguments< WAVE, RETURN, ARGUMENT1, ARGUMENT2 > * Convert (Wave *wave)
 
virtual operator ExcitationWithTwoArguments< WAVE, RETURN, ARGUMENT1, ARGUMENT2 > * ()
 
virtual operator Wave * ()
 

Protected Attributes

ARGUMENT1 m_arg1
 
ARGUMENT2 m_arg2
 
RETURN(WAVE::* m_function )(ARGUMENT1, ARGUMENT2)
 
- 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< ExcitationWithTwoArguments< WAVE, RETURN, ARGUMENT1, ARGUMENT2 > >
ExcitationWithTwoArguments< WAVE, RETURN, ARGUMENT1, ARGUMENT2 > * 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, typename ARGUMENT1, typename ARGUMENT2>
class bio::chemical::ExcitationWithTwoArguments< WAVE, RETURN, ARGUMENT1, ARGUMENT2 >

See ExcitationBase for docs

Template Parameters
WAVE
RETURN
ARGUMENT1
ARGUMENT2

Definition at line 390 of file Excitation.h.

Constructor & Destructor Documentation

◆ ~ExcitationWithTwoArguments()

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

Definition at line 425 of file Excitation.h.

426 {
427
428 }

Member Function Documentation

◆ BIO_DISAMBIGUATE_ALL_CLASS_METHODS()

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

Ensure virtual methods point to Class implementations.

Definition at line 399 of file Excitation.h.

414 :
415 physical::Class< ExcitationWithTwoArguments< WAVE, RETURN, ARGUMENT1, ARGUMENT2 > >(this),
416 m_function(function),
417 m_arg1(arg1),
418 m_arg2(arg2)
419 {
420 }
RETURN(WAVE::* m_function)(ARGUMENT1, ARGUMENT2)
Definition: Excitation.h:490

◆ CallDown()

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

Override of ExcitationBase; see above.

Reimplemented from bio::chemical::ExcitationBase.

Definition at line 481 of file Excitation.h.

485 {
486 ret->Set(this->operator()(ForceCast< WAVE* >(wave)));
487 }

References bio::ByteStream::Set().

◆ EditArg()

template<class WAVE , typename RETURN , typename ARGUMENT1 , typename ARGUMENT2 >
virtual void bio::chemical::ExcitationWithTwoArguments< WAVE, RETURN, ARGUMENT1, ARGUMENT2 >::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 from bio::chemical::ExcitationBase.

Definition at line 450 of file Excitation.h.

454 {
455 switch (position)
456 {
457 case 0:
458 m_arg1 = newVal;
459 break;
460 case 1:
461 m_arg2 = newVal;
462 break;
463 }
464 }

References bio::chemical::ExcitationWithTwoArguments< WAVE, RETURN, ARGUMENT1, ARGUMENT2 >::m_arg1, and bio::chemical::ExcitationWithTwoArguments< WAVE, RETURN, ARGUMENT1, ARGUMENT2 >::m_arg2.

◆ GetProperties()

template<class WAVE , typename RETURN , typename ARGUMENT1 , typename ARGUMENT2 >
virtual Properties bio::chemical::ExcitationWithTwoArguments< WAVE, RETURN, ARGUMENT1, ARGUMENT2 >::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 435 of file Excitation.h.

436 {
437 Properties ret = PeriodicTable::Instance().GetPropertiesOf< WAVE >();
438 ret.insert(
439 ret.end(),
442 return ret;
443 }
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 , typename ARGUMENT1 , typename ARGUMENT2 >
RETURN bio::chemical::ExcitationWithTwoArguments< WAVE, RETURN, ARGUMENT1, ARGUMENT2 >::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 470 of file Excitation.h.

471 {
472 return (wave->*m_function)(
473 m_arg1,
474 m_arg2
475 );
476 }

References bio::chemical::ExcitationWithTwoArguments< WAVE, RETURN, ARGUMENT1, ARGUMENT2 >::m_arg1, bio::chemical::ExcitationWithTwoArguments< WAVE, RETURN, ARGUMENT1, ARGUMENT2 >::m_arg2, and bio::chemical::ExcitationWithTwoArguments< WAVE, RETURN, ARGUMENT1, ARGUMENT2 >::m_function.

Member Data Documentation

◆ m_arg1

template<class WAVE , typename RETURN , typename ARGUMENT1 , typename ARGUMENT2 >
ARGUMENT1 bio::chemical::ExcitationWithTwoArguments< WAVE, RETURN, ARGUMENT1, ARGUMENT2 >::m_arg1
protected

◆ m_arg2

template<class WAVE , typename RETURN , typename ARGUMENT1 , typename ARGUMENT2 >
ARGUMENT2 bio::chemical::ExcitationWithTwoArguments< WAVE, RETURN, ARGUMENT1, ARGUMENT2 >::m_arg2
protected

◆ m_function

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

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