X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Ftiming%2Fsg_time.hxx;h=ba058f4a864b8f600532655ac34db493f1046452;hb=e3fc89890c8f5cb4c09f936209e46878d2f2ea67;hp=fb23ddf50e13e995201cb39ade81d6f4282495e7;hpb=f8201e6478ec1ca1b6be977cd70f4c56d0c37c44;p=simgear.git diff --git a/simgear/timing/sg_time.hxx b/simgear/timing/sg_time.hxx index fb23ddf5..ba058f4a 100644 --- a/simgear/timing/sg_time.hxx +++ b/simgear/timing/sg_time.hxx @@ -5,7 +5,7 @@ // Written by Curtis Olson, started August 1997. // -// Copyright (C) 1997 Curtis L. Olson - curt@flightgear.org +// Copyright (C) 1997 Curtis L. Olson - http://www.flightgear.org/~curt // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Library General Public @@ -17,10 +17,9 @@ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Library General Public License for more details. // -// You should have received a copy of the GNU Library General Public -// License along with this library; if not, write to the -// Free Software Foundation, Inc., 59 Temple Place - Suite 330, -// Boston, MA 02111-1307, USA. +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. // // $Id$ @@ -29,18 +28,14 @@ #define _SG_TIME_HXX -#ifndef __cplusplus +#ifndef __cplusplus # error This library requires C++ -#endif +#endif #include -#ifdef SG_HAVE_STD_INCLUDES -# include -#else -# include -#endif +#include #include @@ -72,17 +67,13 @@ private: 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; @@ -105,7 +96,7 @@ private: double gst_diff; /** init common constructor code */ - void init( double lon_rad, double lat_rad, const string& root, + void init( double lon_rad, double lat_rad, const std::string& root, time_t init_time ); public: @@ -129,14 +120,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, + SGTime( double lon_rad, double lat_rad, const std::string& 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 std::string& root ); /** Destructor */ ~SGTime(); @@ -166,7 +157,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( double lon_rad, double lat_rad, const std::string& root ); /** @return current system/unix time in seconds */ inline time_t get_cur_time() const { return cur_time; }; @@ -175,11 +166,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; }; @@ -192,6 +179,9 @@ public: /** @return grenich side real time (lst when longitude == 0) */ inline double getGst() const { return gst; }; + + /** @return offset in seconds to local timezone time */ + inline time_t get_local_offset() const { return local_offset; }; }; @@ -200,7 +190,7 @@ public: /** * \relates SGTime - * Return unix time in seconds for the given data (relative to GMT) + * Return unix time in seconds for the given date (relative to GMT) * @param year current GMT year * @param month current GMT month * @param day current GMT day