1//===-- SBTypeFilter.h --------------------------------------------*- C++
2//-*-===//
3//
4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5// See https://llvm.org/LICENSE.txt for license information.
6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef LLDB_API_SBTYPEFILTER_H
11#define LLDB_API_SBTYPEFILTER_H
12
13#include "lldb/API/SBDefines.h"
14
15namespace lldb {
16
17class LLDB_API SBTypeFilter {
18public:
19  SBTypeFilter();
20
21  SBTypeFilter(uint32_t options); // see lldb::eTypeOption values
22
23  SBTypeFilter(const lldb::SBTypeFilter &rhs);
24
25  ~SBTypeFilter();
26
27  explicit operator bool() const;
28
29  bool IsValid() const;
30
31  uint32_t GetNumberOfExpressionPaths();
32
33  const char *GetExpressionPathAtIndex(uint32_t i);
34
35  bool ReplaceExpressionPathAtIndex(uint32_t i, const char *item);
36
37  void AppendExpressionPath(const char *item);
38
39  void Clear();
40
41  uint32_t GetOptions();
42
43  void SetOptions(uint32_t);
44
45  bool GetDescription(lldb::SBStream &description,
46                      lldb::DescriptionLevel description_level);
47
48  lldb::SBTypeFilter &operator=(const lldb::SBTypeFilter &rhs);
49
50  bool IsEqualTo(lldb::SBTypeFilter &rhs);
51
52  bool operator==(lldb::SBTypeFilter &rhs);
53
54  bool operator!=(lldb::SBTypeFilter &rhs);
55
56protected:
57  friend class SBDebugger;
58  friend class SBTypeCategory;
59  friend class SBValue;
60
61  lldb::TypeFilterImplSP GetSP();
62
63  void SetSP(const lldb::TypeFilterImplSP &typefilter_impl_sp);
64
65  lldb::TypeFilterImplSP m_opaque_sp;
66
67  SBTypeFilter(const lldb::TypeFilterImplSP &);
68
69  bool CopyOnWrite_Impl();
70};
71
72} // namespace lldb
73
74#endif // LLDB_API_SBTYPEFILTER_H
75