libbio
Loading...
Searching...
No Matches
Public Member Functions | List of all members
bio::api::FinalCell Class Reference

#include <FinalCell.h>

Inheritance diagram for bio::api::FinalCell:
Inheritance graph
[legend]
Collaboration diagram for bio::api::FinalCell:
Collaboration graph
[legend]

Public Member Functions

 BIO_CONSTRUCTORS_WITH_COMMON_CONSTRUCTOR (FinalCell,) virtual ~FinalCell()
 
virtual Code Crest ()
 
- Public Member Functions inherited from bio::Final< CellularForwarder< FinalCell, bio::cellular::Cell > >
 Final ()
 
 Final (const Name &name)
 
 Final (const Id &id)
 
 ~Final ()
 
 operator Id () const
 
 operator Pointer< physical::Wave > ()
 
 operator AS ()
 
void operator| (Pointer< physical::Symmetry > symmetry)
 
Pointer< physical::Waveoperator* (Pointer< physical::Wave > signal)
 
Pointer< physical::Waveoperator* ()
 
Pointer< const physical::Waveoperator* () const
 
void operator+ (Pointer< const physical::Wave > other)
 
void operator- (Pointer< const physical::Wave > other)
 
bool operator== (const Id id) const
 
bool operator== (const Name &name) const
 
bool operator== (const physical::Identifiable< Id > &other) const
 
Pointer< physical::WaveClone () const
 
Pointer< physical::WaveAsWave ()
 
Pointer< const physical::WaveAsWave () const
 
bool RegisterProperties (const Properties &properties)
 
Properties GetProperties () const
 
Pointer< chemical::AtomAsAtom ()
 
Pointer< const chemical::AtomAsAtom () const
 
Pointer< physical::WaveModulate (Pointer< physical::Wave > signal)
 
Pointer< physical::WaveDemodulate ()
 
Pointer< const physical::WaveDemodulate () const
 
Code Attenuate (Pointer< const physical::Wave > other)
 
Code Disattenuate (Pointer< const physical::Wave > other)
 
Pointer< const ::bio::log::WriterAsLogWriter () const
 
void Log (::bio::LogLevel level, const char *format, va_list args) const
 
void Log ()
 
void Log (LogLevel level, const char *format,...) const
 
void SetEnvironment (Pointer< ENVIRONMENT > environment)
 
Pointer< ENVIRONMENTGetEnvironment ()
 
const Pointer< ENVIRONMENTGetEnvironment () const
 
T Add (const T t)
 
Code Remove (const T t)
 
void Import (Pointer< const chemical::UnorderedMotif< T > > other)
 
void Import (Pointer< const chemical::LinearMotif< T > > other)
 
void Import (const ::bio::Arrangement< T > &other)
 
Code ImportAll (Pointer< const physical::Wave > other)
 
Index GetCount () const
 
Pointer< ContainerGetAll ()
 
Pointer< const ContainerGetAll () const
 
bool Has (T content) const
 
unsigned int GetNumMatching (Pointer< const Container > other) const
 
bool HasAll (Pointer< const Container > contents) const
 
void Clear ()
 
std::string GetStringFrom (std::string separator=", ")
 
Code Insert (T toAdd, const Position position=BOTTOM, const Id optionalPositionArg=0, const bool transferSubContents=false)
 
T GetById (const Id &id)
 
const T GetById (const Id &id) const
 
T GetByName (const Name &name)
 
const T GetByName (const Name &name) const
 
T GetOrCreateById (const Id &id)
 
T GetOrCreateByName (const Name &name)
 
chemical::Emission ForEach (Pointer< chemical::ExcitationBase > excitation)
 
void Enable ()
 
void Disable ()
 
bool IsEnabled () const
 
T As ()
 
const T As () const
 
bool FormBond (T toBond, BondType type=bond_type::Unknown())
 
bool BreakBond (T toDisassociate, BondType type=bond_type::Unknown())
 
Pointer< chemical::BondsGetAllBonds ()
 
