kodi
IPlatformLog.h
1 /*
2  * Copyright (C) 2020 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include <memory>
12 #include <mutex>
13 #include <string>
14 
15 #ifdef TARGET_WINDOWS
16 using spdlog_filename_t = std::wstring;
17 #else
18 using spdlog_filename_t = std::string;
19 #endif
20 
21 namespace spdlog
22 {
23 namespace sinks
24 {
25 template<typename Mutex>
26 class dist_sink;
27 }
28 } // namespace spdlog
29 
31 {
32 public:
33  virtual ~IPlatformLog() = default;
34 
35  static std::unique_ptr<IPlatformLog> CreatePlatformLog();
36 
37  virtual spdlog_filename_t GetLogFilename(const std::string& filename) const = 0;
38  virtual void AddSinks(
39  std::shared_ptr<spdlog::sinks::dist_sink<std::mutex>> distributionSink) const = 0;
40 };
Definition: IPlatformLog.h:21
Definition: IPlatformLog.h:30
Definition: IPlatformLog.h:26