VR-Forces 4.10 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 const char DtTimeDateFormatsSetStandard[] = "Standard";
26 const char DtTimeDateFormatsSetMilitary[] = "Military";
27 
28 namespace makVrf
29 {
34  {
35  public:
36 
37  struct TimezoneData
38  {
39  std::string abbrev;
40  std::string title;
41  double offset;
42  std::string location;
43  };
44 
46  typedef std::map<std::string, TimezoneData> Timezones;
48  {
49  IlluminationIconData() : lowVal(0), highVal(0) {};
50 
51  IlluminationIconData(double l, double h, const std::string& i)
52  : lowVal(l), highVal(h), iconFile(i)
53  {
54  }
55 
57  : lowVal(orig.lowVal), highVal(orig.highVal), iconFile(orig.iconFile)
58  {
59  }
60 
61  double lowVal;
62  double highVal;
63  std::string iconFile;
64  };
65 
66  typedef std::map<int, std::vector<IlluminationIconData> > IlluminationIcon;
67 
68  typedef std::vector<std::string> DateTimeFormats;
69 
70  struct FormatsSet
71  {
74  };
75 
76  typedef std::map<std::string, FormatsSet> FormatsSetsMap;
77 
78  public:
81 
83  virtual ~DtTimeZoneManager();
84 
86  static DtTimeZoneManager& instance(makVrv::DtDe& de);
87 
89  static void registerInstance(makVrv::DtDe&, DtTimeZoneManager*);
90 
91  virtual const Timezones& timezones() const;
92 
95  virtual void setUseLocalTimezone(bool);
96  virtual bool useLocalTimezone() const;
97 
102  virtual void setDateAndTimeOfDayFormat(const std::string&);
103  virtual std::string dateAndTimeOfDayFormat() const;
104 
108  virtual const DateTimeFormats& dateTimeFormats() const;
109  virtual DateTimeFormats& dateTimeFormats();
111 
113  virtual time_t offsetForTimezone(const std::string& key) const;
114 
117  virtual time_t modifyTimeBasedOnTimezoneSelection(time_t);
118 
120  virtual void setCurrentTimezone(const std::string&);
121 
123  virtual std::string currentTimezone() const;
124 
126  virtual void setCurrentFormatsSet(const std::string&);
127 
129  virtual std::string currentFormatsSet() const;
130 
132  virtual std::string currentTimezoneAbbreviation() const;
133 
135  virtual std::string timezoneTitle() const;
136 
138  virtual time_t offsetForTimezone() const;
139 
141  virtual time_t convertFromLocalTimeToUtcTime(time_t) const;
142 
144  virtual time_t currentUtcDateTime() const;
145 
147  virtual time_t currentLocalDateTime() const;
148 
150  virtual time_t convertFromUtcTimeToLocalTime(time_t) const;
151  virtual void convertFromUtcTimeToLocalTime(int y, int m, int d, int h, int mm, int sec,
152  int& year, int& month, int& day, int& hours, int& minutes, int& seconds) const;
153  virtual time_t convertToUtcTime(int y, int m, int d, int h, int mm, int sec) const;
154 
156  virtual time_t convert(const std::string& source, time_t, const std::string& dest);
157 
159  virtual void load(const DtFilename&, bool merge = false);
160 
162  virtual std::string dateTimeFormatString(time_t);
163 
175  virtual double illuminationValue(const DtGeodeticCoord& position, time_t time,
176  double nighttimeMaximum = 0.1, double illuminationMinimum = 0.001, bool useGMTPosition = false, int* sunstate = 0) const;
177 
179  virtual double maximumNighttimeValue() const;
180  virtual void setMaximumNighttimeValue(double);
181 
183  virtual double minimumIlluminationValue();
184  virtual void setMinimumIlluminationValue(double);
185 
187  virtual std::string illuminationIcon(double illumination, int sunState) const;
188 
190  virtual void addIlluminationIcon(int sunState, double lowIllumination, double highIllumination, const std::string&);
191 
193  {
194  return myIlluminationIcons;
195  }
196 
198  {
199  return myIlluminationIcons;
200  }
201 
203  virtual void resetSystemDateTime();
204 
205  virtual time_t utcTime(struct tm* tod) const;
206 
209  virtual time_t offsetTimeByObserverPosition(time_t curTime) const;
210 
212  virtual time_t unoffsetTimeByObserverPosition(time_t curTime) const;
213 
215  virtual time_t timeZoneOffsetForPosition(const DtVector&) const;
216 
218  virtual time_t timeZoneOffsetForCurrentObserver() const;
219 
220  public:
222  boost::signals2::signal<void (std::string, std::string)> signal_timezoneChanged;
223 
224  boost::signals2::signal<void (std::string)> signal_dateAndTimeFormatChanged;
225 
226  boost::signals2::signal<void(std::string)> signal_formatsSetChanged;
227 
228  protected:
233 
236 
238  };
239 }
Definition: timeZoneManager.h:70
IlluminationIconData(const IlluminationIconData &orig)
Definition: timeZoneManager.h:56
const char DtTimeDateFormatsSetStandard[]
Definition: timeZoneManager.h:25
FormatsSetsMap myFormatsSetsMap
Definition: timeZoneManager.h:237
Virtual base class.
Definition: DtVirtualBaseClass.h:19
const IlluminationIcon & illuminationIcons() const
Definition: timeZoneManager.h:192
boost::signals2::signal< void(std::string)> signal_dateAndTimeFormatChanged
Definition: timeZoneManager.h:224
boost::signals2::signal< void(std::string)> signal_formatsSetChanged
Definition: timeZoneManager.h:226
IlluminationIcon myIlluminationIcons
Definition: timeZoneManager.h:234
std::string title
Definition: timeZoneManager.h:40
DateTimeFormats dateTimeFormats
Definition: timeZoneManager.h:73
DateTimeFormats myDateTimeFormats
Definition: timeZoneManager.h:235
Definition: timeZoneManager.h:37
std::map< int, std::vector< IlluminationIconData > > IlluminationIcon
Definition: timeZoneManager.h:66
std::vector< std::string > DateTimeFormats
Definition: timeZoneManager.h:68
Timezones timezones
Definition: timeZoneManager.h:72
IlluminationIconData(double l, double h, const std::string &i)
Definition: timeZoneManager.h:51
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
std::map< std::string, TimezoneData > Timezones
Key is abbreviation.
Definition: timeZoneManager.h:46
IlluminationIconData()
Definition: timeZoneManager.h:49
std::string location
Hours.
Definition: timeZoneManager.h:42
double lowVal
Definition: timeZoneManager.h:61
Contains makVrv::DtVirtualBaseClass class.
std::string abbrev
Definition: timeZoneManager.h:39
boost::signals2::signal< void(std::string, std::string)> signal_timezoneChanged
Signal of old and new timezone.
Definition: timeZoneManager.h:222
Definition: timeZoneManager.h:47
std::map< std::string, FormatsSet > FormatsSetsMap
Definition: timeZoneManager.h:76
double myMinimumIlluminationValue
Definition: timeZoneManager.h:232
IlluminationIcon & illuminationIcons()
Definition: timeZoneManager.h:197
const char * source
Definition: lz4.h:442
double myNighttimeMaximumValue
Definition: timeZoneManager.h:231
const char DtTimeDateFormatsSetMilitary[]
Definition: timeZoneManager.h:26
std::string iconFile
Definition: timeZoneManager.h:63
Timezones myTimezones
Definition: timeZoneManager.h:229
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
makVrv::DtDe & myDe
Definition: timeZoneManager.h:230
char * dest
Definition: lz4.h:440
double offset
Definition: timeZoneManager.h:41
The timezone manager keeps track of all timezones available for the user to select from in the system...
Definition: timeZoneManager.h:33
double highVal
Definition: timeZoneManager.h:62

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)