1317027Sdim//===-- StreamCallback.h -----------------------------------*- C++ -*-===// 2317027Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6317027Sdim// 7317027Sdim//===----------------------------------------------------------------------===// 8317027Sdim 9317027Sdim#ifndef liblldb_StreamCallback_h_ 10317027Sdim#define liblldb_StreamCallback_h_ 11317027Sdim 12317027Sdim#include "lldb/lldb-types.h" 13317027Sdim#include "llvm/Support/raw_ostream.h" 14317027Sdim 15344779Sdim#include <stddef.h> 16344779Sdim#include <stdint.h> 17317027Sdim 18317027Sdimnamespace lldb_private { 19317027Sdim 20317027Sdimclass StreamCallback : public llvm::raw_ostream { 21317027Sdimpublic: 22317027Sdim StreamCallback(lldb::LogOutputCallback callback, void *baton); 23317027Sdim ~StreamCallback() override = default; 24317027Sdim 25317027Sdimprivate: 26317027Sdim lldb::LogOutputCallback m_callback; 27317027Sdim void *m_baton; 28317027Sdim 29317027Sdim void write_impl(const char *Ptr, size_t Size) override; 30317027Sdim uint64_t current_pos() const override; 31317027Sdim}; 32317027Sdim 33317027Sdim} // namespace lldb_private 34317027Sdim 35317027Sdim#endif // liblldb_StreamCallback_h 36