LLDB
mainline
llvm-project
lldb
source
Core
StreamAsynchronousIO.cpp
Go to the documentation of this file.
1
//===-- StreamAsynchronousIO.cpp ------------------------------------------===//
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
#include "
lldb/Core/StreamAsynchronousIO.h
"
10
11
#include "
lldb/Core/Debugger.h
"
12
#include "
lldb/lldb-enumerations.h
"
13
14
using namespace
lldb
;
15
using namespace
lldb_private
;
16
17
StreamAsynchronousIO::StreamAsynchronousIO
(
18
Debugger
&debugger,
StreamAsynchronousIO::ForSTDOUT
for_stdout)
19
:
Stream
(0, 4,
eByteOrderBig
, debugger.GetUseColor()),
m_debugger
(debugger),
20
m_data
(),
m_for_stdout
(for_stdout) {}
21
22
StreamAsynchronousIO::~StreamAsynchronousIO
() {
23
// Flush when we destroy to make sure we display the data.
24
Flush
();
25
}
26
27
void
StreamAsynchronousIO::Flush
() {
28
if
(!
m_data
.empty()) {
29
m_debugger
.PrintAsync(
m_data
.data(),
m_data
.size(),
m_for_stdout
);
30
m_data
.clear();
31
}
32
}
33
34
size_t
StreamAsynchronousIO::WriteImpl
(
const
void
*s,
size_t
length) {
35
m_data
.append((
const
char
*)s, length);
36
return
length;
37
}
Debugger.h
StreamAsynchronousIO.h
lldb_private::Debugger
A class to manage flag bits.
Definition
Debugger.h:80
lldb_private::StreamAsynchronousIO::Flush
void Flush() override
Flush the stream.
Definition
StreamAsynchronousIO.cpp:27
lldb_private::StreamAsynchronousIO::m_for_stdout
ForSTDOUT m_for_stdout
Definition
StreamAsynchronousIO.h:43
lldb_private::StreamAsynchronousIO::m_data
std::string m_data
Definition
StreamAsynchronousIO.h:42
lldb_private::StreamAsynchronousIO::StreamAsynchronousIO
StreamAsynchronousIO(Debugger &debugger, ForSTDOUT for_stdout)
Definition
StreamAsynchronousIO.cpp:17
lldb_private::StreamAsynchronousIO::WriteImpl
size_t WriteImpl(const void *src, size_t src_len) override
Output character bytes to the stream.
Definition
StreamAsynchronousIO.cpp:34
lldb_private::StreamAsynchronousIO::m_debugger
Debugger & m_debugger
Definition
StreamAsynchronousIO.h:41
lldb_private::StreamAsynchronousIO::~StreamAsynchronousIO
~StreamAsynchronousIO() override
Definition
StreamAsynchronousIO.cpp:22
lldb_private::StreamAsynchronousIO::ForSTDOUT
ForSTDOUT
Definition
StreamAsynchronousIO.h:26
lldb_private::Stream::Stream
Stream(uint32_t flags, uint32_t addr_size, lldb::ByteOrder byte_order, bool colors=false)
Construct with flags and address size and byte order.
Definition
Stream.cpp:27
lldb-enumerations.h
lldb_private
A class that represents a running process on the host machine.
Definition
SBAddressRange.h:14
lldb
Definition
SBAddress.h:15
lldb::eByteOrderBig
@ eByteOrderBig
Definition
lldb-enumerations.h:144
Generated on
for LLDB by
1.14.0