14a348081030cdd2af758fddc869518357d9befd3Caroline Tice//===-- StreamAsynchronousIO.h -----------------------------------*- C++ -*-===//
24a348081030cdd2af758fddc869518357d9befd3Caroline Tice//
34a348081030cdd2af758fddc869518357d9befd3Caroline Tice//                     The LLVM Compiler Infrastructure
44a348081030cdd2af758fddc869518357d9befd3Caroline Tice//
54a348081030cdd2af758fddc869518357d9befd3Caroline Tice// This file is distributed under the University of Illinois Open Source
64a348081030cdd2af758fddc869518357d9befd3Caroline Tice// License. See LICENSE.TXT for details.
74a348081030cdd2af758fddc869518357d9befd3Caroline Tice//
84a348081030cdd2af758fddc869518357d9befd3Caroline Tice//===----------------------------------------------------------------------===//
94a348081030cdd2af758fddc869518357d9befd3Caroline Tice
104a348081030cdd2af758fddc869518357d9befd3Caroline Tice#ifndef liblldb_StreamAsynchronousIO_h_
114a348081030cdd2af758fddc869518357d9befd3Caroline Tice#define liblldb_StreamAsynchronousIO_h_
124a348081030cdd2af758fddc869518357d9befd3Caroline Tice
134a348081030cdd2af758fddc869518357d9befd3Caroline Tice#include <string>
144a348081030cdd2af758fddc869518357d9befd3Caroline Tice
154a348081030cdd2af758fddc869518357d9befd3Caroline Tice#include "lldb/Core/Stream.h"
164a348081030cdd2af758fddc869518357d9befd3Caroline Tice#include "lldb/Core/StreamString.h"
174a348081030cdd2af758fddc869518357d9befd3Caroline Tice
184a348081030cdd2af758fddc869518357d9befd3Caroline Ticenamespace lldb_private {
194a348081030cdd2af758fddc869518357d9befd3Caroline Tice
204a348081030cdd2af758fddc869518357d9befd3Caroline Ticeclass StreamAsynchronousIO :
214a348081030cdd2af758fddc869518357d9befd3Caroline Tice    public Stream
224a348081030cdd2af758fddc869518357d9befd3Caroline Tice{
234a348081030cdd2af758fddc869518357d9befd3Caroline Ticepublic:
244a348081030cdd2af758fddc869518357d9befd3Caroline Tice    StreamAsynchronousIO (Broadcaster &broadcaster, uint32_t broadcast_event_type);
254a348081030cdd2af758fddc869518357d9befd3Caroline Tice
264a348081030cdd2af758fddc869518357d9befd3Caroline Tice    virtual ~StreamAsynchronousIO ();
274a348081030cdd2af758fddc869518357d9befd3Caroline Tice
284a348081030cdd2af758fddc869518357d9befd3Caroline Tice    virtual void
294a348081030cdd2af758fddc869518357d9befd3Caroline Tice    Flush ();
304a348081030cdd2af758fddc869518357d9befd3Caroline Tice
3136da2aa6dc5ad9994b638ed09eb81c44cc05540bGreg Clayton    virtual size_t
324a348081030cdd2af758fddc869518357d9befd3Caroline Tice    Write (const void *src, size_t src_len);
334a348081030cdd2af758fddc869518357d9befd3Caroline Tice
344a348081030cdd2af758fddc869518357d9befd3Caroline Tice
354a348081030cdd2af758fddc869518357d9befd3Caroline Ticeprivate:
364a348081030cdd2af758fddc869518357d9befd3Caroline Tice    Broadcaster &m_broadcaster;
374a348081030cdd2af758fddc869518357d9befd3Caroline Tice    uint32_t m_broadcast_event_type;
384a348081030cdd2af758fddc869518357d9befd3Caroline Tice    StreamString m_accumulated_data;
394a348081030cdd2af758fddc869518357d9befd3Caroline Tice};
404a348081030cdd2af758fddc869518357d9befd3Caroline Tice
414a348081030cdd2af758fddc869518357d9befd3Caroline Tice} // namespace lldb_private
424a348081030cdd2af758fddc869518357d9befd3Caroline Tice#endif // #ifndef liblldb_StreamAsynchronousIO_h
43