1 //===-- StreamString.h ------------------------------------------*- C++ -*-===//
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
7 //===----------------------------------------------------------------------===//
9 #ifndef liblldb_StreamString_h_
10 #define liblldb_StreamString_h_
12 #include "lldb/Utility/Stream.h"
13 #include "lldb/lldb-enumerations.h"
14 #include "llvm/ADT/StringRef.h"
21 namespace lldb_private {
23 class StreamString : public Stream {
27 StreamString(uint32_t flags, uint32_t addr_size, lldb::ByteOrder byte_order);
29 ~StreamString() override;
31 void Flush() override;
37 size_t GetSize() const;
39 size_t GetSizeOfLastLine() const;
41 llvm::StringRef GetString() const;
43 const char *GetData() const { return m_packet.c_str(); }
45 void FillLastLineToColumn(uint32_t column, char fill_char);
49 size_t WriteImpl(const void *s, size_t length) override;
52 } // namespace lldb_private
54 #endif // liblldb_StreamString_h_