Skip to content

Commit f1c98ba

Browse files
committed
Exposing new create_engine variants
1 parent 6a6c2ae commit f1c98ba

File tree

4 files changed

+129
-92
lines changed

4 files changed

+129
-92
lines changed

projects/biogears/libBiogears/include/biogears/engine/Controller/BioGearsEngine.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,5 +145,6 @@ class BIOGEARS_API BioGearsEngine : public PhysiologyEngine, public BioGears {
145145
BIOGEARS_API biogears::Logger* create_logger(const char* logfile);
146146
BIOGEARS_API void destroy_logger(Logger** engine);
147147
BIOGEARS_API biogears::BioGearsEngine* create_biogears_engine(biogears::Logger* logger, const char* working_dir);
148+
BIOGEARS_API biogears::BioGearsEngine* create_biogears_engine(const char* logger, const char* working_dir);
148149
BIOGEARS_API void destroy_biogears_engine(BioGearsEngine** engine);
149150
} //namespace biogears

projects/biogears/libBiogears/src/cdm/utils/Logger.cpp

Lines changed: 80 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ governing permissions and limitations under the License.
3737
#ifdef ANDROID
3838
#define forward_to_logcat(LEVEL, CONTENT) __android_log_print(LEVEL, "BIOGEARS", "%s", CONTENT);
3939
#else
40-
#define forward_to_logcat(LEVEL,CONTENT)
40+
#define forward_to_logcat(LEVEL, CONTENT)
4141
#endif
4242

