SBTypeFormat.h revision d760907c1d42726fa0c8c48efa28385ed339bb94
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
15namespace lldb {
16
17class SBTypeFormat
18{
19public:
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
61protected:
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