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(
Debugger
&debugger,
bool
for_stdout,
18
bool
colors)
19
:
Stream
(0, 4,
eByteOrderBig
, colors), m_debugger(debugger), m_data(),
20
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
=
std::string
();
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
}
lldb_private::StreamAsynchronousIO::Flush
void Flush() override
Flush the stream.
Definition:
StreamAsynchronousIO.cpp:27
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::Stream
Definition:
Stream.h:28
Debugger.h
lldb_private::StreamAsynchronousIO::m_debugger
Debugger & m_debugger
Definition:
StreamAsynchronousIO.h:33
StreamAsynchronousIO.h
lldb-enumerations.h
lldb_private::Debugger
Definition:
Debugger.h:72
string
string(SUBSTRING ${p} 10 -1 pStripped) if($
Definition:
Plugins/CMakeLists.txt:40
lldb_private::StreamAsynchronousIO::m_for_stdout
bool m_for_stdout
Definition:
StreamAsynchronousIO.h:35
lldb_private::Debugger::PrintAsync
void PrintAsync(const char *s, size_t len, bool is_stdout)
Definition:
Debugger.cpp:1079
lldb_private::StreamAsynchronousIO::~StreamAsynchronousIO
~StreamAsynchronousIO() override
Definition:
StreamAsynchronousIO.cpp:22
lldb_private
A class that represents a running process on the host machine.
Definition:
SBCommandInterpreterRunOptions.h:16
lldb::eByteOrderBig
@ eByteOrderBig
Definition:
lldb-enumerations.h:140
lldb_private::StreamAsynchronousIO::m_data
std::string m_data
Definition:
StreamAsynchronousIO.h:34
lldb
Definition:
SBAddress.h:15
Generated on Thu May 19 2022 08:09:59 for LLDB by
1.8.17