1 //===-- SWIG Interface for SBCommandReturnObject ----------------*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 namespace lldb { 10 11 %feature("docstring", 12 "Represents a container which holds the result from command execution. 13 It works with SBCommandInterpreter.HandleCommand() to encapsulate the result 14 of command execution. 15 16 See SBCommandInterpreter for example usage of SBCommandReturnObject." 17 ) SBCommandReturnObject; 18 class SBCommandReturnObject 19 { 20 public: 21 22 SBCommandReturnObject (); 23 24 SBCommandReturnObject (const lldb::SBCommandReturnObject &rhs); 25 26 ~SBCommandReturnObject (); 27 28 bool 29 IsValid() const; 30 31 explicit operator bool() const; 32 33 const char * 34 GetOutput (); 35 36 const char * 37 GetError (); 38 39 size_t 40 GetOutputSize (); 41 42 size_t 43 GetErrorSize (); 44 45 const char * 46 GetOutput (bool only_if_no_immediate); 47 48 const char * 49 GetError (bool if_no_immediate); 50 51 size_t 52 PutOutput (lldb::SBFile file); 53 54 size_t 55 PutError (lldb::SBFile file); 56 57 size_t 58 PutOutput (lldb::FileSP BORROWED); 59 60 size_t 61 PutError (lldb::FileSP BORROWED); 62 63 void 64 Clear(); 65 66 void 67 SetStatus (lldb::ReturnStatus status); 68 69 void 70 SetError (lldb::SBError &error, 71 const char *fallback_error_cstr = NULL); 72 73 void 74 SetError (const char *error_cstr); 75 76 lldb::ReturnStatus 77 GetStatus(); 78 79 bool 80 Succeeded (); 81 82 bool 83 HasResult (); 84 85 void 86 AppendMessage (const char *message); 87 88 void 89 AppendWarning (const char *message); 90 91 bool 92 GetDescription (lldb::SBStream &description); 93 94 void SetImmediateOutputFile(lldb::SBFile file); 95 void SetImmediateErrorFile(lldb::SBFile file); 96 void SetImmediateOutputFile(lldb::FileSP BORROWED); 97 void SetImmediateErrorFile(lldb::FileSP BORROWED); 98 99 STRING_EXTENSION(SBCommandReturnObject) 100 101 %extend { 102 // transfer_ownership does nothing, and is here for compatibility with 103 // old scripts. Ownership is tracked by reference count in the ordinary way. 104 SetImmediateOutputFile(lldb::FileSP BORROWED,bool transfer_ownership)105 void SetImmediateOutputFile(lldb::FileSP BORROWED, bool transfer_ownership) { 106 self->SetImmediateOutputFile(BORROWED); 107 } SetImmediateErrorFile(lldb::FileSP BORROWED,bool transfer_ownership)108 void SetImmediateErrorFile(lldb::FileSP BORROWED, bool transfer_ownership) { 109 self->SetImmediateErrorFile(BORROWED); 110 } 111 } 112 113 void 114 PutCString(const char* string, int len); 115 116 // wrapping the variadic Printf() with a plain Print() 117 // because it is hard to support varargs in SWIG bridgings 118 %extend { Print(const char * str)119 void Print (const char* str) 120 { 121 self->Printf("%s", str); 122 } 123 } 124 125 }; 126 127 } // namespace lldb 128