]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm-project/lldb/include/lldb/API/SBTypeNameSpecifier.h
Fix a memory leak in if_delgroups() introduced in r334118.
[FreeBSD/FreeBSD.git] / contrib / llvm-project / lldb / include / lldb / API / SBTypeNameSpecifier.h
1 //===-- SBTypeNameSpecifier.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_SBTypeNameSpecifier_h_
11 #define LLDB_SBTypeNameSpecifier_h_
12
13 #include "lldb/API/SBDefines.h"
14
15 namespace lldb {
16
17 class LLDB_API SBTypeNameSpecifier {
18 public:
19   SBTypeNameSpecifier();
20
21   SBTypeNameSpecifier(const char *name, bool is_regex = false);
22
23   SBTypeNameSpecifier(SBType type);
24
25   SBTypeNameSpecifier(const lldb::SBTypeNameSpecifier &rhs);
26
27   ~SBTypeNameSpecifier();
28
29   explicit operator bool() const;
30
31   bool IsValid() const;
32
33   const char *GetName();
34
35   SBType GetType();
36
37   bool IsRegex();
38
39   bool GetDescription(lldb::SBStream &description,
40                       lldb::DescriptionLevel description_level);
41
42   lldb::SBTypeNameSpecifier &operator=(const lldb::SBTypeNameSpecifier &rhs);
43
44   bool IsEqualTo(lldb::SBTypeNameSpecifier &rhs);
45
46   bool operator==(lldb::SBTypeNameSpecifier &rhs);
47
48   bool operator!=(lldb::SBTypeNameSpecifier &rhs);
49
50 protected:
51   friend class SBDebugger;
52   friend class SBTypeCategory;
53
54   lldb::TypeNameSpecifierImplSP GetSP();
55
56   void SetSP(const lldb::TypeNameSpecifierImplSP &type_namespec_sp);
57
58   lldb::TypeNameSpecifierImplSP m_opaque_sp;
59
60   SBTypeNameSpecifier(const lldb::TypeNameSpecifierImplSP &);
61 };
62
63 } // namespace lldb
64
65 #endif // LLDB_SBTypeNameSpecifier_h_