Mercurial > hg > CbC > CbC_llvm
comparison lldb/source/Utility/StreamString.cpp @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children | 5f17cb93ff66 |
comparison
equal
deleted
inserted
replaced
147:c2174574ed3a | 150:1d019706d866 |
---|---|
1 //===-- StreamString.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/Utility/StreamString.h" | |
10 | |
11 using namespace lldb; | |
12 using namespace lldb_private; | |
13 | |
14 StreamString::StreamString() : Stream(0, 4, eByteOrderBig) {} | |
15 | |
16 StreamString::StreamString(uint32_t flags, uint32_t addr_size, | |
17 ByteOrder byte_order) | |
18 : Stream(flags, addr_size, byte_order), m_packet() {} | |
19 | |
20 StreamString::~StreamString() {} | |
21 | |
22 void StreamString::Flush() { | |
23 // Nothing to do when flushing a buffer based stream... | |
24 } | |
25 | |
26 size_t StreamString::WriteImpl(const void *s, size_t length) { | |
27 m_packet.append(static_cast<const char *>(s), length); | |
28 return length; | |
29 } | |
30 | |
31 void StreamString::Clear() { | |
32 m_packet.clear(); | |
33 m_bytes_written = 0; | |
34 } | |
35 | |
36 bool StreamString::Empty() const { return GetSize() == 0; } | |
37 | |
38 size_t StreamString::GetSize() const { return m_packet.size(); } | |
39 | |
40 size_t StreamString::GetSizeOfLastLine() const { | |
41 const size_t length = m_packet.size(); | |
42 size_t last_line_begin_pos = m_packet.find_last_of("\r\n"); | |
43 if (last_line_begin_pos == std::string::npos) { | |
44 return length; | |
45 } else { | |
46 ++last_line_begin_pos; | |
47 return length - last_line_begin_pos; | |
48 } | |
49 } | |
50 | |
51 llvm::StringRef StreamString::GetString() const { return m_packet; } | |
52 | |
53 void StreamString::FillLastLineToColumn(uint32_t column, char fill_char) { | |
54 const size_t length = m_packet.size(); | |
55 size_t last_line_begin_pos = m_packet.find_last_of("\r\n"); | |
56 if (last_line_begin_pos == std::string::npos) { | |
57 last_line_begin_pos = 0; | |
58 } else { | |
59 ++last_line_begin_pos; | |
60 } | |
61 | |
62 const size_t line_columns = length - last_line_begin_pos; | |
63 if (column > line_columns) { | |
64 m_packet.append(column - line_columns, fill_char); | |
65 } | |
66 } |