PosixTime.hpp
Go to the documentation of this file.
1 //==============================================================================
2 //
3 // This file is part of GNSSTk, the ARL:UT GNSS Toolkit.
4 //
5 // The GNSSTk is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU Lesser General Public License as published
7 // by the Free Software Foundation; either version 3.0 of the License, or
8 // any later version.
9 //
10 // The GNSSTk is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU Lesser General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public
16 // License along with GNSSTk; if not, write to the Free Software Foundation,
17 // Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
18 //
19 // This software was developed by Applied Research Laboratories at the
20 // University of Texas at Austin.
21 // Copyright 2004-2022, The Board of Regents of The University of Texas System
22 //
23 //==============================================================================
24 
25 //==============================================================================
26 //
27 // This software was developed by Applied Research Laboratories at the
28 // University of Texas at Austin, under contract to an agency or agencies
29 // within the U.S. Department of Defense. The U.S. Government retains all
30 // rights to use, duplicate, distribute, disclose, or release this software.
31 //
32 // Pursuant to DoD Directive 523024
33 //
34 // DISTRIBUTION STATEMENT A: This software has been approved for public
35 // release, distribution is unlimited.
36 //
37 //==============================================================================
38 
39 #ifndef GNSSTK_POSIXTIME_HPP
40 #define GNSSTK_POSIXTIME_HPP
41 
42 #include <time.h>
43 #include "TimeTag.hpp"
44 
45 namespace gnsstk
46 {
48 
49 
62  class PosixTime : public TimeTag
63  {
64  public:
70 
75  PosixTime( int sec = 0,
76  int nsec = 0,
78  { ts.tv_sec = sec; ts.tv_nsec = nsec; timeSystem = tsys; }
79 
83  PosixTime( struct timespec t,
85  {
86  ts.tv_sec = t.tv_sec; ts.tv_nsec = t.tv_nsec; timeSystem = tsys;
87  }
88 
93  PosixTime( const PosixTime& right )
94  : ts( right.ts )
95  { timeSystem = right.timeSystem; }
96 
104  PosixTime( const TimeTag& right )
105  {
107  }
108 
116  PosixTime( const CommonTime& right )
117  {
118  convertFromCommonTime( right );
119  }
120 
126  PosixTime& operator=( const PosixTime& right );
127 
129  virtual ~PosixTime()
130  {}
132 
133  // The following functions are required by TimeTag.
134  virtual CommonTime convertToCommonTime() const;
135 
136  virtual void convertFromCommonTime( const CommonTime& ct );
137 
140  virtual std::string printf( const std::string& fmt ) const;
141 
144  virtual std::string printError( const std::string& fmt ) const;
145 
152  virtual bool setFromInfo( const IdToValue& info );
153 
156  virtual std::string getPrintChars() const
157  {
158  return "WNP";
159  }
160 
162  virtual std::string getDefaultFormat() const
163  {
164  return "%W %N %P";
165  }
166 
167  virtual bool isValid() const;
168 
169  virtual void reset();
170 
179  virtual bool operator==( const PosixTime& right ) const;
180  virtual bool operator!=( const PosixTime& right ) const;
181  virtual bool operator<( const PosixTime& right ) const;
182  virtual bool operator>( const PosixTime& right ) const;
183  virtual bool operator<=( const PosixTime& right ) const;
184  virtual bool operator>=( const PosixTime& right ) const;
186 
187  struct timespec ts;
188  };
189 
191 
192 } // namespace
193 
194 #endif // GNSSTK_POSIXTIME_HPP
gnsstk::PosixTime::printError
virtual std::string printError(const std::string &fmt) const
Definition: PosixTime.cpp:123
gnsstk::TimeTag::IdToValue
std::map< char, std::string > IdToValue
Definition: TimeTag.hpp:103
gnsstk::PosixTime::PosixTime
PosixTime(int sec=0, int nsec=0, TimeSystem tsys=TimeSystem::Unknown)
Definition: PosixTime.hpp:75
gnsstk::PosixTime::setFromInfo
virtual bool setFromInfo(const IdToValue &info)
Definition: PosixTime.cpp:144
gnsstk::PosixTime::operator>
virtual bool operator>(const PosixTime &right) const
Definition: PosixTime.cpp:237
gnsstk::PosixTime::convertToCommonTime
virtual CommonTime convertToCommonTime() const
Definition: PosixTime.cpp:54
gnsstk::PosixTime::PosixTime
PosixTime(const TimeTag &right)
Definition: PosixTime.hpp:104
gnsstk::PosixTime::PosixTime
PosixTime(const CommonTime &right)
Definition: PosixTime.hpp:116
gnsstk::TimeSystem::Unknown
@ Unknown
unknown time frame; for legacy code compatibility
gnsstk
For Sinex::InputHistory.
Definition: BasicFramework.cpp:50
gnsstk::PosixTime::~PosixTime
virtual ~PosixTime()
Virtual Destructor.
Definition: PosixTime.hpp:129
gnsstk::PosixTime::PosixTime
PosixTime(const PosixTime &right)
Definition: PosixTime.hpp:93
gnsstk::TimeTag::timeSystem
TimeSystem timeSystem
time system (representation) of the data
Definition: TimeTag.hpp:204
gnsstk::PosixTime::ts
struct timespec ts
Definition: PosixTime.hpp:187
gnsstk::PosixTime::getPrintChars
virtual std::string getPrintChars() const
Definition: PosixTime.hpp:156
gnsstk::TimeTag
Definition: TimeTag.hpp:58
gnsstk::PosixTime::operator!=
virtual bool operator!=(const PosixTime &right) const
Definition: PosixTime.cpp:207
gnsstk::PosixTime::printf
virtual std::string printf(const std::string &fmt) const
Definition: PosixTime.cpp:102
gnsstk::PosixTime::operator=
PosixTime & operator=(const PosixTime &right)
Definition: PosixTime.cpp:46
gnsstk::CommonTime
Definition: CommonTime.hpp:84
gnsstk::PosixTime::operator==
virtual bool operator==(const PosixTime &right) const
Definition: PosixTime.cpp:190
gnsstk::TimeSystem
TimeSystem
Definition of various time systems.
Definition: TimeSystem.hpp:51
gnsstk::TimeTag::convertToCommonTime
virtual CommonTime convertToCommonTime() const =0
TimeTag.hpp
gnsstk::PosixTime::operator<=
virtual bool operator<=(const PosixTime &right) const
Definition: PosixTime.cpp:242
gnsstk::PosixTime::operator<
virtual bool operator<(const PosixTime &right) const
Definition: PosixTime.cpp:212
gnsstk::PosixTime::isValid
virtual bool isValid() const
Returns true if this object's members are valid, false otherwise.
Definition: PosixTime.cpp:173
gnsstk::PosixTime::convertFromCommonTime
virtual void convertFromCommonTime(const CommonTime &ct)
Definition: PosixTime.cpp:71
gnsstk::PosixTime
Definition: PosixTime.hpp:62
gnsstk::PosixTime::getDefaultFormat
virtual std::string getDefaultFormat() const
Return a string containing the default format to use in printing.
Definition: PosixTime.hpp:162
gnsstk::PosixTime::reset
virtual void reset()
Reset this object to the default state.
Definition: PosixTime.cpp:184
gnsstk::PosixTime::operator>=
virtual bool operator>=(const PosixTime &right) const
Definition: PosixTime.cpp:248
gnsstk::PosixTime::PosixTime
PosixTime(struct timespec t, TimeSystem tsys=TimeSystem::Unknown)
Definition: PosixTime.hpp:83


gnsstk
Author(s):
autogenerated on Wed Oct 25 2023 02:40:40