StreamCallback.h revision 317027
1317027Sdim//===-- StreamCallback.h -----------------------------------*- C++ -*-===// 2317027Sdim// 3317027Sdim// The LLVM Compiler Infrastructure 4317027Sdim// 5317027Sdim// This file is distributed under the University of Illinois Open Source 6317027Sdim// License. See LICENSE.TXT for details. 7317027Sdim// 8317027Sdim//===----------------------------------------------------------------------===// 9317027Sdim 10317027Sdim#ifndef liblldb_StreamCallback_h_ 11317027Sdim#define liblldb_StreamCallback_h_ 12317027Sdim 13317027Sdim#include "lldb/lldb-types.h" 14317027Sdim#include "llvm/Support/raw_ostream.h" 15317027Sdim 16317027Sdim#include <stddef.h> // for size_t 17317027Sdim#include <stdint.h> // for uint64_t 18317027Sdim 19317027Sdimnamespace lldb_private { 20317027Sdim 21317027Sdimclass StreamCallback : public llvm::raw_ostream { 22317027Sdimpublic: 23317027Sdim StreamCallback(lldb::LogOutputCallback callback, void *baton); 24317027Sdim ~StreamCallback() override = default; 25317027Sdim 26317027Sdimprivate: 27317027Sdim lldb::LogOutputCallback m_callback; 28317027Sdim void *m_baton; 29317027Sdim 30317027Sdim void write_impl(const char *Ptr, size_t Size) override; 31317027Sdim uint64_t current_pos() const override; 32317027Sdim}; 33317027Sdim 34317027Sdim} // namespace lldb_private 35317027Sdim 36317027Sdim#endif // liblldb_StreamCallback_h 37