libbio
Loading...
Searching...
No Matches
Solution.h
Go to the documentation of this file.
1/*
2 * This file is a part of the Biology project by eons LLC.
3 * Biology (aka Develop Biology) is a framework for approaching software
4 * development from a natural sciences perspective.
5 *
6 * Copyright (C) 2023 Séon O'Shannon & eons LLC
7 *
8 * This program is free software: you can redistribute it and/or modify
9 * it under the terms of the GNU Affero General Public License as
10 * published by the Free Software Foundation, either version 3 of the
11 * License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU Affero General Public License for more details.
17 *
18 * You should have received a copy of the GNU Affero General Public License
19 * along with this program. If not, see <https://www.gnu.org/licenses/>.
20 */
21
22#pragma once
23
33#include "Solute.h"
34
35namespace bio {
36namespace chemical {
37
38class Solute;
39
60class Solution :
61 public chemical::Class< Solution >,
62 virtual public chemical::Substance,
63 protected DependentMotif< Solute, Solution >
64{
65 friend BIO_EXCITATION_CLASS(chemical::LinearMotif< Substance >, Pointer< Substance >, Name); //For genetic Localization and Insertion.
66
67public:
68
73
75 chemical,
77 filter::Chemical()
78 )
79
89 const DiffusionTime& diffusionTime = diffusion::time::Destruction(),
90 const DiffusionEffort& diffusionEffort = diffusion::effort::Active()
91 );
92
100
110
121
132
143
154
159 virtual Pointer< physical::Line > GetAllSolutes();
160
165 virtual Pointer< const physical::Line > GetAllSolutes() const;
166};
167
168} //chemical namespace
169} //bio namespace
#define BIO_DISAMBIGUATE_ALL_CLASS_METHODS(ns, caller)
Definition ClassMethodMacros.h:112
#define BIO_EXCITATION_CLASS(wave, ret,...)
Definition ExcitationMacros.h:51
#define BIO_DEFAULT_IDENTIFIABLE_CONSTRUCTORS(ns, class,...)
Definition chemical/macro/ConstructorMacros.h:38
Definition Pointer.h:115
Definition String.h:55
Definition chemical/common/Class.h:52
Definition DependentMotif.h:45
Definition Solute.h:77
Definition Solution.h:64
virtual Pointer< physical::Line > GetAllSolutes()
Definition Solution.cpp:128
const DiffusionTime const DiffusionEffort & diffusionEffort
Definition Solution.h:90
virtual Id Influx(const Solute &toInflux)
Definition Solution.cpp:80
virtual Pointer< Substance > Separate(const Id &id)
Definition Solution.cpp:59
virtual Solute Efflux(const Id &soluteId)
Definition Solution.cpp:97
const DiffusionTime & diffusionTime
Definition Solution.h:89
Definition Substance.h:47
Definition FinalCell.h:29