1 //===-- SBTypeFormat.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_SBTypeFormat_h_
11 #define LLDB_SBTypeFormat_h_
12 
13 #include "lldb/API/SBDefines.h"
14 
15 namespace lldb {
16 
17 class SBTypeFormat
18 {
19 public:
20 
21     SBTypeFormat();
22 
23     SBTypeFormat (lldb::Format format,
24                   uint32_t options = 0); // see lldb::eTypeOption values
25 
26     SBTypeFormat (const lldb::SBTypeFormat &rhs);
27 
28     ~SBTypeFormat ();
29 
30     bool
31     IsValid() const;
32 
33     lldb::Format
34     GetFormat ();
35 
36     uint32_t
37     GetOptions();
38 
39     void
40     SetFormat (lldb::Format);
41 
42     void
43     SetOptions (uint32_t);
44 
45     bool
46     GetDescription (lldb::SBStream &description,
47                     lldb::DescriptionLevel description_level);
48 
49     lldb::SBTypeFormat &
50     operator = (const lldb::SBTypeFormat &rhs);
51 
52     bool
53     IsEqualTo (lldb::SBTypeFormat &rhs);
54 
55     bool
56     operator == (lldb::SBTypeFormat &rhs);
57 
58     bool
59     operator != (lldb::SBTypeFormat &rhs);
60 
61 protected:
62     friend class SBDebugger;
63     friend class SBTypeCategory;
64     friend class SBValue;
65 
66     lldb::TypeFormatImplSP
67     GetSP ();
68 
69     void
70     SetSP (const lldb::TypeFormatImplSP &typeformat_impl_sp);
71 
72     lldb::TypeFormatImplSP m_opaque_sp;
73 
74     SBTypeFormat (const lldb::TypeFormatImplSP &);
75 
76     bool
77     CopyOnWrite_Impl();
78 
79 };
80 
81 
82 } // namespace lldb
83 
84 #endif // LLDB_SBTypeFormat_h_
85