116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata//===-- SBTypeNameSpecifier.h --------------------------------------*- C++ -*-===// 216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata// 316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata// The LLVM Compiler Infrastructure 416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata// 516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata// This file is distributed under the University of Illinois Open Source 616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata// License. See LICENSE.TXT for details. 716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata// 816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata//===----------------------------------------------------------------------===// 916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 1016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata#ifndef LLDB_SBTypeNameSpecifier_h_ 1116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata#define LLDB_SBTypeNameSpecifier_h_ 1216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 1316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata#include "lldb/API/SBDefines.h" 1416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 1516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granatanamespace lldb { 1616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 1716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata class SBTypeNameSpecifier 1816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata { 1916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata public: 2016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 2116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeNameSpecifier(); 2216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 2316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeNameSpecifier (const char* name, 2416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool is_regex = false); 25d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata 26d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata SBTypeNameSpecifier (SBType type); 2716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 2816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeNameSpecifier (const lldb::SBTypeNameSpecifier &rhs); 2916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 3016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata ~SBTypeNameSpecifier (); 3116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 3216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 3316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata IsValid() const; 3416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 3516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata const char* 3616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetName(); 3716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 38d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata SBType 39d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata GetType (); 40d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata 4116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 4216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata IsRegex(); 4316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 4416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 4516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetDescription (lldb::SBStream &description, 4616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata lldb::DescriptionLevel description_level); 4716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 4816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata lldb::SBTypeNameSpecifier & 4916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata operator = (const lldb::SBTypeNameSpecifier &rhs); 5016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 5116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 5216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata IsEqualTo (lldb::SBTypeNameSpecifier &rhs); 5316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 5416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 5516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata operator == (lldb::SBTypeNameSpecifier &rhs); 5616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 5716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 5816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata operator != (lldb::SBTypeNameSpecifier &rhs); 5916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 6016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata protected: 6107baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata friend class SBDebugger; 6216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata friend class SBTypeCategory; 6316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 6416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata lldb::TypeNameSpecifierImplSP 6516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetSP (); 6616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 6716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata void 6816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SetSP (const lldb::TypeNameSpecifierImplSP &type_namespec_sp); 6916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 7016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata lldb::TypeNameSpecifierImplSP m_opaque_sp; 7116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 7216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeNameSpecifier (const lldb::TypeNameSpecifierImplSP &); 7316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata }; 7416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 7516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata} // namespace lldb 7616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 7716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata#endif // LLDB_SBTypeNameSpecifier_h_ 78