diff options
author | Chris Lattner <sabre@nondot.org> | 2010-06-08 16:52:24 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-06-08 16:52:24 +0000 |
commit | 30fdc8d841c9d24ac5f3d452b6ece84ee0ac991c (patch) | |
tree | f70013106f6a461a14abcd71c65f48a95a2979a6 /lldb/source/API/SBCommandReturnObject.cpp | |
parent | 312c4c799da215b337f790fda330f70c4aa757cf (diff) | |
download | bcm5719-llvm-30fdc8d841c9d24ac5f3d452b6ece84ee0ac991c.tar.gz bcm5719-llvm-30fdc8d841c9d24ac5f3d452b6ece84ee0ac991c.zip |
Initial checkin of lldb code from internal Apple repo.
llvm-svn: 105619
Diffstat (limited to 'lldb/source/API/SBCommandReturnObject.cpp')
-rw-r--r-- | lldb/source/API/SBCommandReturnObject.cpp | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/lldb/source/API/SBCommandReturnObject.cpp b/lldb/source/API/SBCommandReturnObject.cpp new file mode 100644 index 00000000000..3910cc4b03d --- /dev/null +++ b/lldb/source/API/SBCommandReturnObject.cpp @@ -0,0 +1,148 @@ +//===-- SBCommandReturnObject.cpp -------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "lldb/Interpreter/CommandReturnObject.h" + +#include "SBCommandReturnObject.h" + +using namespace lldb; + +SBCommandReturnObject::SBCommandReturnObject () : + m_return_object_ap (new lldb_private::CommandReturnObject ()) +{ +} + +SBCommandReturnObject::~SBCommandReturnObject () +{ + // m_return_object_ap will automatically delete any pointer it owns +} + +bool +SBCommandReturnObject::IsValid() const +{ + return m_return_object_ap.get() != NULL; +} + + +const char * +SBCommandReturnObject::GetOutput () +{ + if (m_return_object_ap.get()) + return m_return_object_ap->GetOutputStream().GetData(); + return NULL; +} + +const char * +SBCommandReturnObject::GetError () +{ + if (m_return_object_ap.get()) + return m_return_object_ap->GetErrorStream().GetData(); + return NULL; +} + +size_t +SBCommandReturnObject::GetOutputSize () +{ + if (m_return_object_ap.get()) + return m_return_object_ap->GetOutputStream().GetSize(); + return 0; +} + +size_t +SBCommandReturnObject::GetErrorSize () +{ + if (m_return_object_ap.get()) + return m_return_object_ap->GetErrorStream().GetSize(); + return 0; +} + +size_t +SBCommandReturnObject::PutOutput (FILE *fh) +{ + if (fh) + { + size_t num_bytes = GetOutputSize (); + if (num_bytes) + return ::fprintf (fh, "%s", GetOutput()); + } + return 0; +} + +size_t +SBCommandReturnObject::PutError (FILE *fh) +{ + if (fh) + { + size_t num_bytes = GetErrorSize (); + if (num_bytes) + return ::fprintf (fh, "%s", GetError()); + } + return 0; +} + +void +SBCommandReturnObject::Clear() +{ + if (m_return_object_ap.get()) + m_return_object_ap->Clear(); +} + +lldb::ReturnStatus +SBCommandReturnObject::GetStatus() +{ + if (m_return_object_ap.get()) + return m_return_object_ap->GetStatus(); + return lldb::eReturnStatusInvalid; +} + +bool +SBCommandReturnObject::Succeeded () +{ + if (m_return_object_ap.get()) + return m_return_object_ap->Succeeded(); + return false; +} + +bool +SBCommandReturnObject::HasResult () +{ + if (m_return_object_ap.get()) + return m_return_object_ap->HasResult(); + return false; +} + +void +SBCommandReturnObject::AppendMessage (const char *message) +{ + if (m_return_object_ap.get()) + m_return_object_ap->AppendMessage (message); +} + +lldb_private::CommandReturnObject * +SBCommandReturnObject::GetLLDBObjectPtr() +{ + return m_return_object_ap.get(); +} + + +lldb_private::CommandReturnObject & +SBCommandReturnObject::GetLLDBObjectRef() +{ + assert(m_return_object_ap.get()); + return *(m_return_object_ap.get()); +} + + +void +SBCommandReturnObject::SetLLDBObjectPtr (lldb_private::CommandReturnObject *ptr) +{ + if (m_return_object_ap.get()) + m_return_object_ap.reset (ptr); +} + |