//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
-// Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//
// $Id$
#include <simgear/constants.h>
-SG_USING_STD(vector);
-SG_USING_STD(map);
-SG_USING_STD(string);
+using std::vector;
+using std::map;
+using std::string;
const double SGMetarNaN = -1E20;
#define NaN SGMetarNaN
struct Token {
- char *id;
- char *text;
+ const char *id;
+ const char *text;
};
inline const char *getFrictionString() const { return _friction_string; }
inline const char *getComment() const { return _comment; }
inline const bool getWindShear() const { return _wind_shear; }
- inline SGMetarVisibility getMinVisibility() const { return _min_visibility; }
- inline SGMetarVisibility getMaxVisibility() const { return _max_visibility; }
+ inline const SGMetarVisibility& getMinVisibility() const { return _min_visibility; }
+ inline const SGMetarVisibility& getMaxVisibility() const { return _max_visibility; }
protected:
SGMetarVisibility _min_visibility;
class SGMetarCloud {
friend class SGMetar;
public:
- SGMetarCloud() :
- _coverage(-1),
- _altitude(NaN),
- _type(0),
- _type_long(0) {}
+ SGMetarCloud() : _coverage(-1), _altitude(NaN), _type(0), _type_long(0) {}
void set(double alt, int cov = -1);
- inline int getCoverage() const { return _coverage; }
- inline double getAltitude_m() const { return _altitude; }
- inline double getAltitude_ft() const { return _altitude == NaN ? NaN : _altitude * SG_METER_TO_FEET; }
- inline char *getTypeString() const { return _type; }
- inline char *getTypeLongString() const { return _type_long; }
+ inline int getCoverage() const { return _coverage; }
+ inline double getAltitude_m() const { return _altitude; }
+ inline double getAltitude_ft() const { return _altitude == NaN ? NaN : _altitude * SG_METER_TO_FEET; }
+ inline const char *getTypeString() const { return _type; }
+ inline const char *getTypeLongString() const { return _type_long; }
protected:
- int _coverage; // quarters: 0 -> clear ... 4 -> overcast
- double _altitude; // 1000 m
- char *_type; // CU
- char *_type_long; // cumulus
+ int _coverage; // quarters: 0 -> clear ... 4 -> overcast
+ double _altitude; // 1000 m
+ const char *_type; // CU
+ const char *_type_long; // cumulus
};
inline int getWindRangeFrom() const { return _wind_range_from; }
inline int getWindRangeTo() const { return _wind_range_to; }
- inline SGMetarVisibility& getMinVisibility() { return _min_visibility; }
- inline SGMetarVisibility& getMaxVisibility() { return _max_visibility; }
- inline SGMetarVisibility& getVertVisibility() { return _vert_visibility; }
- inline SGMetarVisibility *getDirVisibility() { return _dir_visibility; }
+ inline const SGMetarVisibility& getMinVisibility() const { return _min_visibility; }
+ inline const SGMetarVisibility& getMaxVisibility() const { return _max_visibility; }
+ inline const SGMetarVisibility& getVertVisibility() const { return _vert_visibility; }
+ inline const SGMetarVisibility *getDirVisibility() const { return _dir_visibility; }
inline double getTemperature_C() const { return _temp; }
inline double getTemperature_F() const { return _temp == NaN ? NaN : 1.8 * _temp + 32; }
double getRelHumidity() const;
- inline vector<SGMetarCloud>& getClouds() { return _clouds; }
- inline map<string, SGMetarRunway>& getRunways() { return _runways; }
- inline vector<string>& getWeather() { return _weather; }
+ inline const vector<SGMetarCloud>& getClouds() const { return _clouds; }
+ inline const map<string, SGMetarRunway>& getRunways() const { return _runways; }
+ inline const vector<string>& getWeather() const { return _weather; }
protected:
string _url;