Mir
external_client.h
Go to the documentation of this file.
1/*
2 * Copyright © Canonical Ltd.
3 *
4 * This program is free software: you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License version 2 or 3 as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#ifndef MIRAL_EXTERNAL_CLIENT_H
18#define MIRAL_EXTERNAL_CLIENT_H
19
20#include <sys/types.h>
21
22#include <memory>
23#include <string>
24#include <vector>
25
26namespace mir { class Server; }
27
28namespace miral
29{
31{
32public:
35
36 void operator()(mir::Server& server);
37
38 /// Launch with client environment configured for Wayland.
39 /// If X11 is enabled, then DISPLAY will also be set accordingly.
40 /// \return The pid of the process that was launched.
41 /// \remark Return type changed from void in MirAL 3.0
42 auto launch(std::vector<std::string> const& command_line) const -> pid_t;
43
44 /// If X11 is enabled, then launch with client environment configured for X11.
45 /// For the occasions it is desired to coerce applications into using X11
46 /// \return The pid of the process that was launched (or -1 if X11 is not enabled)
47 /// \remark Return type changed from void in MirAL 3.0
48 auto launch_using_x11(std::vector<std::string> const& command_line) const -> pid_t;
49
50 /// Use the proposed `desktop-entry` snap interface to launch another snap
51 /// \remark Since MirAL 3.0
52 void snapcraft_launch(std::string const& desktop_file) const;
53
54 /// Split out the tokens of a (possibly escaped) command
55 /// \remark Since MirAL 3.6
56 static auto split_command(std::string const& command) -> std::vector<std::string>;
57
58 /// Launch with client environment configured for Wayland.
59 /// If X11 is enabled, then DISPLAY will also be set accordingly.
60 /// \return The pid of the process that was launched.
61 /// \remark Since MirAL 3.6
62 auto launch(std::string const& command) const -> pid_t;
63
64private:
65 struct Self;
66 std::shared_ptr<Self> self;
67};
68}
69
70#endif //MIRAL_EXTERNAL_CLIENT_H
Definition: external_client.h:31
auto launch(std::vector< std::string > const &command_line) const -> pid_t
Launch with client environment configured for Wayland. If X11 is enabled, then DISPLAY will also be s...
auto launch(std::string const &command) const -> pid_t
Launch with client environment configured for Wayland. If X11 is enabled, then DISPLAY will also be s...
auto launch_using_x11(std::vector< std::string > const &command_line) const -> pid_t
If X11 is enabled, then launch with client environment configured for X11. For the occasions it is de...
static auto split_command(std::string const &command) -> std::vector< std::string >
Split out the tokens of a (possibly escaped) command.
void snapcraft_launch(std::string const &desktop_file) const
Use the proposed desktop-entry snap interface to launch another snap.
void operator()(mir::Server &server)
Definition: runner.h:27
Mir Abstraction Layer.
Definition: runner.h:35

Copyright © 2012-2023 Canonical Ltd.
Generated on Tue 2 May 10:01:24 UTC 2023
This documentation is licensed under the GPL version 2 or 3.