| 135 | } |
| 136 | |
| 137 | bool Simulation::Read(wxInputStream& is) |
| 138 | { |
| 139 | size_t i; |
| 140 | Clear(); |
| 141 | wxDataInputStream in(is); |
| 142 | |
| 143 | wxUint8 code = in.Read8(); // code |
| 144 | wxUint8 ver = in.Read8(); // ver |
| 145 | |
| 146 | m_name = in.ReadString(); |
| 147 | |
| 148 | if (ver > 3) { |
| 149 | size_t n = in.Read8(); |
| 150 | m_overrides.resize(n); |
| 151 | for (i = 0; i < m_overrides.size(); i++) |
| 152 | read_array_string(in, m_overrides[i]); |
| 153 | n = in.Read8(); |
| 154 | m_inputs.resize(n); |
| 155 | for (i = 0; i < m_inputs.size(); i++) |
| 156 | m_inputs[i].Read(is); |
| 157 | } |
| 158 | else { |
| 159 | m_overrides.resize(1); |
| 160 | read_array_string(in, m_overrides[0]); |
| 161 | m_inputs.resize(1); |
| 162 | m_inputs[0].Read(is); |
| 163 | } |
| 164 | m_outputs.Read(is); |
| 165 | |
| 166 | read_array_string( in, m_errors ); |
| 167 | read_array_string( in, m_warnings ); |
| 168 | if ( ver > 1 ) read_array_string( in, m_notices ); |
| 169 | |
| 170 | m_outputLabels.Read( is ); |
| 171 | m_outputUnits.Read( is ); |
| 172 | |
| 173 | if (ver > 2) |
| 174 | m_uiHints.Read( is ); |
| 175 | |
| 176 | return ( code == in.Read8() ); |
| 177 | } |
| 178 | |
| 179 | void Simulation::Copy( const Simulation &rh ) |
| 180 | { |
nothing calls this directly
no test coverage detected