@@ -25,7 +25,7 @@ extern "C" void f_gas_state_mix_rats(const void *ptr, const double *data, const
2525struct GasState {
2626 PMCResource ptr;
2727
28- GasState (const GasData &gas_data,
28+ /* GasState(const GasData &gas_data,
2929 const nlohmann::json &json) :
3030 ptr(f_gas_state_ctor, f_gas_state_dtor)
3131 {
@@ -38,6 +38,13 @@ struct GasState {
3838
3939 gimmick_ptr().reset(); // TODO #117: guard
4040 }
41+ */
42+
43+ GasState (const GasData &gas_data) :
44+ ptr (f_gas_state_ctor, f_gas_state_dtor)
45+ {
46+ f_gas_state_set_size (this ->ptr .f_arg (), &gas_data.ptr );
47+ }
4148
4249 static void set_item (const GasState &self, const int &idx, const double &val) {
4350 if (idx < 0 || idx >= (int )__len__ (self))
@@ -80,18 +87,17 @@ struct GasState {
8087 }
8188
8289 static void set_size (GasState &self, const GasData &GasData) {
83- f_gas_state_set_size (&self.ptr , &GasData.ptr );
90+ f_gas_state_set_size (&self.ptr , &GasData.ptr );
8491 }
8592
8693 static std::valarray<double > mix_rats (const GasState &self) {
87- int len;
88- f_gas_state_len (&self.ptr , &len);
89- std::valarray<double > data (len);
90-
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);
95- return data;
94+ int len;
95+ f_gas_state_len (&self.ptr , &len);
96+ std::valarray<double > data (len);
97+
98+ for (int idx = 0 ; idx < len; idx++) {
99+ f_gas_state_get_item (&self.ptr , &idx, &data[idx]);
100+ }
101+ return data;
96102 }
97103};
0 commit comments