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