VR-Forces 4.3.1 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 title;
36  double offset;
37  std::string location;
38  };
39 
41  typedef std::map<std::string, TimezoneData> Timezones;
43  {
44  IlluminationIconData() : lowVal(0), highVal(0) {};
45 
46  IlluminationIconData(double l, double h, const std::string& i)
47  : lowVal(l), highVal(h), iconFile(i)
48  {
49  }
50 
52  : lowVal(orig.lowVal), highVal(orig.highVal), iconFile(orig.iconFile)
53  {
54  }
55 
56  double lowVal;
57  double highVal;
58  std::string iconFile;
59  };
60 
61  typedef std::map<int, std::vector<IlluminationIconData> > IlluminationIcon;
62 
63  typedef std::vector<std::string> DateTimeFormats;
64 
65  public:
68 
70  virtual ~DtTimeZoneManager();
71 
73  static DtTimeZoneManager& instance(makVrv::DtDe& de);
74 
76  static void registerInstance(makVrv::DtDe&, DtTimeZoneManager*);
77 
78  virtual const Timezones& timezones() const;
79 
81  virtual void addTimezone(const std::string& abbrev, const std::string& title, double offset, const std::string& location);
82 
84  virtual void removeTimezone(const std::string& abbrev);
85 
88  virtual void setUseLocalTimezone(bool);
89  virtual bool useLocalTimezone() const;
90 
95  virtual void setDateAndTimeOfDayFormat(const std::string&);
96  virtual std::string dateAndTimeOfDayFormat() const;
97 
101  virtual const DateTimeFormats& dateTimeFormats() const;
102  virtual DateTimeFormats& dateTimeFormats();
103  virtual void addDateTimeFormat(const std::string&);
105 
107  virtual time_t offsetForTimezone(const std::string& abbrev) const;
108 
111  virtual time_t modifyTimeBasedOnTimezoneSelection(time_t);
112 
114  virtual void setCurrentTimezone(const std::string&);
115 
117  virtual std::string currentTimezone() const;
118 
120  virtual std::string timezoneTitle() const;
121 
123  virtual time_t offsetForTimezone() const;
124 
126  virtual time_t convertFromLocalTimeToUtcTime(time_t) const;
127 
129  virtual time_t currentUtcDateTime() const;
130 
132  virtual time_t currentLocalDateTime() const;
133 
135  virtual time_t convertFromUtcTimeToLocalTime(time_t) const;
136  virtual void convertFromUtcTimeToLocalTime(int y, int m, int d, int h, int mm, int sec,
137  int& year, int& month, int& day, int& hours, int& minutes, int& seconds) const;
138 
140  virtual time_t convert(const std::string& source, time_t, const std::string& dest);
141 
143  virtual void load(const DtFilename&, bool merge = false);
144 
146  virtual std::string dateTimeFormatString(time_t);
147 
159  virtual double illuminationValue(const DtGeodeticCoord& position, time_t time,
160  double nighttimeMaximum = 0.1, double illuminationMinimum = 0.001, bool useGMTPosition = false, int* sunstate = 0) const;
161 
163  virtual double maximumNighttimeValue() const;
164  virtual void setMaximumNighttimeValue(double);
165 
167  virtual double minimumIlluminationValue();
168  virtual void setMinimumIlluminationValue(double);
169 
171  virtual std::string illuminationIcon(double illumination, int sunState) const;
172 
174  virtual void addIlluminationIcon(int sunState, double lowIllumination, double highIllumination, const std::string&);
175 
176  const IlluminationIcon& illuminationIcons() const
177  {
178  return myIlluminationIcons;
179  }
180 
181  IlluminationIcon& illuminationIcons()
182  {
183  return myIlluminationIcons;
184  }
185 
186  public:
188  boost::signal<void (std::string, std::string)> signal_timezoneChanged;
189 
190  boost::signal<void (std::string)> signal_dateAndTimeFormatChanged;
191 
192  protected:
197 
200  };
201 }

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)