4343
using namespace std::chrono_literals;
@@ -182,15 +182,15 @@ void simtime_handler(std::ostream& os, std::string const& /*message*/, std::stri
182182
};
183183
void datetime_handler(std::ostream& os, std::string const& /*message*/, std::string const& /*origin*/, Logger::LogLevel /*prioriy*/, SEScalarTime const* /*simtime*/, tm const* datetime)
184184
{
185-
#ifndef ANDROID
185+
#ifndef ANDROID
186186
os << std::put_time(datetime, "%Y-%m-%d %H:%M");
187-
#endif
187+
#endif
188188
};
189189
void puttime_handler(std::ostream& os, std::string const& format, std::string const& /*message*/, std::string const& /*origin*/, Logger::LogLevel /*prioriy*/, SEScalarTime const* /*simtime*/, tm const* datetime)
190190
{
191-
#ifndef ANDROID
191+
#ifndef ANDROID
192192
os << std::put_time(datetime, format.c_str());
193-
#endif
193+
#endif
194194
};
195195
void flush_handler(std::ostream& os, std::string const& /*message*/, std::string const& /*origin*/, Logger::LogLevel /*prioriy*/, SEScalarTime const* /*simtime*/, tm const* /*datetime*/)
196196
{
@@ -244,7 +244,7 @@ auto process_message_pattern(std::string::const_iterator scanner, std::string::c
244244
if (*t_current == '%') {
245245
time_placeholders_found = true;
246246
}
247-
if (!std::isalpha(*t_current)) {
247+
if (!isalpha(*t_current)) {
248248
token_end = t_current;
249249
break;
250250
}
@@ -385,6 +385,7 @@ void Logger::ResetLogFile(const char* filepath)
385385
//!
386386
Logger::~Logger()
387387
{
388+
Debug("biogears::Logger Deconstructor finished");
388389
}
389390

390391
void Logger::SetLogTime(const SEScalarTime* time) { m_impl->time = time; }
@@ -532,30 +533,30 @@ void Logger::LogMessage(std::istream& msg, std::string const& origin, LogLevel p
532533
impl.userDefinedLogger->Warning(message.c_str());
533534
break;
534535
case Logger::eInfo:
535-
impl.userDefinedLogger->Info(message.c_str());
536+
impl.userDefinedLogger->Info(message.c_str());
536537
break;
537538
case Logger::eStabilization:
538539
break;
539540
}
540541
}
541542
switch (priority) {
542-
case Logger::eDebug:
543-
forward_to_logcat(ANDROID_LOG_DEBUG, message.c_str());
544-
break;
545-
case Logger::eError:
546-
forward_to_logcat(ANDROID_LOG_ERROR, message.c_str());
547-
break;
548-
case Logger::eException:
549-
break;
550-
case Logger::eWarning:
551-
forward_to_logcat(ANDROID_LOG_WARN, message.c_str());
552-
break;
553-
case Logger::eInfo:
554-
forward_to_logcat(ANDROID_LOG_INFO, message.c_str());
555-
break;
556-
case Logger::eStabilization:
557-
break;
558-
}
543+
case Logger::eDebug:
544+
forward_to_logcat(ANDROID_LOG_DEBUG, message.c_str());
545+
break;
546+
case Logger::eError:
547+
forward_to_logcat(ANDROID_LOG_ERROR, message.c_str());
548+
break;
549+
case Logger::eException:
550+
break;
551+
case Logger::eWarning:
552+
forward_to_logcat(ANDROID_LOG_WARN, message.c_str());
553+
break;
554+
case Logger::eInfo:
555+
forward_to_logcat(ANDROID_LOG_INFO, message.c_str());
556+
break;
557+
case Logger::eStabilization:
558+
break;
559+
}
559560
}
560561
void Logger::LogMessage(std::istream&& msg, std::string const& origin, LogLevel priority) const
561562
{
@@ -595,45 +596,42 @@ void Logger::LogMessage(std::istream&& msg, std::string const& origin, LogLevel
595596
if (impl.userDefinedLogger != nullptr) {
596597
switch (priority) {
597598
case Logger::eDebug:
598-
forward_to_logcat(ANDROID_LOG_DEBUG, message.c_str());
599599
impl.userDefinedLogger->Debug(message.c_str());
600600
break;
601601
case Logger::eError:
602-
forward_to_logcat(ANDROID_LOG_ERROR, message.c_str());
603602
impl.userDefinedLogger->Error(message.c_str());
604603
break;
605604
case Logger::eException:
606605
break;
607606
case Logger::eWarning:
608-
forward_to_logcat(ANDROID_LOG_WARN, message.c_str());
609607
impl.userDefinedLogger->Warning(message.c_str());
610608
break;
611609
case Logger::eInfo:
612-
forward_to_logcat(ANDROID_LOG_INFO, message.c_str());
610+
613611
impl.userDefinedLogger->Info(message.c_str());
614612
break;
615613
case Logger::eStabilization:
616614
break;
617615
}
618616
}
619-
switch (priority) {
620-
case Logger::eDebug:
621-
forward_to_logcat(ANDROID_LOG_DEBUG, message.c_str());
622-
break;
623-
case Logger::eError:
624-
forward_to_logcat(ANDROID_LOG_ERROR, message.c_str());
625-
break;
626-
case Logger::eException:
627-
break;
628-
case Logger::eWarning:
629-
forward_to_logcat(ANDROID_LOG_WARN, message.c_str());
630-
break;
631-
case Logger::eInfo:
632-
forward_to_logcat(ANDROID_LOG_INFO, message.c_str());
633-
break;
634-
case Logger::eStabilization:
635-
break;
636-
}
617+
switch (priority) {
618+
case Logger::eDebug:
619+
forward_to_logcat(ANDROID_LOG_DEBUG, message.c_str());
620+
break;
621+
case Logger::eError:
622+
forward_to_logcat(ANDROID_LOG_ERROR, message.c_str());
623+
break;
624+
case Logger::eException:
625+
break;
626+
case Logger::eWarning:
627+
forward_to_logcat(ANDROID_LOG_WARN, message.c_str());
628+
break;
629+
case Logger::eInfo:
630+
forward_to_logcat(ANDROID_LOG_INFO, message.c_str());
631+
break;
632+
case Logger::eStabilization:
633+
break;
634+
}
637635
}
638636

639637
void Logger::LogMessage(std::string const& msg, std::string const& origin, LogLevel priority) const
@@ -669,45 +667,41 @@ void Logger::LogMessage(std::string const& msg, std::string const& origin, LogLe
669667
if (impl.userDefinedLogger != nullptr) {
670668
switch (priority) {
671669
case Logger::eDebug:
672-
forward_to_logcat(ANDROID_LOG_DEBUG, msg.c_str());
673670
impl.userDefinedLogger->Debug(msg.c_str());
674671
break;
675672
case Logger::eError:
676-
forward_to_logcat(ANDROID_LOG_ERROR, msg.c_str());
677673
impl.userDefinedLogger->Error(msg.c_str());
678674
break;
679675
case Logger::eException:
680676
break;
681677
case Logger::eWarning:
682-
forward_to_logcat(ANDROID_LOG_WARN, msg.c_str());
683678
impl.userDefinedLogger->Warning(msg.c_str());
684679
break;
685680
case Logger::eInfo:
686-
forward_to_logcat(ANDROID_LOG_INFO, msg.c_str());
687681
impl.userDefinedLogger->Info(msg.c_str());
688682
break;
689683
case Logger::eStabilization:
690684
break;
691685
}
692686
}
693-
switch (priority) {
694-
case Logger::eDebug:
695-
forward_to_logcat(ANDROID_LOG_DEBUG, msg.c_str());
696-
break;
697-
case Logger::eError:
698-
forward_to_logcat(ANDROID_LOG_ERROR, msg.c_str());
699-
break;
700-
case Logger::eException:
701-
break;
702-
case Logger::eWarning:
703-
forward_to_logcat(ANDROID_LOG_WARN, msg.c_str());
704-
break;
705-
case Logger::eInfo:
706-
forward_to_logcat(ANDROID_LOG_INFO, msg.c_str());
707-
break;
708-
case Logger::eStabilization:
709-
break;
710-
}
687+
switch (priority) {
688+
case Logger::eDebug:
689+
forward_to_logcat(ANDROID_LOG_DEBUG, msg.c_str());
690+
break;
691+
case Logger::eError:
692+
forward_to_logcat(ANDROID_LOG_ERROR, msg.c_str());
693+
break;
694+
case Logger::eException:
695+
break;
696+
case Logger::eWarning:
697+
forward_to_logcat(ANDROID_LOG_WARN, msg.c_str());
698+
break;
699+
case Logger::eInfo:
700+
forward_to_logcat(ANDROID_LOG_INFO, msg.c_str());
701+
break;
702+
case Logger::eStabilization:
703+
break;
704+
}
711705
}
712706
void Logger::LogMessage(std::string&& msg, std::string const& origin, LogLevel priority) const
713707
{
@@ -742,45 +736,41 @@ void Logger::LogMessage(std::string&& msg, std::string const& origin, LogLevel p
742736
if (impl.userDefinedLogger != nullptr) {
743737
switch (priority) {
744738
case Logger::eDebug:
745-
forward_to_logcat(ANDROID_LOG_DEBUG, msg.c_str());
746739
impl.userDefinedLogger->Debug(msg.c_str());
747740
break;
748741
case Logger::eError:
749-
forward_to_logcat(ANDROID_LOG_ERROR, msg.c_str());
750742
impl.userDefinedLogger->Error(msg.c_str());
751743
break;
752744
case Logger::eException:
753745
break;
754746
case Logger::eWarning:
755-
forward_to_logcat(ANDROID_LOG_WARN, msg.c_str());
756747
impl.userDefinedLogger->Warning(msg.c_str());
757748
break;
758749
case Logger::eInfo:
759-
forward_to_logcat(ANDROID_LOG_INFO, msg.c_str());
760750
impl.userDefinedLogger->Info(msg.c_str());
761751
break;
762752
case Logger::eStabilization:
763753
break;
764754
}
765755
}
766-
switch (priority) {
767-
case Logger::eDebug:
768-
forward_to_logcat(ANDROID_LOG_DEBUG, msg.c_str());
769-
break;
770-
case Logger::eError:
771-
forward_to_logcat(ANDROID_LOG_ERROR, msg.c_str());
772-
break;
773-
case Logger::eException:
774-
break;
775-
case Logger::eWarning:
776-
forward_to_logcat(ANDROID_LOG_WARN, msg.c_str());
777-
break;
778-
case Logger::eInfo:
779-
forward_to_logcat(ANDROID_LOG_INFO, msg.c_str());
780-
break;
781-
case Logger::eStabilization:
782-
break;
783-
}
756+
switch (priority) {
757+
case Logger::eDebug:
758+
forward_to_logcat(ANDROID_LOG_DEBUG, msg.c_str());
759+
break;
760+
case Logger::eError:
761+
forward_to_logcat(ANDROID_LOG_ERROR, msg.c_str());
762+
break;
763+
case Logger::eException:
764+
break;
765+
case Logger::eWarning:
766+
forward_to_logcat(ANDROID_LOG_WARN, msg.c_str());
767+
break;
768+
case Logger::eInfo:
769+
forward_to_logcat(ANDROID_LOG_INFO, msg.c_str());
770+
break;
771+
case Logger::eStabilization:
772+
break;
773+
}
784774
}
785775

786776
void Logger::Debug(std::string const& msg, std::string const& origin) const

projects/biogears/libBiogears/src/engine/Controller/BioGears.cpp

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -823,7 +823,44 @@ bool BioGears::SetupPatient()
823823

824824
BioGears::~BioGears()
825825
{
826+
m_CurrentTime = nullptr;
827+
m_SimulationTime = nullptr;
828+
829+
m_Config = nullptr;
830+
m_SaturationCalculator = nullptr;
831+
m_DiffusionCalculator = nullptr;
832+
833+
m_Substances;
834+
835+
m_Actions = nullptr;
836+
m_Conditions = nullptr;
837+
m_Circuits = nullptr;
838+
m_Compartments= nullptr;
839+
840+
m_Environment = nullptr;
841+
842+
m_BloodChemistrySystem = nullptr;
843+
m_CardiovascularSystem= nullptr;
844+
m_EndocrineSystem= nullptr;
845+
m_EnergySystem= nullptr;
846+
m_GastrointestinalSystem= nullptr;
847+
m_HepaticSystem= nullptr;
848+
m_NervousSystem= nullptr;
849+
m_RenalSystem= nullptr;
850+
m_RespiratorySystem= nullptr;
851+
m_DrugSystem= nullptr;
852+
m_TissueSystem= nullptr;
853+
854+
m_ECG = nullptr;
855+
856+
m_AnesthesiaMachine = nullptr;
857+
858+
m_Inhaler = nullptr;
859+
860+
m_Patient = nullptr;
861+
826862
m_managedLogger = nullptr;
863+
Debug("biogears::BioGears Deconstructor Finished");
827864
}
828865

829866
EngineState BioGears::GetState() { return m_State; }

projects/biogears/libBiogears/src/engine/Controller/BioGearsEngine.cpp

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ BioGearsEngine::BioGearsEngine(const char* logFileName, const char* working_dir)
108108
//-------------------------------------------------------------------------------
109109
BioGearsEngine::~BioGearsEngine()
110110
{
111+
m_Logger->Debug("biogears::BioGearsEngine Deconstructor Finished");
111112
}
112113
//-------------------------------------------------------------------------------
113114
Logger* BioGearsEngine::GetLogger()
@@ -456,7 +457,12 @@ bool BioGearsEngine::LoadState(const CDM::PhysiologyEngineStateData& state, cons
456457

457458
// Good to go, save it off and carry on!
458459
m_State = EngineState::Active;
459-
m_Logger->Info("Biogears has sucesfully loaded the given statefile");
460+
if(state.Patient().present()){
461+
m_Logger->Info("Biogears has sucesfully loaded "+ state.Patient()->Name()+ ".");
462+
} else {
463+
m_Logger->Info("Biogears has sucesfully loaded the given statefile");
464+
}
465+
460466
return true; // return CheckDataRequirements/IsValid() or something
461467
}
462468
//-------------------------------------------------------------------------------
@@ -731,7 +737,7 @@ bool BioGearsEngine::ProcessAction(const SEAction& action)
731737
} else {
732738
SaveStateToFile(asprintf("%s@%.0fs.xml", m_Patient->GetName().c_str(), GetSimulationTime(TimeUnit::s)));
733739
}
734-
} else {
740+
} else {
735741
return LoadState(serialize->GetFilename());
736742
}
737743
return true;
@@ -1029,6 +1035,9 @@ void destroy_logger(Logger** logger){
10291035
biogears::BioGearsEngine* create_biogears_engine(biogears::Logger* logger, const char* working_dir){
10301036
return new BioGearsEngine(logger, working_dir);
10311037
}
1038+
biogears::BioGearsEngine* create_biogears_engine(const char* log_file, const char* working_dir){
1039+
return new BioGearsEngine(log_file, working_dir);
1040+
}
10321041
void destroy_biogears_engine(BioGearsEngine** engine){
10331042
if (engine) {
10341043
delete (*engine);

0 commit comments

Comments
 (0)