1061da546Spatrick //===-- SWIG Interface for SBLaunchInfo--------------------------*- C++ -*-===//
2061da546Spatrick //
3061da546Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4061da546Spatrick // See https://llvm.org/LICENSE.txt for license information.
5061da546Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6061da546Spatrick //
7061da546Spatrick //===----------------------------------------------------------------------===//
8061da546Spatrick 
9061da546Spatrick namespace lldb {
10061da546Spatrick 
11*be691f3bSpatrick %feature("docstring",
12*be691f3bSpatrick "Describes how a target or program should be launched."
13*be691f3bSpatrick ) SBLaunchInfo;
14061da546Spatrick class SBLaunchInfo
15061da546Spatrick {
16061da546Spatrick public:
17061da546Spatrick     SBLaunchInfo (const char **argv);
18061da546Spatrick 
19061da546Spatrick     pid_t
20061da546Spatrick     GetProcessID();
21061da546Spatrick 
22061da546Spatrick     uint32_t
23061da546Spatrick     GetUserID();
24061da546Spatrick 
25061da546Spatrick     uint32_t
26061da546Spatrick     GetGroupID();
27061da546Spatrick 
28061da546Spatrick     bool
29061da546Spatrick     UserIDIsValid ();
30061da546Spatrick 
31061da546Spatrick     bool
32061da546Spatrick     GroupIDIsValid ();
33061da546Spatrick 
34061da546Spatrick     void
35061da546Spatrick     SetUserID (uint32_t uid);
36061da546Spatrick 
37061da546Spatrick     void
38061da546Spatrick     SetGroupID (uint32_t gid);
39061da546Spatrick 
40061da546Spatrick     lldb::SBFileSpec
41061da546Spatrick     GetExecutableFile ();
42061da546Spatrick 
43061da546Spatrick     void
44061da546Spatrick     SetExecutableFile (lldb::SBFileSpec exe_file, bool add_as_first_arg);
45061da546Spatrick 
46061da546Spatrick     lldb::SBListener
47061da546Spatrick     GetListener ();
48061da546Spatrick 
49061da546Spatrick     void
50061da546Spatrick     SetListener (lldb::SBListener &listener);
51061da546Spatrick 
52061da546Spatrick     uint32_t
53061da546Spatrick     GetNumArguments ();
54061da546Spatrick 
55061da546Spatrick     const char *
56061da546Spatrick     GetArgumentAtIndex (uint32_t idx);
57061da546Spatrick 
58061da546Spatrick     void
59061da546Spatrick     SetArguments (const char **argv, bool append);
60061da546Spatrick 
61061da546Spatrick     uint32_t
62061da546Spatrick     GetNumEnvironmentEntries ();
63061da546Spatrick 
64061da546Spatrick     const char *
65061da546Spatrick     GetEnvironmentEntryAtIndex (uint32_t idx);
66061da546Spatrick 
67061da546Spatrick     void
68061da546Spatrick     SetEnvironmentEntries (const char **envp, bool append);
69061da546Spatrick 
70061da546Spatrick     void
71dda28197Spatrick     SetEnvironment(const SBEnvironment &env, bool append);
72dda28197Spatrick 
73dda28197Spatrick     SBEnvironment
74dda28197Spatrick     GetEnvironment();
75dda28197Spatrick 
76dda28197Spatrick     void
77061da546Spatrick     Clear ();
78061da546Spatrick 
79061da546Spatrick     const char *
80061da546Spatrick     GetWorkingDirectory () const;
81061da546Spatrick 
82061da546Spatrick     void
83061da546Spatrick     SetWorkingDirectory (const char *working_dir);
84061da546Spatrick 
85061da546Spatrick     uint32_t
86061da546Spatrick     GetLaunchFlags ();
87061da546Spatrick 
88061da546Spatrick     void
89061da546Spatrick     SetLaunchFlags (uint32_t flags);
90061da546Spatrick 
91061da546Spatrick     const char *
92061da546Spatrick     GetProcessPluginName ();
93061da546Spatrick 
94061da546Spatrick     void
95061da546Spatrick     SetProcessPluginName (const char *plugin_name);
96061da546Spatrick 
97061da546Spatrick     const char *
98061da546Spatrick     GetShell ();
99061da546Spatrick 
100061da546Spatrick     void
101061da546Spatrick     SetShell (const char * path);
102061da546Spatrick 
103061da546Spatrick     bool
104061da546Spatrick     GetShellExpandArguments ();
105061da546Spatrick 
106061da546Spatrick     void
107061da546Spatrick     SetShellExpandArguments (bool expand);
108061da546Spatrick 
109061da546Spatrick     uint32_t
110061da546Spatrick     GetResumeCount ();
111061da546Spatrick 
112061da546Spatrick     void
113061da546Spatrick     SetResumeCount (uint32_t c);
114061da546Spatrick 
115061da546Spatrick     bool
116061da546Spatrick     AddCloseFileAction (int fd);
117061da546Spatrick 
118061da546Spatrick     bool
119061da546Spatrick     AddDuplicateFileAction (int fd, int dup_fd);
120061da546Spatrick 
121061da546Spatrick     bool
122061da546Spatrick     AddOpenFileAction (int fd, const char *path, bool read, bool write);
123061da546Spatrick 
124061da546Spatrick     bool
125061da546Spatrick     AddSuppressFileAction (int fd, bool read, bool write);
126061da546Spatrick 
127061da546Spatrick     void
128061da546Spatrick     SetLaunchEventData (const char *data);
129061da546Spatrick 
130061da546Spatrick     const char *
131061da546Spatrick     GetLaunchEventData () const;
132061da546Spatrick 
133061da546Spatrick     bool
134061da546Spatrick     GetDetachOnError() const;
135061da546Spatrick 
136061da546Spatrick     void
137061da546Spatrick     SetDetachOnError(bool enable);
138*be691f3bSpatrick 
139*be691f3bSpatrick     const char *
140*be691f3bSpatrick     GetScriptedProcessClassName() const;
141*be691f3bSpatrick 
142*be691f3bSpatrick     void SetScriptedProcessClassName(const char *class_name);
143*be691f3bSpatrick 
144*be691f3bSpatrick     lldb::SBStructuredData
145*be691f3bSpatrick     GetScriptedProcessDictionary() const;
146*be691f3bSpatrick 
147*be691f3bSpatrick     void SetScriptedProcessDictionary(lldb::SBStructuredData dict);
148061da546Spatrick };
149061da546Spatrick 
150061da546Spatrick } // namespace lldb
151