@@ -66,31 +66,31 @@ namespace fmu4cpp {
6666 return indentedString;
6767 }
6868
69- IntVariable fmu_base::integer (const std::string &name, int *ptr, const std::function<void (int )>& onChange) {
69+ IntVariable fmu_base::integer (const std::string &name, int *ptr, const std::function<void (int )> & onChange) {
7070 return {name, static_cast <unsigned int >(numVariables_), ++numVariables_, ptr, onChange};
7171 }
7272
7373 IntVariable fmu_base::integer (const std::string &name, const std::function<int ()> &getter, const std::optional<std::function<void(int )>> &setter) {
7474 return {name, static_cast <unsigned int >(numVariables_), ++numVariables_, getter, setter};
7575 }
7676
77- RealVariable fmu_base::real (const std::string &name, double *ptr, const std::function<void (double )>& onChange) {
77+ RealVariable fmu_base::real (const std::string &name, double *ptr, const std::function<void (double )> & onChange) {
7878 return {name, static_cast <unsigned int >(numVariables_), ++numVariables_, ptr, onChange};
7979 }
8080
8181 RealVariable fmu_base::real (const std::string &name, const std::function<double ()> &getter, const std::optional<std::function<void(double )>> &setter) {
8282 return {name, static_cast <unsigned int >(numVariables_), ++numVariables_, getter, setter};
8383 }
8484
85- BoolVariable fmu_base::boolean (const std::string &name, bool *ptr, const std::function<void (bool )>& onChange) {
85+ BoolVariable fmu_base::boolean (const std::string &name, bool *ptr, const std::function<void (bool )> & onChange) {
8686 return {name, static_cast <unsigned int >(numVariables_), ++numVariables_, ptr, onChange};
8787 }
8888
8989 BoolVariable fmu_base::boolean (const std::string &name, const std::function<bool ()> &getter, const std::optional<std::function<void(bool )>> &setter) {
9090 return {name, static_cast <unsigned int >(numVariables_), ++numVariables_, getter, setter};
9191 }
9292
93- StringVariable fmu_base::string (const std::string &name, std::string *ptr, const std::function<void (std::string)>& onChange) {
93+ StringVariable fmu_base::string (const std::string &name, std::string *ptr, const std::function<void (std::string)> & onChange) {
9494 return {name, static_cast <unsigned int >(numVariables_), ++numVariables_, ptr, onChange};
9595 }
9696
@@ -149,6 +149,16 @@ namespace fmu4cpp {
149149 return std::to_string (fnv1a (ss.str ()));
150150 }
151151
152+ std::vector<unsigned > fmu_base::get_value_refs () const {
153+ std::vector<unsigned int > indices;
154+ auto allVars = collect (integers_, reals_, booleans_, strings_);
155+ indices.reserve (allVars.size ());
156+ for (auto v: allVars) {
157+ indices.emplace_back (v->value_reference ());
158+ }
159+
160+ return indices;
161+ }
152162
153163 std::string fmu_base::make_description_v2 () const {
154164
0 commit comments