StreamString.h revision 341825
1//===-- StreamString.h ------------------------------------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10#ifndef liblldb_StreamString_h_ 11#define liblldb_StreamString_h_ 12 13#include "lldb/Utility/Stream.h" // for Stream 14#include "lldb/lldb-enumerations.h" // for ByteOrder 15#include "llvm/ADT/StringRef.h" // for StringRef 16 17#include <string> // for string 18 19#include <stddef.h> // for size_t 20#include <stdint.h> // for uint32_t 21 22namespace lldb_private { 23 24class StreamString : public Stream { 25public: 26 StreamString(); 27 28 StreamString(uint32_t flags, uint32_t addr_size, lldb::ByteOrder byte_order); 29 30 ~StreamString() override; 31 32 void Flush() override; 33 34 size_t Write(const void *s, size_t length) override; 35 36 void Clear(); 37 38 bool Empty() const; 39 40 size_t GetSize() const; 41 42 size_t GetSizeOfLastLine() const; 43 44 llvm::StringRef GetString() const; 45 46 const char *GetData() const { return m_packet.c_str(); } 47 48 void FillLastLineToColumn(uint32_t column, char fill_char); 49 50protected: 51 std::string m_packet; 52}; 53 54} // namespace lldb_private 55 56#endif // liblldb_StreamString_h_ 57