LLDB mainline
|
#include <TCPSocket.h>
Public Member Functions | |
TCPSocket (bool should_close, bool child_processes_inherit) | |
TCPSocket (NativeSocket socket, bool should_close, bool child_processes_inherit) | |
~TCPSocket () override | |
uint16_t | GetLocalPortNumber () const |
std::string | GetLocalIPAddress () const |
uint16_t | GetRemotePortNumber () const |
std::string | GetRemoteIPAddress () const |
int | SetOptionNoDelay () |
int | SetOptionReuseAddress () |
Status | Connect (llvm::StringRef name) override |
Status | Listen (llvm::StringRef name, int backlog) override |
Status | Accept (Socket *&conn_socket) override |
Status | CreateSocket (int domain) |
bool | IsValid () const override |
std::string | GetRemoteConnectionURI () const override |
Public Member Functions inherited from lldb_private::Socket | |
~Socket () override | |
virtual Status | Connect (llvm::StringRef name)=0 |
virtual Status | Listen (llvm::StringRef name, int backlog)=0 |
virtual Status | Accept (Socket *&socket)=0 |
int | GetOption (int level, int option_name, int &option_value) |
int | SetOption (int level, int option_name, int option_value) |
NativeSocket | GetNativeSocket () const |
SocketProtocol | GetSocketProtocol () const |
Status | Read (void *buf, size_t &num_bytes) override |
Status | Write (const void *buf, size_t &num_bytes) override |
Status | Close () override |
bool | IsValid () const override |
WaitableHandle | GetWaitableHandle () override |
virtual std::string | GetRemoteConnectionURI () const |
Public Member Functions inherited from lldb_private::IOObject | |
IOObject (FDType type) | |
virtual | ~IOObject () |
virtual Status | Read (void *buf, size_t &num_bytes)=0 |
virtual Status | Write (const void *buf, size_t &num_bytes)=0 |
virtual bool | IsValid () const =0 |
virtual Status | Close ()=0 |
FDType | GetFdType () const |
virtual WaitableHandle | GetWaitableHandle ()=0 |
Private Member Functions | |
TCPSocket (NativeSocket socket, const TCPSocket &listen_socket) | |
void | CloseListenSockets () |
Private Attributes | |
std::map< int, SocketAddress > | m_listen_sockets |
Additional Inherited Members | |
Public Types inherited from lldb_private::Socket | |
enum | SocketProtocol { ProtocolTcp , ProtocolUdp , ProtocolUnixDomain , ProtocolUnixAbstract } |
Public Types inherited from lldb_private::IOObject | |
enum | FDType { eFDTypeFile , eFDTypeSocket } |
typedef int | WaitableHandle |
Static Public Member Functions inherited from lldb_private::Socket | |
static const char * | FindSchemeByProtocol (const SocketProtocol protocol) |
static bool | FindProtocolByScheme (const char *scheme, SocketProtocol &protocol) |
static llvm::Error | Initialize () |
static void | Terminate () |
static std::unique_ptr< Socket > | Create (const SocketProtocol protocol, bool child_processes_inherit, Status &error) |
static llvm::Expected< std::unique_ptr< TCPSocket > > | TcpListen (llvm::StringRef host_and_port, bool child_processes_inherit, int backlog=5) |
static llvm::Expected< std::unique_ptr< Socket > > | TcpConnect (llvm::StringRef host_and_port, bool child_processes_inherit) |
static llvm::Expected< std::unique_ptr< UDPSocket > > | UdpConnect (llvm::StringRef host_and_port, bool child_processes_inherit) |
static llvm::Expected< HostAndPort > | DecodeHostAndPort (llvm::StringRef host_and_port) |
Static Public Attributes inherited from lldb_private::Socket | |
static const NativeSocket | kInvalidSocketValue = -1 |
Static Public Attributes inherited from lldb_private::IOObject | |
static const WaitableHandle | kInvalidHandleValue = -1 |
Protected Member Functions inherited from lldb_private::Socket | |
Socket (SocketProtocol protocol, bool should_close, bool m_child_process_inherit) | |
virtual size_t | Send (const void *buf, const size_t num_bytes) |
Static Protected Member Functions inherited from lldb_private::Socket | |
static void | SetLastError (Status &error) |
static NativeSocket | CreateSocket (const int domain, const int type, const int protocol, bool child_processes_inherit, Status &error) |
static NativeSocket | AcceptSocket (NativeSocket sockfd, struct sockaddr *addr, socklen_t *addrlen, bool child_processes_inherit, Status &error) |
Protected Attributes inherited from lldb_private::Socket | |
SocketProtocol | m_protocol |
NativeSocket | m_socket |
bool | m_child_processes_inherit |
bool | m_should_close_fd |
Protected Attributes inherited from lldb_private::IOObject | |
FDType | m_fd_type |
Definition at line 17 of file TCPSocket.h.
TCPSocket::TCPSocket | ( | bool | should_close, |
bool | child_processes_inherit | ||
) |
Definition at line 59 of file TCPSocket.cpp.
TCPSocket::TCPSocket | ( | NativeSocket | socket, |
bool | should_close, | ||
bool | child_processes_inherit | ||
) |
Definition at line 68 of file TCPSocket.cpp.
References lldb_private::Socket::m_socket.
|
override |
Definition at line 74 of file TCPSocket.cpp.
References CloseListenSockets().
|
private |
Definition at line 62 of file TCPSocket.cpp.
References lldb_private::Socket::m_socket.
Implements lldb_private::Socket.
Definition at line 257 of file TCPSocket.cpp.
References CLOSE_SOCKET, error(), lldb_private::SocketAddress::GetIPAddress(), lldb_private::SocketAddress::IsAnyAddr(), lldb_private::Socket::kInvalidSocketValue, lldb_private::Socket::m_child_processes_inherit, m_listen_sockets, lldb_private::MainLoopPosix::RegisterReadObject(), and lldb_private::MainLoopPosix::Run().
Referenced by lldb_private::process_gdb_remote::GDBRemoteCommunication::ConnectLocally().
|
private |
Definition at line 251 of file TCPSocket.cpp.
References CLOSE_SOCKET, and m_listen_sockets.
Referenced by ~TCPSocket().
|
overridevirtual |
Implements lldb_private::Socket.
Definition at line 150 of file TCPSocket.cpp.
References lldb_private::Socket::Close(), lldb_private::Communication, CreateSocket(), lldb_private::Socket::DecodeHostAndPort(), error(), lldb_private::SocketAddress::GetAddressInfo(), lldb_private::GetLog(), lldb_private::Socket::GetNativeSocket(), LLDB_LOG, and SetOptionNoDelay().
Status TCPSocket::CreateSocket | ( | int | domain | ) |
Definition at line 139 of file TCPSocket.cpp.
References lldb_private::Socket::Close(), lldb_private::Socket::CreateSocket(), error(), IsValid(), kType, lldb_private::Socket::m_child_processes_inherit, and lldb_private::Socket::m_socket.
Referenced by Connect().
std::string TCPSocket::GetLocalIPAddress | ( | ) | const |
Definition at line 97 of file TCPSocket.cpp.
References lldb_private::SocketAddress::GetIPAddress(), lldb_private::SocketAddress::GetMaxLength(), lldb_private::Socket::kInvalidSocketValue, and lldb_private::Socket::m_socket.
uint16_t TCPSocket::GetLocalPortNumber | ( | ) | const |
Definition at line 81 of file TCPSocket.cpp.
References lldb_private::SocketAddress::GetMaxLength(), lldb_private::SocketAddress::GetPort(), lldb_private::Socket::kInvalidSocketValue, m_listen_sockets, and lldb_private::Socket::m_socket.
Referenced by lldb_private::process_gdb_remote::GDBRemoteCommunication::ConnectLocally(), and ProcessKDP::DoConnectRemote().
|
overridevirtual |
Reimplemented from lldb_private::Socket.
Definition at line 131 of file TCPSocket.cpp.
References GetRemoteIPAddress(), GetRemotePortNumber(), lldb_private::Socket::kInvalidSocketValue, and lldb_private::Socket::m_socket.
Referenced by lldb_private::ConnectionFileDescriptor::AcceptTCP().
std::string TCPSocket::GetRemoteIPAddress | ( | ) | const |
Definition at line 119 of file TCPSocket.cpp.
References lldb_private::SocketAddress::GetIPAddress(), lldb_private::SocketAddress::GetMaxLength(), lldb_private::Socket::kInvalidSocketValue, and lldb_private::Socket::m_socket.
Referenced by GetRemoteConnectionURI().
uint16_t TCPSocket::GetRemotePortNumber | ( | ) | const |
Definition at line 109 of file TCPSocket.cpp.
References lldb_private::SocketAddress::GetMaxLength(), lldb_private::SocketAddress::GetPort(), lldb_private::Socket::kInvalidSocketValue, and lldb_private::Socket::m_socket.
Referenced by GetRemoteConnectionURI().
|
overridevirtual |
Implements lldb_private::IOObject.
Definition at line 76 of file TCPSocket.cpp.
References lldb_private::Socket::kInvalidSocketValue, m_listen_sockets, and lldb_private::Socket::m_socket.
Referenced by CreateSocket().
|
overridevirtual |
Implements lldb_private::Socket.
Definition at line 190 of file TCPSocket.cpp.
References CLOSE_SOCKET, lldb_private::Connection, lldb_private::Socket::CreateSocket(), lldb_private::Socket::DecodeHostAndPort(), error(), lldb_private::SocketAddress::GetAddressInfo(), GetLastSocketError(), lldb_private::SocketAddress::GetLength(), lldb_private::GetLog(), lldb_private::SocketAddress::IsLocalhost(), kType, LLDB_LOG, lldb_private::Socket::m_child_processes_inherit, m_listen_sockets, lldb_private::SocketAddress::SetPort(), lldb_private::SocketAddress::SetToAnyAddress(), and lldb_private::SocketAddress::sockaddr().
Referenced by lldb_private::process_gdb_remote::GDBRemoteCommunication::ConnectLocally().
int TCPSocket::SetOptionNoDelay | ( | ) |
Definition at line 320 of file TCPSocket.cpp.
References lldb_private::Socket::SetOption().
Referenced by Connect().
int TCPSocket::SetOptionReuseAddress | ( | ) |
Definition at line 324 of file TCPSocket.cpp.
References lldb_private::Socket::SetOption().
|
private |
Definition at line 56 of file TCPSocket.h.
Referenced by Accept(), CloseListenSockets(), GetLocalPortNumber(), IsValid(), and Listen().