/* * Copyright (c) 2018-2020, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include namespace Core { class LocalServer : public Object { C_OBJECT(LocalServer) public: virtual ~LocalServer() override; ErrorOr take_over_from_system_server(String const& path = String()); bool is_listening() const { return m_listening; } bool listen(const String& address); ErrorOr> accept(); Function)> on_accept; private: explicit LocalServer(Object* parent = nullptr); void setup_notifier(); int m_fd { -1 }; bool m_listening { false }; RefPtr m_notifier; }; }