LLDB API Documentation

SBCommandReturnObject.h
Go to the documentation of this file.
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 
20 {
21 public:
22 
24 
26 
29 
30 
31  SBCommandReturnObject (lldb_private::CommandReturnObject *ptr);
32 
33  lldb_private::CommandReturnObject *
34  Release ();
35 
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_