@@ -20,16 +20,19 @@ extern "C" void f_gas_state_len(const void *ptr, int *len) noexcept;
2020extern " C" void f_gas_state_to_json (const void *ptr) noexcept ;
2121extern " C" void f_gas_state_from_json (const void *ptr) noexcept ;
2222extern " C" void f_gas_state_set_size (const void *ptr, const void *gasdata_ptr) noexcept ;
23+ extern " C" void f_gas_state_mix_rats (const void *ptr, const double *data, const int *len);
2324
2425struct GasState {
2526 PMCResource ptr;
2627
27- GasState (const nlohmann::json &json) :
28+ GasState (const GasData &gas_data,
29+ const nlohmann::json &json) :
2830 ptr (f_gas_state_ctor, f_gas_state_dtor)
2931 {
3032 gimmick_ptr () = std::make_unique<InputGimmick>(json);
3133
3234 const int n = json.empty () ? 0 : gimmick_ptr ()->find (" gas_mixing_ratio" )->size ();
35+ f_gas_state_set_size (this ->ptr .f_arg (), &gas_data.ptr );
3336 // f_gas_state_set_size(this->ptr.f_arg(), &n);
3437 if (n != 0 ) f_gas_state_from_json (this ->ptr .f_arg ());
3538
@@ -85,7 +88,10 @@ struct GasState {
8588 f_gas_state_len (&self.ptr , &len);
8689 std::valarray<double > data (len);
8790
88-
91+ for (int idx = 0 ; idx < len; idx++) {
92+ f_gas_state_get_item (&self.ptr , &idx, &data[idx]);
93+ }
94+ // f_gas_state_mix_rats(&self.ptr, &data, &len);
8995 return data;
9096 }
9197};
0 commit comments