File: highsysclock.f

package info (click to toggle)
bobcat 6.11.00-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 15,292 kB
  • sloc: cpp: 21,370; fortran: 6,507; makefile: 2,787; sh: 724; perl: 401; ansic: 26
file content (56 lines) | stat: -rw-r--r-- 1,536 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
template<typename ChronoClock>
inline HighSysClock<ChronoClock>::HighSysClock(TimePoint const &timePoint)
:
    ClockBase<ChronoClock>(timePoint),
    d_putTime(0),
    d_localTime(true)
{}

template <typename ChronoClock>
inline std::time_t HighSysClock<ChronoClock>::timeT() const
{
                     // cf. Annotations 23.1.1
    return ChronoClock::to_time_t(this->timePoint());
}

template <typename ChronoClock> 
HighSysClock<ChronoClock> &HighSysClock<ChronoClock>::setTimeT(
                                                            std::time_t secs)
{
    ChronoClock::from_time_t(secs);
    return *this;
}

template<typename ChronoClock>
HighSysClock<ChronoClock> const &HighSysClock<ChronoClock>::operator()(
                                                    char const *putTime,
                                                    bool localTime)  const
{
    d_putTime = putTime;
    d_localTime = localTime;
    return *this;
}

template<typename ChronoClock>
std::ostream &HighSysClock<ChronoClock>::insert(std::ostream &out) const
{
    if (d_putTime == 0)
         return out << static_cast<ClockBase<ChronoClock>>(*this);

    time_t tt = timeT();
    tm *tmPtr = d_localTime ? std::localtime(&tt) : std::gmtime(&tt);
    out << std::put_time(tmPtr, d_putTime);
    d_putTime = 0;

    return out;
}
    

template <typename ChronoClock>
inline std::ostream &operator<<(std::ostream &out,               // .f
                         HighSysClock<ChronoClock> const &clock)
{
    return clock.insert(out);
}