VR-Forces 4.6.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
timeZoneManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 #pragma once
10 
11 #include <vrfGuiCore/vrfGuiCore.h>
12 #include <vrvUtil/signalslib.h>
14 #include <vlutil/vlFilename.h>
15 #include <matrix/vlVector.h>
16 #include <time.h>
17 
18 namespace makVrv
19 {
20  class DtDe;
21 }
22 
23 class DtGeodeticCoord;
24 
25 namespace makVrf
26 {
31  {
32  public:
33 
34  struct TimezoneData
35  {
36  std::string abbrev;
37  std::string title;
38  double offset;
39  std::string location;
40  };
41 
43  typedef std::map<std::string, TimezoneData> Timezones;
45  {
46  IlluminationIconData() : lowVal(0), highVal(0) {};
47 
48  IlluminationIconData(double l, double h, const std::string& i)
49  : lowVal(l), highVal(h), iconFile(i)
50  {
51  }
52 
54  : lowVal(orig.lowVal), highVal(orig.highVal), iconFile(orig.iconFile)
55  {
56  }
57 
58  double lowVal;
59  double highVal;
60  std::string iconFile;
61  };
62 
63  typedef std::map<int, std::vector<IlluminationIconData> > IlluminationIcon;
64 
65  typedef std::vector<std::string> DateTimeFormats;
66 
67  public:
70 
72  virtual ~DtTimeZoneManager();
73 
75  static DtTimeZoneManager& instance(makVrv::DtDe& de);
76 
78  static void registerInstance(makVrv::DtDe&, DtTimeZoneManager*);
79 
80  virtual const Timezones& timezones() const;
81 
83  virtual std::string addTimezone(const std::string& abbrev, const std::string& title, double offset, const std::string& location);
84 
86  virtual void removeTimezone(const std::string& key);
87 
90  virtual void setUseLocalTimezone(bool);
91  virtual bool useLocalTimezone() const;
92 
97  virtual void setDateAndTimeOfDayFormat(const std::string&);
98  virtual std::string dateAndTimeOfDayFormat() const;
99 
103  virtual const DateTimeFormats& dateTimeFormats() const;
104  virtual DateTimeFormats& dateTimeFormats();
105  virtual void addDateTimeFormat(const std::string&);
107 
109  virtual time_t offsetForTimezone(const std::string& key) const;
110 
113  virtual time_t modifyTimeBasedOnTimezoneSelection(time_t);
114 
116  virtual void setCurrentTimezone(const std::string&);
117 
119  virtual std::string currentTimezone() const;
120 
122  virtual std::string currentTimezoneAbbreviation() const;
123 
125  virtual std::string timezoneTitle() const;
126 
128  virtual time_t offsetForTimezone() const;
129 
131  virtual time_t convertFromLocalTimeToUtcTime(time_t) const;
132 
134  virtual time_t currentUtcDateTime() const;
135 
137  virtual time_t currentLocalDateTime() const;
138 
140  virtual time_t convertFromUtcTimeToLocalTime(time_t) const;
141  virtual void convertFromUtcTimeToLocalTime(int y, int m, int d, int h, int mm, int sec,
142  int& year, int& month, int& day, int& hours, int& minutes, int& seconds) const;
143  virtual time_t convertToUtcTime(int y, int m, int d, int h, int mm, int sec) const;
144 
146  virtual time_t convert(const std::string& source, time_t, const std::string& dest);
147 
149  virtual void load(const DtFilename&, bool merge = false);
150 
152  virtual std::string dateTimeFormatString(time_t);
153 
165  virtual double illuminationValue(const DtGeodeticCoord& position, time_t time,
166  double nighttimeMaximum = 0.1, double illuminationMinimum = 0.001, bool useGMTPosition = false, int* sunstate = 0) const;
167 
169  virtual double maximumNighttimeValue() const;
170  virtual void setMaximumNighttimeValue(double);
171 
173  virtual double minimumIlluminationValue();
174  virtual void setMinimumIlluminationValue(double);
175 
177  virtual std::string illuminationIcon(double illumination, int sunState) const;
178 
180  virtual void addIlluminationIcon(int sunState, double lowIllumination, double highIllumination, const std::string&);
181 
182  const IlluminationIcon& illuminationIcons() const
183  {
184  return myIlluminationIcons;
185  }
186 
187  IlluminationIcon& illuminationIcons()
188  {
189  return myIlluminationIcons;
190  }
191 
193  virtual void resetSystemDateTime();
194 
195  virtual time_t utcTime(struct tm* tod) const;
196 
199  virtual time_t offsetTimeByObserverPosition(time_t curTime) const;
200 
202  virtual time_t unoffsetTimeByObserverPosition(time_t curTime) const;
203 
205  virtual time_t timeZoneOffsetForPosition(const DtVector&) const;
206 
208  virtual time_t timeZoneOffsetForCurrentObserver() const;
209 
210  public:
212  boost::signal<void (std::string, std::string)> signal_timezoneChanged;
213 
214  boost::signal<void (std::string)> signal_dateAndTimeFormatChanged;
215 
216  protected:
221 
224  };
225 }

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)