blob: fa882906d0e543edbcb1bc3300c2abffcfd60793 [file] [log] [blame]
//===-- SWIG Interface for SBStream -----------------------------*- C++ -*-===//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
#include <stdio.h>
namespace lldb {
"Represents a destination for streaming data output to. By default, a string
stream is created.
For example (from test/source-manager/,
# 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()
2, # context before
2, # context after
'=>', # prefix for current line
# 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',
patterns = ['=> %d.*Hello world' % self.line])") SBStream;
class SBStream
SBStream ();
~SBStream ();
IsValid() const;
explicit operator bool() 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;
// 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);
RedirectToFile (const char *path, bool append);
RedirectToFileHandle (FILE *fh, bool transfer_fh_ownership);
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;
Clear ();
} // namespace lldb