blob: 38556730bf5e833789aa2443e64f9863a1436c64 [file] [log] [blame]
Oleksiy Vyalov71d08b32015-02-16 00:04:19 +00001//===-- SBAttachInfo.cpp ----------------------------------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#include "lldb/lldb-python.h"
11
12#include "lldb/API/SBAttachInfo.h"
13
14#include "lldb/API/SBFileSpec.h"
15#include "lldb/API/SBListener.h"
16#include "lldb/Target/Process.h"
17
18using namespace lldb;
19using namespace lldb_private;
20
21
22SBAttachInfo::SBAttachInfo () :
23 m_opaque_sp (new ProcessAttachInfo())
24{
25}
26
27SBAttachInfo::SBAttachInfo (lldb::pid_t pid) :
28 m_opaque_sp (new ProcessAttachInfo())
29{
30 m_opaque_sp->SetProcessID (pid);
31}
32
33SBAttachInfo::SBAttachInfo (const char *path, bool wait_for) :
34 m_opaque_sp (new ProcessAttachInfo())
35{
36 if (path && path[0])
37 m_opaque_sp->GetExecutableFile().SetFile(path, false);
38 m_opaque_sp->SetWaitForLaunch (wait_for);
39}
40
41SBAttachInfo::SBAttachInfo (const SBAttachInfo &rhs) :
42 m_opaque_sp (new ProcessAttachInfo())
43{
44 *m_opaque_sp = *rhs.m_opaque_sp;
45}
46
47SBAttachInfo::~SBAttachInfo()
48{
49}
50
51lldb_private::ProcessAttachInfo &
52SBAttachInfo::ref ()
53{
54 return *m_opaque_sp;
55}
56
57SBAttachInfo &
58SBAttachInfo::operator = (const SBAttachInfo &rhs)
59{
60 if (this != &rhs)
61 *m_opaque_sp = *rhs.m_opaque_sp;
62 return *this;
63}
64
65lldb::pid_t
66SBAttachInfo::GetProcessID ()
67{
68 return m_opaque_sp->GetProcessID();
69}
70
71void
72SBAttachInfo::SetProcessID (lldb::pid_t pid)
73{
74 m_opaque_sp->SetProcessID (pid);
75}
76
77
78uint32_t
79SBAttachInfo::GetResumeCount ()
80{
81 return m_opaque_sp->GetResumeCount();
82}
83
84void
85SBAttachInfo::SetResumeCount (uint32_t c)
86{
87 m_opaque_sp->SetResumeCount (c);
88}
89
90const char *
91SBAttachInfo::GetProcessPluginName ()
92{
93 return m_opaque_sp->GetProcessPluginName();
94}
95
96void
97SBAttachInfo::SetProcessPluginName (const char *plugin_name)
98{
99 return m_opaque_sp->SetProcessPluginName (plugin_name);
100}
101
102void
103SBAttachInfo::SetExecutable (const char *path)
104{
105 if (path && path[0])
106 m_opaque_sp->GetExecutableFile().SetFile(path, false);
107 else
108 m_opaque_sp->GetExecutableFile().Clear();
109}
110
111void
112SBAttachInfo::SetExecutable (SBFileSpec exe_file)
113{
114 if (exe_file.IsValid())
115 m_opaque_sp->GetExecutableFile() = exe_file.ref();
116 else
117 m_opaque_sp->GetExecutableFile().Clear();
118}
119
120bool
121SBAttachInfo::GetWaitForLaunch ()
122{
123 return m_opaque_sp->GetWaitForLaunch();
124}
125
126void
127SBAttachInfo::SetWaitForLaunch (bool b)
128{
129 m_opaque_sp->SetWaitForLaunch (b);
130}
131
132bool
133SBAttachInfo::GetIgnoreExisting ()
134{
135 return m_opaque_sp->GetIgnoreExisting();
136}
137
138void
139SBAttachInfo::SetIgnoreExisting (bool b)
140{
141 m_opaque_sp->SetIgnoreExisting (b);
142}
143
144uint32_t
145SBAttachInfo::GetUserID()
146{
147 return m_opaque_sp->GetUserID();
148}
149
150uint32_t
151SBAttachInfo::GetGroupID()
152{
153 return m_opaque_sp->GetGroupID();
154}
155
156bool
157SBAttachInfo::UserIDIsValid ()
158{
159 return m_opaque_sp->UserIDIsValid();
160}
161
162bool
163SBAttachInfo::GroupIDIsValid ()
164{
165 return m_opaque_sp->GroupIDIsValid();
166}
167
168void
169SBAttachInfo::SetUserID (uint32_t uid)
170{
171 m_opaque_sp->SetUserID (uid);
172}
173
174void
175SBAttachInfo::SetGroupID (uint32_t gid)
176{
177 m_opaque_sp->SetGroupID (gid);
178}
179
180uint32_t
181SBAttachInfo::GetEffectiveUserID()
182{
183 return m_opaque_sp->GetEffectiveUserID();
184}
185
186uint32_t
187SBAttachInfo::GetEffectiveGroupID()
188{
189 return m_opaque_sp->GetEffectiveGroupID();
190}
191
192bool
193SBAttachInfo::EffectiveUserIDIsValid ()
194{
195 return m_opaque_sp->EffectiveUserIDIsValid();
196}
197
198bool
199SBAttachInfo::EffectiveGroupIDIsValid ()
200{
201 return m_opaque_sp->EffectiveGroupIDIsValid ();
202}
203
204void
205SBAttachInfo::SetEffectiveUserID (uint32_t uid)
206{
207 m_opaque_sp->SetEffectiveUserID(uid);
208}
209
210void
211SBAttachInfo::SetEffectiveGroupID (uint32_t gid)
212{
213 m_opaque_sp->SetEffectiveGroupID(gid);
214}
215
216lldb::pid_t
217SBAttachInfo::GetParentProcessID ()
218{
219 return m_opaque_sp->GetParentProcessID();
220}
221
222void
223SBAttachInfo::SetParentProcessID (lldb::pid_t pid)
224{
225 m_opaque_sp->SetParentProcessID (pid);
226}
227
228bool
229SBAttachInfo::ParentProcessIDIsValid()
230{
231 return m_opaque_sp->ParentProcessIDIsValid();
232}
233
234SBListener
235SBAttachInfo::GetListener ()
236{
237 return SBListener(m_opaque_sp->GetListener());
238}
239
240void
241SBAttachInfo::SetListener (SBListener &listener)
242{
243 m_opaque_sp->SetListener(listener.GetSP());
244}