SBTypeFilter.h revision 16376ed044df3ee70fcf69e19f06af01e71a8e9a
1//===-- SBTypeFilter.h --------------------------------------------*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef LLDB_SBTypeFilter_h_
11#define LLDB_SBTypeFilter_h_
12
13#include "lldb/API/SBDefines.h"
14
15namespace lldb {
16
17    class SBTypeFilter
18    {
19    public:
20
21        SBTypeFilter();
22
23        SBTypeFilter (uint32_t options); // see lldb::eTypeOption values
24
25        SBTypeFilter (const lldb::SBTypeFilter &rhs);
26
27        ~SBTypeFilter ();
28
29        bool
30        IsValid() const;
31
32        uint32_t
33        GetNumberOfExpressionPaths ();
34
35        const char*
36        GetExpressionPathAtIndex (uint32_t i);
37
38        bool
39        ReplaceExpressionPathAtIndex (uint32_t i, const char* item);
40
41        void
42        AppendExpressionPath (const char* item);
43
44        void
45        Clear();
46
47        uint32_t
48        GetOptions();
49
50        void
51        SetOptions (uint32_t);
52
53        bool
54        GetDescription (lldb::SBStream &description,
55                        lldb::DescriptionLevel description_level);
56
57        lldb::SBTypeFilter &
58        operator = (const lldb::SBTypeFilter &rhs);
59
60        bool
61        IsEqualTo (lldb::SBTypeFilter &rhs);
62
63        bool
64        operator == (lldb::SBTypeFilter &rhs);
65
66        bool
67        operator != (lldb::SBTypeFilter &rhs);
68
69    protected:
70        friend class SBDebugger;
71        friend class SBTypeCategory;
72
73        lldb::TypeFilterImplSP
74        GetSP ();
75
76        void
77        SetSP (const lldb::TypeFilterImplSP &typefilter_impl_sp);
78
79        lldb::TypeFilterImplSP m_opaque_sp;
80
81        SBTypeFilter (const lldb::TypeFilterImplSP &);
82
83        bool
84        CopyOnWrite_Impl();
85
86    };
87
88
89} // namespace lldb
90
91#endif // LLDB_SBTypeFilter_h_
92