| //===-- SWIG Interface for SBStream -----------------------------*- C++ -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #include <stdio.h> |
| |
| namespace lldb { |
| |
| %feature("docstring", |
| "Represents a destination for streaming data output to. By default, a string |
| stream is created. |
| |
| For example (from test/source-manager/TestSourceManager.py), |
| |
| # Create the filespec for 'main.c'. |
| filespec = lldb.SBFileSpec('main.c', False) |
| source_mgr = self.dbg.GetSourceManager() |
| # Use a string stream as the destination. |
| stream = lldb.SBStream() |
| source_mgr.DisplaySourceLinesWithLineNumbers(filespec, |
| self.line, |
| 2, # context before |
| 2, # context after |
| '=>', # prefix for current line |
| stream) |
| |
| # 2 |
| # 3 int main(int argc, char const *argv[]) { |
| # => 4 printf('Hello world.\\n'); // Set break point at this line. |
| # 5 return 0; |
| # 6 } |
| self.expect(stream.GetData(), 'Source code displayed correctly', |
| exe=False, |
| patterns = ['=> %d.*Hello world' % self.line]) |
| ") SBStream; |
| class SBStream |
| { |
| public: |
| |
| SBStream (); |
| |
| ~SBStream (); |
| |
| bool |
| IsValid() const; |
| |
| %feature("docstring", " |
| //-------------------------------------------------------------------------- |
| /// 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. |
| //-------------------------------------------------------------------------- |
| ") GetData; |
| const char * |
| GetData (); |
| |
| %feature("docstring", " |
| //-------------------------------------------------------------------------- |
| /// 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. |
| //-------------------------------------------------------------------------- |
| ") GetSize; |
| size_t |
| GetSize(); |
| |
| // wrapping the variadic Printf() with a plain Print() |
| // because it is hard to support varargs in SWIG bridgings |
| %extend { |
| void Print (const char* str) |
| { |
| self->Printf("%s", str); |
| } |
| } |
| |
| void |
| RedirectToFile (const char *path, bool append); |
| |
| void |
| RedirectToFileHandle (FILE *fh, bool transfer_fh_ownership); |
| |
| void |
| RedirectToFileDescriptor (int fd, bool transfer_fh_ownership); |
| |
| %feature("docstring", " |
| //-------------------------------------------------------------------------- |
| /// If the stream is redirected to a file, forget about the file and if |
| /// ownership of the file was transferred to this object, close the file. |
| /// If the stream is backed by a local cache, clear this cache. |
| //-------------------------------------------------------------------------- |
| ") Clear; |
| void |
| Clear (); |
| }; |
| |
| } // namespace lldb |