]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/llvm/tools/lldb/include/lldb/API/SBError.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / llvm / tools / lldb / include / lldb / API / SBError.h
1 //===-- SBError.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_SBError_h_
11 #define LLDB_SBError_h_
12
13 #include "lldb/API/SBDefines.h"
14
15 namespace lldb {
16
17 class SBError {
18 public:
19     SBError ();
20
21     SBError (const lldb::SBError &rhs);
22
23     ~SBError();
24
25     const SBError &
26     operator =(const lldb::SBError &rhs);
27
28     const char *
29     GetCString () const;
30
31     void
32     Clear ();
33
34     bool
35     Fail () const;
36
37     bool
38     Success () const;
39
40     uint32_t
41     GetError () const;
42
43     lldb::ErrorType
44     GetType () const;
45
46     void
47     SetError (uint32_t err, lldb::ErrorType type);
48
49     void
50     SetErrorToErrno ();
51
52     void
53     SetErrorToGenericError ();
54
55     void
56     SetErrorString (const char *err_str);
57
58     int
59     SetErrorStringWithFormat (const char *format, ...) __attribute__ ((format (printf, 2, 3)));
60
61     bool
62     IsValid () const;
63
64     bool
65     GetDescription (lldb::SBStream &description);
66
67 protected:
68
69     friend class SBCommandReturnObject;
70     friend class SBData;
71     friend class SBDebugger;
72     friend class SBCommunication;
73     friend class SBHostOS;
74     friend class SBInputReader;
75     friend class SBProcess;
76     friend class SBThread;
77     friend class SBTarget;
78     friend class SBValue;
79     friend class SBWatchpoint;
80
81     lldb_private::Error *
82     get();
83
84     lldb_private::Error *
85     operator->();
86
87     const lldb_private::Error &
88     operator*() const;
89
90     lldb_private::Error &
91     ref();
92
93     void
94     SetError (const lldb_private::Error &lldb_error);
95
96 private:
97     std::unique_ptr<lldb_private::Error> m_opaque_ap;
98
99     void
100     CreateIfNeeded ();
101 };
102
103
104 } // namespace lldb
105
106 #endif // LLDB_SBError_h_