]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm-project/lldb/bindings/interface/SBCommunication.i
MFV r361322:
[FreeBSD/FreeBSD.git] / contrib / llvm-project / lldb / bindings / interface / SBCommunication.i
1 //===-- SWIG Interface for SBCommunication ----------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8
9 namespace lldb {
10
11 class SBCommunication
12 {
13 public:
14     enum {
15         eBroadcastBitDisconnected           = (1 << 0), ///< Sent when the communications connection is lost.
16         eBroadcastBitReadThreadGotBytes     = (1 << 1), ///< Sent by the read thread when bytes become available.
17         eBroadcastBitReadThreadDidExit      = (1 << 2), ///< Sent by the read thread when it exits to inform clients.
18         eBroadcastBitReadThreadShouldExit   = (1 << 3), ///< Sent by clients that need to cancel the read thread.
19         eBroadcastBitPacketAvailable        = (1 << 4), ///< Sent when data received makes a complete packet.
20         eAllEventBits                       = 0xffffffff
21     };
22
23     typedef void (*ReadThreadBytesReceived) (void *baton, const void *src, size_t src_len);
24
25     SBCommunication ();
26     SBCommunication (const char * broadcaster_name);
27    ~SBCommunication ();
28
29
30     bool
31     IsValid () const;
32
33     explicit operator bool() const;
34
35     lldb::SBBroadcaster
36     GetBroadcaster ();
37
38     static const char *GetBroadcasterClass();
39
40     lldb::ConnectionStatus
41     AdoptFileDesriptor (int fd, bool owns_fd);
42
43     lldb::ConnectionStatus
44     Connect (const char *url);
45
46     lldb::ConnectionStatus
47     Disconnect ();
48
49     bool
50     IsConnected () const;
51
52     bool
53     GetCloseOnEOF ();
54
55     void
56     SetCloseOnEOF (bool b);
57
58     size_t
59     Read (void *dst,
60           size_t dst_len,
61           uint32_t timeout_usec,
62           lldb::ConnectionStatus &status);
63
64     size_t
65     Write (const void *src,
66            size_t src_len,
67            lldb::ConnectionStatus &status);
68
69     bool
70     ReadThreadStart ();
71
72     bool
73     ReadThreadStop ();
74
75     bool
76     ReadThreadIsRunning ();
77
78     bool
79     SetReadThreadBytesReceivedCallback (ReadThreadBytesReceived callback,
80                                         void *callback_baton);
81 };
82
83 } // namespace lldb