X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Ftiming%2Fsg_time.hxx;h=78d04863811f9b3dff0ae01a57d8eb5e8be40903;hb=1f585d67199896749f5f532657d17afe586f6615;hp=0ec0138b8a7ae369e45ef107a83583a6b916083e;hpb=dcb95d131bc6aef1abe25d1f415e309f06e52436;p=simgear.git diff --git a/simgear/timing/sg_time.hxx b/simgear/timing/sg_time.hxx index 0ec0138b..78d04863 100644 --- a/simgear/timing/sg_time.hxx +++ b/simgear/timing/sg_time.hxx @@ -35,15 +35,14 @@ #include -#ifdef SG_HAVE_STD_INCLUDES -# include -#else -# include -#endif - -#include - - +#include +#include // for std::auto_ptr +#include + +// forward decls +class SGPath; +class SGGeod; + /** * A class to calculate and manage a variety of time parameters. * The SGTime class provides many real-world time values. It @@ -67,21 +66,15 @@ class SGTime { private: - // tzContainer stores all the current Timezone control points/ - SGTimeZoneContainer* tzContainer; // Points to the current local timezone name; - string zonename; + std::string zonename; // Unix "calendar" time in seconds time_t cur_time; // Break down of equivalent GMT time -#if defined(_MSC_VER) || defined(__MINGW32__) struct tm m_gmt; // copy of system gmtime(&time_t) structure -#else - struct tm *gmt; -#endif // offset of local time relative to GMT time_t local_offset; @@ -104,7 +97,7 @@ private: double gst_diff; /** init common constructor code */ - void init( double lon_rad, double lat_rad, const string& root, + void init( const SGGeod& location, const SGPath& root, time_t init_time ); public: @@ -128,14 +121,14 @@ public: * @param root root path point to data file location (timezone, etc.) * @param init_time provide an initialization time, 0 means use current clock time */ - SGTime( double lon_rad, double lat_rad, const string& root, - time_t init_time ); + SGTime( const SGGeod& location, const SGPath& root, + time_t init_time ); /** * Create an instance given a data file path. * @param root root path point to data file location (timezone, etc.) */ - SGTime( const string& root ); + SGTime( const SGPath& root ); /** Destructor */ ~SGTime(); @@ -153,7 +146,7 @@ public: clock time * @param warp an optional time offset specified in seconds. This * allows us to advance or rewind "time" if we choose to. */ - void update( double lon_rad, double lat_rad, time_t ct, long int warp ); + void update( const SGGeod& location, time_t ct, long int warp ); /** * Given lon/lat, update timezone information and local_offset @@ -165,7 +158,7 @@ public: * @param lon_rad current longitude (radians) * @param lat_rad current latitude (radians) * @param root base path containing time zone directory */ - void updateLocal( double lon_rad, double lat_rad, const string& root ); + void updateLocal( const SGGeod& location, const std::string& root ); /** @return current system/unix time in seconds */ inline time_t get_cur_time() const { return cur_time; }; @@ -174,11 +167,7 @@ public: inline const char * get_zonename() const { return zonename.c_str(); } /** @return GMT in a "brokent down" tm structure */ -#if defined(_MSC_VER) || defined(__MINGW32__) inline struct tm* getGmt()const { return (struct tm *)&m_gmt; }; -#else - inline struct tm* getGmt()const { return gmt; }; -#endif /** @return julian date */ inline double getJD() const { return jd; };