libbio
Loading...
Searching...
No Matches
Brain.h
Go to the documentation of this file.
1/*
2 * This file is a part of the Biology project by eons LLC. <br />
3 * Biology (aka Develop Biology) is a framework for approaching software <br />
4 * development from a natural sciences perspective. <br />
5 *
6 * Copyright (C) 2022 Séon O'Shannon & eons LLC <br />
7 *
8 * This program is free software: you can redistribute it and/or modify <br />
9 * it under the terms of the GNU Affero General Public License as <br />
10 * published by the Free Software Foundation, either version 3 of the <br />
11 * License, or (at your option) any later version. <br />
12 *
13 * This program is distributed in the hope that it will be useful, <br />
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of <br />
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the <br />
16 * GNU Affero General Public License for more details. <br />
17 *
18 * You should have received a copy of the GNU Affero General Public License <br />
19 * along with this program. If not, see <https://www.gnu.org/licenses/>. <br />
20 */
21
22#pragma once
23
28#include "bio/cellular/Organ.h"
30
31namespace bio {
32namespace neural {
33
40class Brain:
41 public neural::Class< Brain >,
42 public cellular::Organ
43{
44public:
45
50
51
55 neural,
56 Brain,
57 filter::Neural()
58 )
59
68 void CommonConstructor();
69
73 virtual ~Brain();
74
75
83
91
102
115
125
134
139
144
150 {
151 Code code;
152 code = PreSetup();
153 BIO_SANITIZE(code == code::Success() || code == code::NoErrorNoSuccess(), , return code)
154
155 code = CreateNeuropils();
156 BIO_SANITIZE(code == code::Success() || code == code::NoErrorNoSuccess(), , return code)
157
158 code = CreateSynapses();
159 BIO_SANITIZE(code == code::Success() || code == code::NoErrorNoSuccess(), , return code)
160
161 code = CreateNeurons();
162 BIO_SANITIZE(code == code::Success() || code == code::NoErrorNoSuccess(), , return code)
163
164 code = CreateNeuralFramework();
165 BIO_SANITIZE(code == code::Success() || code == code::NoErrorNoSuccess(), , return code)
166
167 code = PostSetup();
168 BIO_SANITIZE(code == code::Success() || code == code::NoErrorNoSuccess(), , return code)
169
170 return Organ::GrowTissues();
171 }
172
173protected:
180
181};
182
183} //namespace neural
184} //bio namespace
#define BIO_DISAMBIGUATE_ALL_CLASS_METHODS(ns, caller)
Definition ClassMethodMacros.h:112
#define BIO_SANITIZE(test, success, failure)
Definition SanitizeMacros.h:94
#define BIO_DEFAULT_IDENTIFIABLE_CONSTRUCTORS_WITH_COMMON_CONSTRUCTOR(ns, class,...)
Definition chemical/macro/ConstructorMacros.h:65
Definition Pointer.h:115
Definition Organ.h:55
void CommonConstructor()
Definition Expressor.cpp:40
Definition Brain.h:43
virtual Code CacheProteins()
Definition Brain.cpp:58
Pointer< molecular::Protein > mcCreateNeuralFramework
Definition Brain.h:178
virtual Code CreateNeurons()
Definition Brain.cpp:85
Pointer< molecular::Protein > mcCreateSynapses
Definition Brain.h:176
virtual Code PreSetup()
Definition Brain.cpp:70
virtual Code GrowTissues()
Definition Brain.h:149
virtual Code PostSetup()
Definition Brain.cpp:95
Pointer< molecular::Protein > mcPreSetup
Definition Brain.h:174
Pointer< molecular::Protein > mcCreateNeurons
Definition Brain.h:177
Pointer< molecular::Protein > mcPostSetup
Definition Brain.h:179
virtual Code CreateSynapses()
Definition Brain.cpp:80
virtual Code CreateNeuropils()
Definition Brain.cpp:75
virtual Code CreateNeuralFramework()
Definition Brain.cpp:90
virtual Code CreateDefaultProteins()
Definition Brain.cpp:47
Pointer< molecular::Protein > mcCreateNeuropils
Definition Brain.h:175
Definition neural/common/Class.h:42
Code NoErrorNoSuccess()
Code Success()
Definition FinalCell.h:29