2 // Copyright (c) 2020 Fraunhofer Institute for Applied Information Technology (FIT)
3 // Network Research Group (NET)
4 // Schloss Birlinghoven, 53754 Sankt Augustin, GERMANY
5 // Contact: support@wiback.org
7 // This file is part of the SENF code tree.
8 // It is licensed under the 3-clause BSD License (aka New BSD License).
9 // See LICENSE.txt in the top level directory for details or visit
10 // https://opensource.org/licenses/BSD-3-Clause
15 \brief TimeSource inline non-template implementation */
17 #include "TimeSource.ih"
21 #define prefix_ inline
22 //-/////////////////////////////////////////////////////////////////////////////////////////////////
24 //-/////////////////////////////////////////////////////////////////////////////////////////////////
25 // senf::log::detail::TimeSourceManager
27 prefix_ senf::log::detail::TimeSourceManager::TimeSourceManager()
28 : timeSource_ (new SystemTimeSource())
31 prefix_ senf::log::time_type senf::log::detail::TimeSourceManager::now()
33 return (*timeSource_)();
36 prefix_ void senf::log::detail::TimeSourceManager::timeSource(std::unique_ptr<TimeSource> source)
38 timeSource_.reset(source.release());
41 //-/////////////////////////////////////////////////////////////////////////////////////////////////
42 // senf::log::TimeSource
44 prefix_ senf::log::time_type senf::log::TimeSource::now()
46 return detail::TimeSourceManager::instance().now();
49 //-/////////////////////////////////////////////////////////////////////////////////////////////////
50 // namespace senf::log members
52 prefix_ void senf::log::timeSource(std::unique_ptr<TimeSource> source)
54 detail::TimeSourceManager::instance().timeSource(std::move(source));
57 //-/////////////////////////////////////////////////////////////////////////////////////////////////
65 // c-file-style: "senf"
66 // indent-tabs-mode: nil
67 // ispell-local-dictionary: "american"
68 // compile-command: "scons -u test"