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 84