1 //===-- SBTypeNameSpecifier.h --------------------------------------*- C++
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
8 //===----------------------------------------------------------------------===//
10 #ifndef LLDB_SBTypeNameSpecifier_h_
11 #define LLDB_SBTypeNameSpecifier_h_
13 #include "lldb/API/SBDefines.h"
17 class LLDB_API SBTypeNameSpecifier {
19 SBTypeNameSpecifier();
21 SBTypeNameSpecifier(const char *name, bool is_regex = false);
23 SBTypeNameSpecifier(SBType type);
25 SBTypeNameSpecifier(const lldb::SBTypeNameSpecifier &rhs);
27 ~SBTypeNameSpecifier();
29 explicit operator bool() const;
33 const char *GetName();
39 bool GetDescription(lldb::SBStream &description,
40 lldb::DescriptionLevel description_level);
42 lldb::SBTypeNameSpecifier &operator=(const lldb::SBTypeNameSpecifier &rhs);
44 bool IsEqualTo(lldb::SBTypeNameSpecifier &rhs);
46 bool operator==(lldb::SBTypeNameSpecifier &rhs);
48 bool operator!=(lldb::SBTypeNameSpecifier &rhs);
51 friend class SBDebugger;
52 friend class SBTypeCategory;
54 lldb::TypeNameSpecifierImplSP GetSP();
56 void SetSP(const lldb::TypeNameSpecifierImplSP &type_namespec_sp);
58 lldb::TypeNameSpecifierImplSP m_opaque_sp;
60 SBTypeNameSpecifier(const lldb::TypeNameSpecifierImplSP &);
65 #endif // LLDB_SBTypeNameSpecifier_h_