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