1 //===-- StreamCallback.h -----------------------------------*- C++ -*-===// 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 #ifndef LLDB_UTILITY_STREAMCALLBACK_H 10 #define LLDB_UTILITY_STREAMCALLBACK_H 11 12 #include "lldb/lldb-types.h" 13 #include "llvm/Support/raw_ostream.h" 14 15 #include <stddef.h> 16 #include <stdint.h> 17 18 namespace lldb_private { 19 20 class StreamCallback : public llvm::raw_ostream { 21 public: 22 StreamCallback(lldb::LogOutputCallback callback, void *baton); 23 ~StreamCallback() override = default; 24 25 private: 26 lldb::LogOutputCallback m_callback; 27 void *m_baton; 28 29 void write_impl(const char *Ptr, size_t Size) override; 30 uint64_t current_pos() const override; 31 }; 32 33 } // namespace lldb_private 34 35 #endif // LLDB_UTILITY_STREAMCALLBACK_H 36