Develop Biology
The language of life
Reactant.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) 2022 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
25
26namespace bio {
27namespace chemical {
28
34class Reactant :
35 public Substance,
36 public Class< Reactant >
37{
38public:
39
45
46
49 Reactant(Name typeName);
50
56 Name typeName,
57 const Substance* substance
58 );
59
66 Name typeName,
67 const typename UnorderedMotif< Property >::Contents* properties,
68 const typename UnorderedMotif< State >::Contents* states
69 );
70
74 virtual ~Reactant();
75
80 virtual bool operator==(const Substance& other) const;
81
82protected:
84
85private:
89 void CtorCommon(Name typeName);
90};
91
92} //chemical namespace
93} //bio namespace
94
virtual bool operator==(const Substance &other) const
Definition: Reactant.cpp:76
Reactant(Name typeName, const Substance *substance)
Definition: Reactant.cpp:59
BIO_DISAMBIGUATE_ALL_CLASS_METHODS(chemical, Reactant) Reactant(Name typeName)
Definition: Cell.h:31
const char * Name
Definition: Types.h:46