1 //===-- SBStatisticsOptions.h -----------------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLDB_API_SBSTATISTICSOPTIONS_H
10 #define LLDB_API_SBSTATISTICSOPTIONS_H
11 
12 #include "lldb/API/SBDefines.h"
13 
14 namespace lldb {
15 
16 /// This class handles the verbosity when dumping statistics
17 class LLDB_API SBStatisticsOptions {
18 public:
19   SBStatisticsOptions();
20   SBStatisticsOptions(const lldb::SBStatisticsOptions &rhs);
21   ~SBStatisticsOptions();
22 
23   const SBStatisticsOptions &operator=(const lldb::SBStatisticsOptions &rhs);
24 
25   void SetSummaryOnly(bool b);
26   bool GetSummaryOnly();
27 
28   /// If set to true, the debugger will load all debug info that is available
29   /// and report statistics on the total amount. If this is set to false, then
30   /// only report statistics on the currently loaded debug information.
31   /// This can avoid loading debug info from separate files just so it can
32   /// report the total size which can slow down statistics reporting.
33   void SetReportAllAvailableDebugInfo(bool b);
34   bool GetReportAllAvailableDebugInfo();
35 
36 protected:
37   friend class SBTarget;
38   const lldb_private::StatisticsOptions &ref() const;
39 
40 private:
41   std::unique_ptr<lldb_private::StatisticsOptions> m_opaque_up;
42 };
43 } // namespace lldb
44 #endif // LLDB_API_SBSTATISTICSOPTIONS_H
45