116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata//===-- SBTypeFilter.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_SBTypeFilter_h_ 1116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata#define LLDB_SBTypeFilter_h_ 1216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 1316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata#include "lldb/API/SBDefines.h" 1416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 1516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granatanamespace lldb { 1616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 1716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata class SBTypeFilter 1816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata { 1916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata public: 2016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 2116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeFilter(); 2216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 2316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeFilter (uint32_t options); // see lldb::eTypeOption values 2416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 2516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeFilter (const lldb::SBTypeFilter &rhs); 2616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 2716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata ~SBTypeFilter (); 2816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 2916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 3016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata IsValid() const; 3116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 3216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata uint32_t 3316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetNumberOfExpressionPaths (); 3416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 3516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata const char* 3616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetExpressionPathAtIndex (uint32_t i); 3716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 3816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 3916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata ReplaceExpressionPathAtIndex (uint32_t i, const char* item); 4016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 4116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata void 4216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata AppendExpressionPath (const char* item); 4316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 4416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata void 4516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata Clear(); 4616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 4716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata uint32_t 4816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetOptions(); 4916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 5016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata void 5116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SetOptions (uint32_t); 5216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 5316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 5416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetDescription (lldb::SBStream &description, 5516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata lldb::DescriptionLevel description_level); 5616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 5716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata lldb::SBTypeFilter & 5816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata operator = (const lldb::SBTypeFilter &rhs); 5916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 6016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 6116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata IsEqualTo (lldb::SBTypeFilter &rhs); 6216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 6316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 6416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata operator == (lldb::SBTypeFilter &rhs); 6516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 6616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 6716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata operator != (lldb::SBTypeFilter &rhs); 6816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 6916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata protected: 7016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata friend class SBDebugger; 7116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata friend class SBTypeCategory; 72d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata friend class SBValue; 7316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 7416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata lldb::TypeFilterImplSP 7516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetSP (); 7616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 7716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata void 7816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SetSP (const lldb::TypeFilterImplSP &typefilter_impl_sp); 7916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 8016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata lldb::TypeFilterImplSP m_opaque_sp; 8116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 8216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeFilter (const lldb::TypeFilterImplSP &); 8316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 8416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 8516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata CopyOnWrite_Impl(); 8616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 8716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata }; 8816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 8916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 9016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata} // namespace lldb 9116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 9216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata#endif // LLDB_SBTypeFilter_h_ 93