#ifndef INCLUDED_BOBCAT_SYSTEMCLOCK_
#define INCLUDED_BOBCAT_SYSTEMCLOCK_

#include <bobcat/highsysclock>

namespace FBB
{

struct SystemClock: public HighSysClock<std::chrono::system_clock>
{
    using ChronoClock = std::chrono::system_clock;

    SystemClock(TimePoint const &timePoint = now());

                                            // constructor accepting
    template <typename ClockTp>             // ClockBase<ClockTp>: any clock 
    SystemClock(ClockBase<ClockTp> const &clock);   // derived fm ClockBase
};

inline SystemClock::SystemClock(TimePoint const &timePoint)
:
    HighSysClock<ChronoClock>(timePoint)
{}

template <typename ClockTp>
inline SystemClock::SystemClock(ClockBase<ClockTp> const &clock)
:
    HighSysClock<ChronoClock>(toClock<SystemClock>(clock))
{}

} // FBB        
#endif