Pointer< const chemical::BondsGetAllBonds () const
 
Name GetName () const
 
Id GetId () const
 
void SetName (const Name &name)
 
void SetId (const Id &id)
 
bool IsName (const Name &name) const
 
bool IsNameInsensitive (const Name &name) const
 
bool IsId (const Id &id) const
 
void SetPerspective (Pointer< physical::Perspective< Id > > perspective)
 
void MakeWave (bool force=false)
 
Pointer< physical::Perspective< Id > > GetPerspective () const
 
Pointer< const physical::SymmetrySpin () const
 
Code Reify (Pointer< const physical::Symmetry > symmetry)
 
- Public Member Functions inherited from bio::TransparentWrapper< T >
 TransparentWrapper (T t)
 
 TransparentWrapper (const TransparentWrapper< T > &other)
 
 ~TransparentWrapper ()
 
 operator T ()
 
TransparentWrapper< T > & operator= (const T &t)
 
TransparentWrapper< T > & operator= (const TransparentWrapper< T > &other)
 
bool operator== (const T &t) const
 
bool operator!= (const T &t) const
 
bool operator<= (const T &t) const
 
bool operator>= (const T &t) const
 
bool operator< (const T &t) const
 
bool operator> (const T &t) const
 
bool operator== (const TransparentWrapper &other) const
 
bool operator!= (const TransparentWrapper &other) const
 
bool operator<= (const TransparentWrapper &other) const
 
bool operator>= (const TransparentWrapper &other) const
 
bool operator< (const TransparentWrapper &other) const
 
bool operator> (const TransparentWrapper &other) const
 
Toperator++ ()
 
T operator++ (int)
 
Toperator-- ()
 
T operator-- (int)
 
T operator+= (const T &t)
 
T operator-= (const T &t)
 
T operator+= (const TransparentWrapper &other)
 
T operator-= (const TransparentWrapper &other)
 
T operator+ (const T &t) const
 
T operator- (const T &t) const
 
T operator+ (const TransparentWrapper &other) const
 
T operator- (const TransparentWrapper &other) const
 
T operator*= (const T &t)
 
T operator/= (const T &t)
 
T operator*= (const TransparentWrapper &other)
 
T operator/= (const TransparentWrapper &other)
 
T operator* (const T &t) const
 
T operator/ (const T &t) const
 
T operator* (const TransparentWrapper &other) const
 
T operator/ (const TransparentWrapper &other) const
 
friend::std::ostream & operator<< (std::ostream &out, const TransparentWrapper &t)
 
Toperator-> ()
 
const Toperator-> () const
 

Additional Inherited Members

- Public Types inherited from bio::TransparentWrapper< T >
typedef T Type
 
- Public Attributes inherited from bio::TransparentWrapper< T >
T mT
 

Detailed Description

A FinalCell removes all the inheritance machinery from Cell.
Use this when you want to create your own Cells but not allow anyone else to override Biology methods when inheriting from them.
We have left Crest() as virtual here (i.e. redefined it) so that you can still use Cell as intended.

Member Function Documentation

◆ BIO_CONSTRUCTORS_WITH_COMMON_CONSTRUCTOR()

bio::api::FinalCell::BIO_CONSTRUCTORS_WITH_COMMON_CONSTRUCTOR ( FinalCell  )
inline

◆ Crest()

virtual Code bio::api::FinalCell::Crest ( )
inlinevirtual

Crest()s occur at Periodic::mIntervals.
Define your main Periodic logic here.
This method must be fast:

  • do not read slow hardware here
  • do not block for a long time
  • do not sleep
    If derived classes must do slow work to oscillate, that slow logic MUST BE placed in a separate thread.
    This method would then get the data stored by that thread and returns the data quickly.
    MAKE SURE that the thread never causes a long mutex wait as a side-effect in this Crest method.

    This method is forwarded here from the CellularForwarder.
    All sub-cellular objects in *this will Crest after *this, automatically.

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