diff options
| author | Bill Wendling <isanbard@gmail.com> | 2012-04-18 21:39:23 +0000 |
|---|---|---|
| committer | Bill Wendling <isanbard@gmail.com> | 2012-04-18 21:39:23 +0000 |
| commit | 392e4fbdd9b152efff4c051286f6b2c21270c902 (patch) | |
| tree | 4ac339be2c4c7c596f068b59d5e512b157c7b433 /lldb/source/API/SBStream.cpp | |
| parent | eb1c2bdc1f55fbc5d1e7bb86e9f0e038b0f5adb7 (diff) | |
Creating release_31 branchllvmorg-3.1.0-rc1
llvm-svn: 155059
llvm-svn: 155053
llvm-svn: 155051
Diffstat (limited to 'lldb/source/API/SBStream.cpp')
| -rw-r--r-- | lldb/source/API/SBStream.cpp | 187 |
1 files changed, 0 insertions, 187 deletions
diff --git a/lldb/source/API/SBStream.cpp b/lldb/source/API/SBStream.cpp deleted file mode 100644 index dc8eb05ab0ba..000000000000 --- a/lldb/source/API/SBStream.cpp +++ /dev/null @@ -1,187 +0,0 @@ -//===-- SBStream.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/API/SBStream.h" - -#include "lldb/Core/Error.h" -#include "lldb/Core/Stream.h" -#include "lldb/Core/StreamFile.h" -#include "lldb/Core/StreamString.h" - -using namespace lldb; -using namespace lldb_private; - -SBStream::SBStream () : - m_opaque_ap (new StreamString()), - m_is_file (false) -{ -} - -SBStream::~SBStream () -{ -} - -bool -SBStream::IsValid() const -{ - return (m_opaque_ap.get() != NULL); -} - -// If this stream is not redirected to a file, it will maintain a local -// cache for the stream data which can be accessed using this accessor. -const char * -SBStream::GetData () -{ - if (m_is_file || m_opaque_ap.get() == NULL) - return NULL; - - return static_cast<StreamString *>(m_opaque_ap.get())->GetData(); -} - -// If this stream is not redirected to a file, it will maintain a local -// cache for the stream output whose length can be accessed using this -// accessor. -size_t -SBStream::GetSize() -{ - if (m_is_file || m_opaque_ap.get() == NULL) - return 0; - - return static_cast<StreamString *>(m_opaque_ap.get())->GetSize(); -} - -void -SBStream::Printf (const char *format, ...) -{ - if (!format) - return; - va_list args; - va_start (args, format); - ref().PrintfVarArg (format, args); - va_end (args); -} - -void -SBStream::RedirectToFile (const char *path, bool append) -{ - std::string local_data; - if (m_opaque_ap.get()) - { - // See if we have any locally backed data. If so, copy it so we can then - // redirect it to the file so we don't lose the data - if (!m_is_file) - local_data.swap(static_cast<StreamString *>(m_opaque_ap.get())->GetString()); - } - StreamFile *stream_file = new StreamFile; - uint32_t open_options = File::eOpenOptionWrite | File::eOpenOptionCanCreate; - if (append) - open_options |= File::eOpenOptionAppend; - stream_file->GetFile().Open (path, open_options, File::ePermissionsDefault); - - m_opaque_ap.reset (stream_file); - - if (m_opaque_ap.get()) - { - m_is_file = true; - - // If we had any data locally in our StreamString, then pass that along to - // the to new file we are redirecting to. - if (!local_data.empty()) - m_opaque_ap->Write (&local_data[0], local_data.size()); - } - else - m_is_file = false; -} - -void -SBStream::RedirectToFileHandle (FILE *fh, bool transfer_fh_ownership) -{ - std::string local_data; - if (m_opaque_ap.get()) - { - // See if we have any locally backed data. If so, copy it so we can then - // redirect it to the file so we don't lose the data - if (!m_is_file) - local_data.swap(static_cast<StreamString *>(m_opaque_ap.get())->GetString()); - } - m_opaque_ap.reset (new StreamFile (fh, transfer_fh_ownership)); - - if (m_opaque_ap.get()) - { - m_is_file = true; - - // If we had any data locally in our StreamString, then pass that along to - // the to new file we are redirecting to. - if (!local_data.empty()) - m_opaque_ap->Write (&local_data[0], local_data.size()); - } - else - m_is_file = false; -} - -void -SBStream::RedirectToFileDescriptor (int fd, bool transfer_fh_ownership) -{ - std::string local_data; - if (m_opaque_ap.get()) - { - // See if we have any locally backed data. If so, copy it so we can then - // redirect it to the file so we don't lose the data - if (!m_is_file) - local_data.swap(static_cast<StreamString *>(m_opaque_ap.get())->GetString()); - } - - m_opaque_ap.reset (new StreamFile (::fdopen (fd, "w"), transfer_fh_ownership)); - if (m_opaque_ap.get()) - { - m_is_file = true; - - // If we had any data locally in our StreamString, then pass that along to - // the to new file we are redirecting to. - if (!local_data.empty()) - m_opaque_ap->Write (&local_data[0], local_data.size()); - } - else - m_is_file = false; - -} - -lldb_private::Stream * -SBStream::operator->() -{ - return m_opaque_ap.get(); -} - -lldb_private::Stream * -SBStream::get() -{ - return m_opaque_ap.get(); -} - -lldb_private::Stream & -SBStream::ref() -{ - if (m_opaque_ap.get() == NULL) - m_opaque_ap.reset (new StreamString()); - return *m_opaque_ap.get(); -} - -void -SBStream::Clear () -{ - if (m_opaque_ap.get()) - { - // See if we have any locally backed data. If so, copy it so we can then - // redirect it to the file so we don't lose the data - if (m_is_file) - m_opaque_ap.reset(); - else - static_cast<StreamString *>(m_opaque_ap.get())->GetString().clear(); - } -} |
