SBTypeFilter.h revision d760907c1d42726fa0c8c48efa28385ed339bb94
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        friend class SBValue;
73
74        lldb::TypeFilterImplSP
75        GetSP ();
76
77        void
78        SetSP (const lldb::TypeFilterImplSP &typefilter_impl_sp);
79
80        lldb::TypeFilterImplSP m_opaque_sp;
81
82        SBTypeFilter (const lldb::TypeFilterImplSP &);
83
84        bool
85        CopyOnWrite_Impl();
86
87    };
88
89
90} // namespace lldb
91
92#endif // LLDB_SBTypeFilter_h_
93