Qt Virtual Chart Table (QVCT)
CDataTime.cpp
Go to the documentation of this file.
1 // INDENTING (emacs/vi): -*- mode:c++; tab-width:2; c-basic-offset:2; intent-tabs-mode:nil; -*- ex: set tabstop=2 expandtab:
2 
3 /*
4  * Qt Virtual Chart Table (QVCT)
5  * Copyright (C) 2012 Cedric Dufour <http://cedric.dufour.name>
6  * Author: Cedric Dufour <http://cedric.dufour.name>
7  *
8  * The Qt Virtual Chart Table (QVCT) is free software:
9  * you can redistribute it and/or modify it under the terms of the GNU General
10  * Public License as published by the Free Software Foundation, Version 3.
11  *
12  * The Qt Virtual Chart Table (QVCT) is distributed in the hope
13  * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
14  * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15  *
16  * See the GNU General Public License for more details.
17  */
18 
19 // C/C++
20 #include <cmath>
21 #include <time.h>
22 
23 // QT
24 #include <QDataStream>
25 
26 // QVCT
27 #include "data/CDataTime.hpp"
28 
29 
30 //------------------------------------------------------------------------------
31 // CONSTANTS / STATIC
32 //------------------------------------------------------------------------------
33 
35 
36 
37 //------------------------------------------------------------------------------
38 // CONSTRUCTORS / DESTRUCTOR
39 //------------------------------------------------------------------------------
40 
41 CDataTime::CDataTime( double _fdTime )
42 {
43  setTime( _fdTime );
44 }
45 
46 CDataTime::CDataTime( const CDataTime& _roDataTime )
47 {
48  setTime( _roDataTime );
49 }
50 
51 
52 //------------------------------------------------------------------------------
53 // METHODS
54 //------------------------------------------------------------------------------
55 
56 //
57 // SETTERS
58 //
59 
60 void CDataTime::setTime( double _fdTime )
61 {
62  if( _fdTime < 0.0 ) _fdTime = UNDEFINED_TIME;
63  fdTime = _fdTime;
64 }
65 
66 void CDataTime::setTime( time_t _tSeconds, long _lNanoSeconds )
67 {
68  if( _tSeconds < 0 ) {
70  }
71  else {
72  fdTime = (double)_tSeconds + (double)_lNanoSeconds/1000000000.0;
73  }
74 }
75 
76 void CDataTime::setTime( const CDataTime& _roDataTime )
77 {
78  fdTime = _roDataTime.fdTime;
79 }
80 
81 //
82 // OTHER
83 //
84 
85 void CDataTime::serialize( QDataStream& _rqDataStream ) const
86 {
87  _rqDataStream << fdTime;
88 }
89 
90 void CDataTime::unserialize( QDataStream& _rqDataStream )
91 {
92  _rqDataStream >> fdTime;
93 }
94 
95 //
96 // OPERATORS
97 //
98 bool CDataTime::operator==( const CDataTime& _roPC ) const
99 {
100  return( fdTime == _roPC.fdTime );
101 }
102 
103 bool CDataTime::operator!=( const CDataTime& _roPC ) const
104 {
105  return( fdTime != _roPC.fdTime );
106 }
107 
108 //
109 // COMPARATORS
110 //
111 
112 bool CDataTime::compareTimeAscending( const CDataTime& _roTime1, const CDataTime& _roTime2 )
113 {
114  return( _roTime1.fdTime < _roTime2.fdTime );
115 }
116 
117 bool CDataTime::compareTimeDescending( const CDataTime& _roTime1, const CDataTime& _roTime2 )
118 {
119  return( _roTime1.fdTime > _roTime2.fdTime );
120 }
121 
Time data.
Definition: CDataTime.hpp:36
static const CDataTime UNDEFINED
Specific value for an undefined time object.
Definition: CDataTime.hpp:46
bool operator==(const CDataTime &_roTime) const
Equality operator.
Definition: CDataTime.cpp:98
static bool compareTimeDescending(const CDataTime &_roTime1, const CDataTime &_roTime2)
Time (descending sort) comparison operator.
Definition: CDataTime.cpp:117
void unserialize(QDataStream &_rqDataStream)
Unserializes (restore) this object's data from binary format.
Definition: CDataTime.cpp:90
CDataTime(double _fdTime=UNDEFINED_TIME)
Definition: CDataTime.cpp:41
void setTime(double _fdTime)
Sets the time, in seconds from Unix epoch.
Definition: CDataTime.cpp:60
static bool compareTimeAscending(const CDataTime &_roTime1, const CDataTime &_roTime2)
Time (ascending sort) comparison operator.
Definition: CDataTime.cpp:112
bool operator!=(const CDataTime &_roTime) const
Inequality operator.
Definition: CDataTime.cpp:103
void serialize(QDataStream &_rqDataStream) const
Serializes (store) this object's data to binary format.
Definition: CDataTime.cpp:85
static constexpr double UNDEFINED_TIME
Specific value for an undefined time.
Definition: CDataTime.hpp:44
double fdTime
Time, in seconds from Unix epoch.
Definition: CDataTime.hpp:56