1 /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
2 file Copyright.txt or https://cmake.org/licensing for details. */
9 #include <cm3p/json/value.h> // IWYU pragma: keep
11 #include "cmsys/FStream.hxx"
17 class cmMakefileProfilingData
20 cmMakefileProfilingData(const std::string
&);
21 ~cmMakefileProfilingData() noexcept
;
22 void StartEntry(const std::string
& category
, const std::string
& name
,
23 cm::optional
<Json::Value
> args
= cm::nullopt
);
30 RAII(const RAII
&) = delete;
31 RAII(RAII
&&) noexcept
;
33 RAII(cmMakefileProfilingData
& data
, const std::string
& category
,
34 const std::string
& name
,
35 cm::optional
<Json::Value
> args
= cm::nullopt
);
39 RAII
& operator=(const RAII
&) = delete;
40 RAII
& operator=(RAII
&&) noexcept
;
43 cmMakefileProfilingData
* Data
= nullptr;
47 cmsys::ofstream ProfileStream
;
48 std::unique_ptr
<Json::StreamWriter
> JsonWriter
;