//===-- SWIG Interface for SBPlatform ---------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// namespace lldb { %feature("docstring", "Describes how :py:class:`SBPlatform.ConnectRemote` connects to a remote platform." ) SBPlatformConnectOptions; class SBPlatformConnectOptions { public: SBPlatformConnectOptions (const char *url); SBPlatformConnectOptions (const SBPlatformConnectOptions &rhs); ~SBPlatformConnectOptions (); const char * GetURL(); void SetURL(const char *url); bool GetRsyncEnabled(); void EnableRsync (const char *options, const char *remote_path_prefix, bool omit_remote_hostname); void DisableRsync (); const char * GetLocalCacheDirectory(); void SetLocalCacheDirectory(const char *path); }; %feature("docstring", "Represents a shell command that can be run by :py:class:`SBPlatform.Run`." ) SBPlatformShellCommand; class SBPlatformShellCommand { public: SBPlatformShellCommand (const char *shell, const char *shell_command); SBPlatformShellCommand (const char *shell_command); SBPlatformShellCommand (const SBPlatformShellCommand &rhs); ~SBPlatformShellCommand(); void Clear(); const char * GetShell(); void SetShell(const char *shell_interpreter); const char * GetCommand(); void SetCommand(const char *shell_command); const char * GetWorkingDirectory (); void SetWorkingDirectory (const char *path); uint32_t GetTimeoutSeconds (); void SetTimeoutSeconds (uint32_t sec); int GetSignal (); int GetStatus (); const char * GetOutput (); }; %feature("docstring", "A class that represents a platform that can represent the current host or a remote host debug platform. The SBPlatform class represents the current host, or a remote host. It can be connected to a remote platform in order to provide ways to remotely launch and attach to processes, upload/download files, create directories, run remote shell commands, find locally cached versions of files from the remote system, and much more. SBPlatform objects can be created and then used to connect to a remote platform which allows the SBPlatform to be used to get a list of the current processes on the remote host, attach to one of those processes, install programs on the remote system, attach and launch processes, and much more. Every :py:class:`SBTarget` has a corresponding SBPlatform. The platform can be specified upon target creation, or the currently selected platform will attempt to be used when creating the target automatically as long as the currently selected platform matches the target architecture and executable type. If the architecture or executable type do not match, a suitable platform will be found automatically." ) SBPlatform; class SBPlatform { public: SBPlatform (); SBPlatform (const char *); ~SBPlatform(); static SBPlatform GetHostPlatform(); bool IsValid () const; explicit operator bool() const; void Clear (); const char * GetWorkingDirectory(); bool SetWorkingDirectory(const char *); const char * GetName (); SBError ConnectRemote (lldb::SBPlatformConnectOptions &connect_options); void DisconnectRemote (); bool IsConnected(); const char * GetTriple(); const char * GetHostname (); const char * GetOSBuild (); const char * GetOSDescription (); uint32_t GetOSMajorVersion (); uint32_t GetOSMinorVersion (); uint32_t GetOSUpdateVersion (); lldb::SBError Get (lldb::SBFileSpec &src, lldb::SBFileSpec &dst); lldb::SBError Put (lldb::SBFileSpec &src, lldb::SBFileSpec &dst); lldb::SBError Install (lldb::SBFileSpec &src, lldb::SBFileSpec &dst); lldb::SBError Run (lldb::SBPlatformShellCommand &shell_command); lldb::SBError Launch (lldb::SBLaunchInfo &launch_info); lldb::SBError Kill (const lldb::pid_t pid); lldb::SBError MakeDirectory (const char *path, uint32_t file_permissions = lldb::eFilePermissionsDirectoryDefault); uint32_t GetFilePermissions (const char *path); lldb::SBError SetFilePermissions (const char *path, uint32_t file_permissions); lldb::SBUnixSignals GetUnixSignals(); lldb::SBEnvironment GetEnvironment(); }; } // namespace lldb