Mir
external_client.h
Go to the documentation of this file.
1 /*
2  * Copyright © 2018-2020 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 
26 namespace mir { class Server; }
27 
28 namespace miral
29 {
31 {
32 public:
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 
64 private:
65  struct Self;
66  std::shared_ptr<Self> self;
67 };
68 }
69 
70 #endif //MIRAL_EXTERNAL_CLIENT_H

Copyright © 2012-2022 Canonical Ltd.
Generated on Fri Aug 26 13:27:37 UTC 2022
This documentation is licensed under the GPL version 2 or 3.