summaryrefslogtreecommitdiffstats
path: root/lldb/scripts/Python/interface/SBPlatform.i
blob: 31b8917ee6399c234296ac504302eebf0eda9f19 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
//===-- SWIG Interface for SBPlatform ---------------------------*- C++ -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

namespace lldb {

    
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);
};

class SBPlatformShellCommand
{
public:
    SBPlatformShellCommand (const char *shell_command);
    
    SBPlatformShellCommand (const SBPlatformShellCommand &rhs);
    
    ~SBPlatformShellCommand();
    
    void
    Clear();

    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 the 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 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();
    
    bool
    IsValid () 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);

};

} // namespace lldb
OpenPOWER on IntegriCloud