forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			62 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C++
		
	
	
	
| //===-- Acceptor.h ----------------------------------------------*- C++ -*-===//
 | |
| //
 | |
| //                     The LLVM Compiler Infrastructure
 | |
| //
 | |
| // This file is distributed under the University of Illinois Open Source
 | |
| // License. See LICENSE.TXT for details.
 | |
| //
 | |
| //===----------------------------------------------------------------------===//
 | |
| #ifndef lldb_server_Acceptor_h_
 | |
| #define lldb_server_Acceptor_h_
 | |
| 
 | |
| #include "lldb/Host/Socket.h"
 | |
| #include "lldb/Utility/Connection.h"
 | |
| #include "lldb/Utility/Status.h"
 | |
| 
 | |
| #include <functional>
 | |
| #include <memory>
 | |
| #include <string>
 | |
| 
 | |
| namespace llvm {
 | |
| class StringRef;
 | |
| }
 | |
| 
 | |
| namespace lldb_private {
 | |
| namespace lldb_server {
 | |
| 
 | |
| class Acceptor {
 | |
| public:
 | |
|   virtual ~Acceptor() = default;
 | |
| 
 | |
|   Status Listen(int backlog);
 | |
| 
 | |
|   Status Accept(const bool child_processes_inherit, Connection *&conn);
 | |
| 
 | |
|   static std::unique_ptr<Acceptor> Create(llvm::StringRef name,
 | |
|                                           const bool child_processes_inherit,
 | |
|                                           Status &error);
 | |
| 
 | |
|   Socket::SocketProtocol GetSocketProtocol() const;
 | |
| 
 | |
|   const char *GetSocketScheme() const;
 | |
| 
 | |
|   // Returns either TCP port number as string or domain socket path.
 | |
|   // Empty string is returned in case of error.
 | |
|   std::string GetLocalSocketId() const;
 | |
| 
 | |
| private:
 | |
|   typedef std::function<std::string()> LocalSocketIdFunc;
 | |
| 
 | |
|   Acceptor(std::unique_ptr<Socket> &&listener_socket, llvm::StringRef name,
 | |
|            const LocalSocketIdFunc &local_socket_id);
 | |
| 
 | |
|   const std::unique_ptr<Socket> m_listener_socket_up;
 | |
|   const std::string m_name;
 | |
|   const LocalSocketIdFunc m_local_socket_id;
 | |
| };
 | |
| 
 | |
| } // namespace lldb_server
 | |
| } // namespace lldb_private
 | |
| 
 | |
| #endif // lldb_server_Acceptor_h_
 |