1254721Semaste//===-- ConnectionSharedMemory.h --------------------------------*- C++ -*-===//
2254721Semaste//
3254721Semaste//                     The LLVM Compiler Infrastructure
4254721Semaste//
5254721Semaste// This file is distributed under the University of Illinois Open Source
6254721Semaste// License. See LICENSE.TXT for details.
7254721Semaste//
8254721Semaste//===----------------------------------------------------------------------===//
9254721Semaste
10254721Semaste#ifndef liblldb_ConnectionSharedMemory_h_
11254721Semaste#define liblldb_ConnectionSharedMemory_h_
12254721Semaste
13254721Semaste// C Includes
14254721Semaste// C++ Includes
15254721Semaste#include <string>
16254721Semaste
17254721Semaste// Other libraries and framework includes
18254721Semaste// Project includes
19254721Semaste#include "lldb/Core/Connection.h"
20254721Semaste#include "lldb/Core/DataBufferMemoryMap.h"
21254721Semaste
22254721Semastenamespace lldb_private {
23254721Semaste
24254721Semasteclass ConnectionSharedMemory :
25254721Semaste    public Connection
26254721Semaste{
27254721Semastepublic:
28254721Semaste
29254721Semaste    ConnectionSharedMemory ();
30254721Semaste
31254721Semaste    virtual
32254721Semaste    ~ConnectionSharedMemory ();
33254721Semaste
34254721Semaste    virtual bool
35254721Semaste    IsConnected () const;
36254721Semaste
37254721Semaste    virtual lldb::ConnectionStatus
38254721Semaste    BytesAvailable (uint32_t timeout_usec, Error *error_ptr);
39254721Semaste
40254721Semaste    virtual lldb::ConnectionStatus
41254721Semaste    Connect (const char *s, Error *error_ptr);
42254721Semaste
43254721Semaste    virtual lldb::ConnectionStatus
44254721Semaste    Disconnect (Error *error_ptr);
45254721Semaste
46254721Semaste    virtual size_t
47254721Semaste    Read (void *dst,
48254721Semaste          size_t dst_len,
49254721Semaste          uint32_t timeout_usec,
50254721Semaste          lldb::ConnectionStatus &status,
51254721Semaste          Error *error_ptr);
52254721Semaste
53254721Semaste    virtual size_t
54254721Semaste    Write (const void *src, size_t src_len, lldb::ConnectionStatus &status, Error *error_ptr);
55254721Semaste
56254721Semaste    lldb::ConnectionStatus
57254721Semaste    Open (bool create, const char *name, size_t size, Error *error_ptr);
58254721Semaste
59254721Semasteprotected:
60254721Semaste
61254721Semaste    std::string m_name;
62254721Semaste    int m_fd;    // One buffer that contains all we need
63254721Semaste    DataBufferMemoryMap m_mmap;
64254721Semasteprivate:
65254721Semaste    DISALLOW_COPY_AND_ASSIGN (ConnectionSharedMemory);
66254721Semaste};
67254721Semaste
68254721Semaste} // namespace lldb_private
69254721Semaste
70254721Semaste#endif  // liblldb_ConnectionSharedMemory_h_
71