1 //===-- SWIG Interface for SBPlatform ---------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 namespace lldb {
10 
11 
12 %feature("docstring",
13 "Describes how :py:class:`SBPlatform.ConnectRemote` connects to a remote platform."
14 ) SBPlatformConnectOptions;
15 class SBPlatformConnectOptions
16 {
17 public:
18     SBPlatformConnectOptions (const char *url);
19 
20     SBPlatformConnectOptions (const SBPlatformConnectOptions &rhs);
21 
22     ~SBPlatformConnectOptions ();
23 
24     const char *
25     GetURL();
26 
27     void
28     SetURL(const char *url);
29 
30     bool
31     GetRsyncEnabled();
32 
33     void
34     EnableRsync (const char *options,
35                  const char *remote_path_prefix,
36                  bool omit_remote_hostname);
37 
38     void
39     DisableRsync ();
40 
41     const char *
42     GetLocalCacheDirectory();
43 
44     void
45     SetLocalCacheDirectory(const char *path);
46 };
47 
48 %feature("docstring",
49 "Represents a shell command that can be run by :py:class:`SBPlatform.Run`."
50 ) SBPlatformShellCommand;
51 class SBPlatformShellCommand
52 {
53 public:
54     SBPlatformShellCommand (const char *shell, const char *shell_command);
55     SBPlatformShellCommand (const char *shell_command);
56 
57     SBPlatformShellCommand (const SBPlatformShellCommand &rhs);
58 
59     ~SBPlatformShellCommand();
60 
61     void
62     Clear();
63 
64     const char *
65     GetShell();
66 
67     void
68     SetShell(const char *shell_interpreter);
69 
70     const char *
71     GetCommand();
72 
73     void
74     SetCommand(const char *shell_command);
75 
76     const char *
77     GetWorkingDirectory ();
78 
79     void
80     SetWorkingDirectory (const char *path);
81 
82     uint32_t
83     GetTimeoutSeconds ();
84 
85     void
86     SetTimeoutSeconds (uint32_t sec);
87 
88     int
89     GetSignal ();
90 
91     int
92     GetStatus ();
93 
94     const char *
95     GetOutput ();
96 };
97 
98 %feature("docstring",
99 "A class that represents a platform that can represent the current host or a remote host debug platform.
100 
101 The SBPlatform class represents the current host, or a remote host.
102 It can be connected to a remote platform in order to provide ways
103 to remotely launch and attach to processes, upload/download files,
104 create directories, run remote shell commands, find locally cached
105 versions of files from the remote system, and much more.
106 
107 SBPlatform objects can be created and then used to connect to a remote
108 platform which allows the SBPlatform to be used to get a list of the
109 current processes on the remote host, attach to one of those processes,
110 install programs on the remote system, attach and launch processes,
111 and much more.
112 
113 Every :py:class:`SBTarget` has a corresponding SBPlatform. The platform can be
114 specified upon target creation, or the currently selected platform
115 will attempt to be used when creating the target automatically as long
116 as the currently selected platform matches the target architecture
117 and executable type. If the architecture or executable type do not match,
118 a suitable platform will be found automatically."
119 
120 ) SBPlatform;
121 class SBPlatform
122 {
123 public:
124 
125     SBPlatform ();
126 
127     SBPlatform (const char *);
128 
129     ~SBPlatform();
130 
131     static SBPlatform GetHostPlatform();
132 
133     bool
134     IsValid () const;
135 
136     explicit operator bool() const;
137 
138     void
139     Clear ();
140 
141     const char *
142     GetWorkingDirectory();
143 
144     bool
145     SetWorkingDirectory(const char *);
146 
147     const char *
148     GetName ();
149 
150     SBError
151     ConnectRemote (lldb::SBPlatformConnectOptions &connect_options);
152 
153     void
154     DisconnectRemote ();
155 
156     bool
157     IsConnected();
158 
159     const char *
160     GetTriple();
161 
162     const char *
163     GetHostname ();
164 
165     const char *
166     GetOSBuild ();
167 
168     const char *
169     GetOSDescription ();
170 
171     uint32_t
172     GetOSMajorVersion ();
173 
174     uint32_t
175     GetOSMinorVersion ();
176 
177     uint32_t
178     GetOSUpdateVersion ();
179 
180     void
181     SetSDKRoot(const char *sysroot);
182 
183     lldb::SBError
184     Get (lldb::SBFileSpec &src, lldb::SBFileSpec &dst);
185 
186     lldb::SBError
187     Put (lldb::SBFileSpec &src, lldb::SBFileSpec &dst);
188 
189     lldb::SBError
190     Install (lldb::SBFileSpec &src, lldb::SBFileSpec &dst);
191 
192     lldb::SBError
193     Run (lldb::SBPlatformShellCommand &shell_command);
194 
195     lldb::SBError
196     Launch (lldb::SBLaunchInfo &launch_info);
197 
198     lldb::SBError
199     Kill (const lldb::pid_t pid);
200 
201     lldb::SBError
202     MakeDirectory (const char *path, uint32_t file_permissions = lldb::eFilePermissionsDirectoryDefault);
203 
204     uint32_t
205     GetFilePermissions (const char *path);
206 
207     lldb::SBError
208     SetFilePermissions (const char *path, uint32_t file_permissions);
209 
210     lldb::SBUnixSignals
211     GetUnixSignals();
212 
213     lldb::SBEnvironment
214     GetEnvironment();
215 
216 };
217 
218 } // namespace lldb
219