VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 <time.h>
16 
17 namespace makVrv
18 {
19  class DtDe;
20 }
21 
22 class DtGeodeticCoord;
23 
24 namespace makVrf
25 {
30  {
31  public:
32 
33  struct TimezoneData
34  {
35  std::string abbrev;
36  std::string title;
37  double offset;
38  std::string location;
39  };
40 
42  typedef std::map<std::string, TimezoneData> Timezones;
44  {
45  IlluminationIconData() : lowVal(0), highVal(0) {};
46 
47  IlluminationIconData(double l, double h, const std::string& i)
48  : lowVal(l), highVal(h), iconFile(i)
49  {
50  }
51 
53  : lowVal(orig.lowVal), highVal(orig.highVal), iconFile(orig.iconFile)
54  {
55  }
56 
57  double lowVal;
58  double highVal;
59  std::string iconFile;
60  };
61 
62  typedef std::map<int, std::vector<IlluminationIconData> > IlluminationIcon;
63 
64  typedef std::vector<std::string> DateTimeFormats;
65 
66  public:
69 
71  virtual ~DtTimeZoneManager();
72 
74  static DtTimeZoneManager& instance(makVrv::DtDe& de);
75 
77  static void registerInstance(makVrv::DtDe&, DtTimeZoneManager*);
78 
79  virtual const Timezones& timezones() const;
80 
82  virtual std::string addTimezone(const std::string& abbrev, const std::string& title, double offset, const std::string& location);
83 
85  virtual void removeTimezone(const std::string& key);
86 
89  virtual void setUseLocalTimezone(bool);
90  virtual bool useLocalTimezone() const;
91 
96  virtual void setDateAndTimeOfDayFormat(const std::string&);
97  virtual std::string dateAndTimeOfDayFormat() const;
98 
102  virtual const DateTimeFormats& dateTimeFormats() const;
103  virtual DateTimeFormats& dateTimeFormats();
104  virtual void addDateTimeFormat(const std::string&);
106 
108  virtual time_t offsetForTimezone(const std::string& key) const;
109 
112  virtual time_t modifyTimeBasedOnTimezoneSelection(time_t);
113 
115  virtual void setCurrentTimezone(const std::string&);
116 
118  virtual std::string currentTimezone() const;
119 
121  virtual std::string currentTimezoneAbbreviation() const;
122 
124  virtual std::string timezoneTitle() const;
125 
127  virtual time_t offsetForTimezone() const;
128 
130  virtual time_t convertFromLocalTimeToUtcTime(time_t) const;
131 
133  virtual time_t currentUtcDateTime() const;
134 
136  virtual time_t currentLocalDateTime() const;
137 
139  virtual time_t convertFromUtcTimeToLocalTime(time_t) const;
140  virtual void convertFromUtcTimeToLocalTime(int y, int m, int d, int h, int mm, int sec,
141  int& year, int& month, int& day, int& hours, int& minutes, int& seconds) const;
142 
144  virtual time_t convert(const std::string& source, time_t, const std::string& dest);
145 
147  virtual void load(const DtFilename&, bool merge = false);
148 
150  virtual std::string dateTimeFormatString(time_t);
151 
163  virtual double illuminationValue(const DtGeodeticCoord& position, time_t time,
164  double nighttimeMaximum = 0.1, double illuminationMinimum = 0.001, bool useGMTPosition = false, int* sunstate = 0) const;
165 
167  virtual double maximumNighttimeValue() const;
168  virtual void setMaximumNighttimeValue(double);
169 
171  virtual double minimumIlluminationValue();
172  virtual void setMinimumIlluminationValue(double);
173 
175  virtual std::string illuminationIcon(double illumination, int sunState) const;
176 
178  virtual void addIlluminationIcon(int sunState, double lowIllumination, double highIllumination, const std::string&);
179 
180  const IlluminationIcon& illuminationIcons() const
181  {
182  return myIlluminationIcons;
183  }
184 
185  IlluminationIcon& illuminationIcons()
186  {
187  return myIlluminationIcons;
188  }
189 
190  public:
192  boost::signal<void (std::string, std::string)> signal_timezoneChanged;
193 
194  boost::signal<void (std::string)> signal_dateAndTimeFormatChanged;
195 
196  protected:
201 
204  };
205 }

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)