SEDataRequestManager.h
1 /**************************************************************************************
2 Copyright 2015 Applied Research Associates, Inc.
3 Licensed under the Apache License, Version 2.0 (the "License"); you may not use
4 this file except in compliance with the License. You may obtain a copy of the License
5 at:
6 http://www.apache.org/licenses/LICENSE-2.0
7 Unless required by applicable law or agreed to in writing, software distributed under
8 the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
9 CONDITIONS OF ANY KIND, either express or implied. See the License for the
10 specific language governing permissions and limitations under the License.
11 **************************************************************************************/
12 
13 #pragma once
14 #include <biogears/cdm/CommonDataModel.h>
15 #include <biogears/exports.h>
16 
17 #include <biogears/cdm/scenario/requests/SEEnvironmentDataRequest.h>
18 #include <biogears/cdm/scenario/requests/SEEquipmentDataRequest.h>
19 #include <biogears/cdm/scenario/requests/SEGasCompartmentDataRequest.h>
20 #include <biogears/cdm/scenario/requests/SELiquidCompartmentDataRequest.h>
21 #include <biogears/cdm/scenario/requests/SEPatientDataRequest.h>
22 #include <biogears/cdm/scenario/requests/SEPhysiologyDataRequest.h>
23 #include <biogears/cdm/scenario/requests/SESubstanceDataRequest.h>
24 #include <biogears/cdm/scenario/requests/SEThermalCompartmentDataRequest.h>
25 #include <biogears/cdm/scenario/requests/SETissueCompartmentDataRequest.h>
26 
27 CDM_BIND_DECL(DataRequestsData)
28 
29 namespace biogears {
30 class BIOGEARS_API SEDataRequestManager : public Loggable {
31 public:
34 
35  void Clear();
36 
37  bool Load(const CDM::DataRequestsData& in, SESubstanceManager& subMgr);
38  CDM::DataRequestsData* Unload() const;
39 
40 protected:
41  void Unload(CDM::DataRequestsData& data) const;
42 
43 public:
44  bool HasResultsFilename() const { return !m_ResultsFile.empty(); }
45  std::string GetResultsFilename() const;
46  const char * GetResultsFilename_cStr() const;
47  void SetResultsFilename(const char* name);
48  void SetResultsFilename(const std::string& name);
49 
50  bool HasWorkingDir() const { return !m_ResultsFile.empty(); }
51  std::string GetWorkingDir() const;
52  const char * GetWorkingDir_cStr() const;
53  void SetWorkingDir(const char* name);
54  void SetWorkingDir(const std::string& name);
55 
56  std::string GetResovedFilePath() const;
57  //const char * GetResovedFilePath_cStr() const;
58 
59  double GetSamplesPerSecond() const { return m_SamplesPerSecond; }
60  void SetSamplesPerSecond(double num) { m_SamplesPerSecond = num; }
61 
62  bool HasDataRequests() { return !m_Requests.empty(); }
63  const std::vector<SEDataRequest*>& GetDataRequests() { return m_Requests; }
64 
65  virtual bool HasDefaultDecimalFormatting() const;
66  virtual SEDecimalFormat& GetDefaultDecimalFormatting();
67  virtual void RemoveDefaultDecimalFormatting();
68 
69  virtual bool HasOverrideDecimalFormatting() const;
70  virtual SEDecimalFormat& GetOverrideDecimalFormatting();
71  virtual void RemoveOverrideDecimalFormatting();
72 
73  SEEnvironmentDataRequest& CreateEnvironmentDataRequest(const SEDecimalFormat* dfault = nullptr);
74  SEEquipmentDataRequest& CreateEquipmentDataRequest(const SEDecimalFormat* dfault = nullptr);
75  SEPatientDataRequest& CreatePatientDataRequest(const SEDecimalFormat* dfault = nullptr);
76  SEPhysiologyDataRequest& CreatePhysiologyDataRequest(const SEDecimalFormat* dfault = nullptr);
77  SESubstanceDataRequest& CreateSubstanceDataRequest(const SEDecimalFormat* dfault = nullptr);
78 
79  SEGasCompartmentDataRequest& CreateGasCompartmentDataRequest(const SEDecimalFormat* dfault = nullptr);
80  SELiquidCompartmentDataRequest& CreateLiquidCompartmentDataRequest(const SEDecimalFormat* dfault = nullptr);
81  SEThermalCompartmentDataRequest& CreateThermalCompartmentDataRequest(const SEDecimalFormat* dfault = nullptr);
82  SETissueCompartmentDataRequest& CreateTissueCompartmentDataRequest(const SEDecimalFormat* dfault = nullptr);
83 
84  void CreateFromBind(const CDM::DataRequestData& input, SESubstanceManager& subMgr);
85 
86 protected:
88  std::vector<SEDataRequest*> m_Requests;
89  std::string m_ResultsFile;
90  std::string m_WorkingDir;
91 
94 
95  bool DuplicateRequest(SEDataRequest* request);
96  static SEDataRequest* newFromBind(const CDM::DataRequestData& dataRequest, SESubstanceManager& substances, const SEDecimalFormat* dfault = nullptr);
97 };
98 }
Definition: SELiquidCompartmentDataRequest.h:21
Definition: SEPatientDataRequest.h:20
SEDecimalFormat * m_DefaultDecimalFormatting
Definition: SEDataRequestManager.h:92
Class corresponding to the DataRequestsData schema type.
Definition: Scenario.hxx:3006
bool HasWorkingDir() const
Definition: SEDataRequestManager.h:50
std::string m_WorkingDir
Definition: SEDataRequestManager.h:90
bool HasResultsFilename() const
Definition: SEDataRequestManager.h:44
Definition: SESubstanceDataRequest.h:22
Definition: Logger.h:27
const std::vector< SEDataRequest * > & GetDataRequests()
Definition: SEDataRequestManager.h:63
Definition: Logger.h:75
bool HasDataRequests()
Definition: SEDataRequestManager.h:62
double m_SamplesPerSecond
Definition: SEDataRequestManager.h:87
std::vector< SEDataRequest * > m_Requests
Definition: SEDataRequestManager.h:88
double GetSamplesPerSecond() const
Definition: SEDataRequestManager.h:59
Definition: SEDataRequestManager.h:30
std::string m_ResultsFile
Definition: SEDataRequestManager.h:89
Definition: SEGasCompartmentDataRequest.h:22
Definition: SEDecimalFormat.h:25
Class corresponding to the DataRequestData schema type.
Definition: Scenario.hxx:1494
SEDecimalFormat * m_OverrideDecimalFormatting
Definition: SEDataRequestManager.h:93
Definition: SEDataRequest.h:25
Definition: SESubstanceManager.h:23
Definition: SEElectricalCircuit.h:18
Definition: SEThermalCompartmentDataRequest.h:22
Definition: SEPhysiologyDataRequest.h:20
void SetSamplesPerSecond(double num)
Definition: SEDataRequestManager.h:60
Definition: SETissueCompartmentDataRequest.h:22
Definition: SEEquipmentDataRequest.h:22
Definition: SEEnvironmentDataRequest.h:19