]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - contrib/llvm/tools/lldb/include/lldb/API/SBCommandReturnObject.h
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / contrib / llvm / tools / lldb / include / lldb / API / SBCommandReturnObject.h
1 //===-- SBCommandReturnObject.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_SBCommandReturnObject_h_
11 #define LLDB_SBCommandReturnObject_h_
12
13 #include <stdio.h>
14
15 #include "lldb/API/SBDefines.h"
16
17 namespace lldb {
18
19 class SBCommandReturnObject
20 {
21 public:
22
23     SBCommandReturnObject ();
24
25     SBCommandReturnObject (const lldb::SBCommandReturnObject &rhs);
26
27     const lldb::SBCommandReturnObject &
28     operator = (const lldb::SBCommandReturnObject &rhs);
29     
30
31     SBCommandReturnObject (lldb_private::CommandReturnObject *ptr);
32     
33     lldb_private::CommandReturnObject *
34     Release ();
35
36     ~SBCommandReturnObject ();
37
38     bool
39     IsValid() const;
40
41     const char *
42     GetOutput ();
43
44     const char *
45     GetError ();
46
47     size_t
48     PutOutput (FILE *fh);
49
50     size_t
51     GetOutputSize ();
52
53     size_t
54     GetErrorSize ();
55
56     size_t
57     PutError (FILE *fh);
58
59     void
60     Clear();
61
62     lldb::ReturnStatus
63     GetStatus();
64     
65     void
66     SetStatus (lldb::ReturnStatus status);
67
68     bool
69     Succeeded ();
70
71     bool
72     HasResult ();
73
74     void
75     AppendMessage (const char *message);
76
77     void
78     AppendWarning (const char *message);
79     
80     bool
81     GetDescription (lldb::SBStream &description);
82     
83     void
84     SetImmediateOutputFile (FILE *fh);
85     
86     void
87     SetImmediateErrorFile (FILE *fh);
88     
89     void
90     PutCString(const char* string, int len = -1);
91     
92     size_t
93     Printf(const char* format, ...)  __attribute__ ((format (printf, 2, 3)));
94     
95     const char *
96     GetOutput (bool only_if_no_immediate);
97     
98     const char *
99     GetError (bool only_if_no_immediate);
100     
101     void
102     SetError (lldb::SBError &error,
103               const char *fallback_error_cstr = NULL);
104     
105     void
106     SetError (const char* error_cstr);
107     
108 protected:
109     friend class SBCommandInterpreter;
110     friend class SBOptions;
111
112     lldb_private::CommandReturnObject *
113     operator->() const;
114
115     lldb_private::CommandReturnObject *
116     get() const;
117
118     lldb_private::CommandReturnObject &
119     operator*() const;
120
121     lldb_private::CommandReturnObject &
122     ref() const;
123
124     void
125     SetLLDBObjectPtr (lldb_private::CommandReturnObject *ptr);
126
127  private:
128     std::unique_ptr<lldb_private::CommandReturnObject> m_opaque_ap;
129 };
130
131 } // namespace lldb
132
133 #endif        // LLDB_SBCommandReturnObject_h_