1292932Sdim//===-- DomainSocket.h ------------------------------------------*- C++ -*-===// 2292932Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6292932Sdim// 7292932Sdim//===----------------------------------------------------------------------===// 8292932Sdim 9292932Sdim#ifndef liblldb_DomainSocket_h_ 10292932Sdim#define liblldb_DomainSocket_h_ 11292932Sdim 12292932Sdim#include "lldb/Host/Socket.h" 13292932Sdim 14314564Sdimnamespace lldb_private { 15314564Sdimclass DomainSocket : public Socket { 16314564Sdimpublic: 17321369Sdim DomainSocket(bool should_close, bool child_processes_inherit); 18292932Sdim 19321369Sdim Status Connect(llvm::StringRef name) override; 20321369Sdim Status Listen(llvm::StringRef name, int backlog) override; 21321369Sdim Status Accept(Socket *&socket) override; 22292932Sdim 23353358Sdim std::string GetRemoteConnectionURI() const override; 24353358Sdim 25314564Sdimprotected: 26321369Sdim DomainSocket(SocketProtocol protocol, bool child_processes_inherit); 27292932Sdim 28314564Sdim virtual size_t GetNameOffset() const; 29314564Sdim virtual void DeleteSocketFile(llvm::StringRef name); 30353358Sdim std::string GetSocketName() const; 31292932Sdim 32314564Sdimprivate: 33321369Sdim DomainSocket(NativeSocket socket, const DomainSocket &listen_socket); 34314564Sdim}; 35292932Sdim} 36292932Sdim 37292932Sdim#endif // ifndef liblldb_DomainSocket_h_ 38