/* * Copyright (c) 2024, Andrew Kaster * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include namespace WebView { class Process { AK_MAKE_NONCOPYABLE(Process); AK_MAKE_DEFAULT_MOVABLE(Process); public: Process(ProcessType type, RefPtr connection, Core::Process process); ~Process(); ProcessType type() const { return m_type; } Optional const& title() const { return m_title; } void set_title(Optional title) { m_title = move(title); } template Optional client() { if (auto strong_connection = m_connection.strong_ref()) return verify_cast(*strong_connection); return {}; } pid_t pid() const { return m_process.pid(); } private: Core::Process m_process; ProcessType m_type; Optional m_title; WeakPtr m_connection; }; }